最近のアクセス:
GAM 二要素認証 (2FA)

ログインしようとしているユーザーに対して、認証および検証を 2 段階で行うことができます。これは、二要素認証 (2FA) や二段階認証 (2SV) として知られています。
2FA は通常、パスワードやユーザー名が入力され、ブルートフォース攻撃のリスクを軽減する方法として E メールまたは SMS を送信することによって、2 番目の検証ステップが実行される場合に使用されます。
2 番目の認証要素には、OTP Custom を含むワン タイム パスワード (OTP) 検証のみ使用できます。

仕組み

セキュリティを向上させるためには、ユーザーはアクセスする前に 2 回検証する必要があります。最初の段階ではユーザー名およびパスワードを入力し、2 番目の段階では別の検証を実行します (前述のような検証)。
Web とモバイルのどちらのアプリケーションでも、ユーザーがこの機能を有効にしている場合、ユーザーがログインする際は毎回 2 つの手順に従う必要があります。つまり、ユーザーがログインしている間、アプリケーションにログオンし続けるためには、2 番目の要素を正常に通過する必要があります。

考慮事項

二要素認証には、次の認証タイプを設定できます: OTP、ローカルカスタムWeb サービスGAM リモート REST

二要素認証のセットアップ手順

この例では、1 番目の認証要素にローカル認証、2 番目の認証要素に OTP を設定します。
  • 手順 1: OTP を選択して、2 番目の認証要素を追加します。OTP の設定の詳細については、「OTP の設定手順」を参照してください。
OTP を 2 つ目の要素にのみ使用するためには、 [ Use For First Factor Authentication? ] チェックボックスを選択解除しておく必要があります。
イメージ:48263.png
  • 手順 2: この例では、1 番目の認証要素はローカルになります。ローカルは GAM の既定の認証であるため、編集する必要があります。
イメージ:52348.jpg
ローカル認証のフォームを編集するには、チェックボックス [ Enable Two Factor Authentication? ] を選択する必要があります。
[ Authentication Type Name ] コンボボックスで、手順 1 で追加した OTP を選択します。
チェックボックス [ Force 2FA for all users? ] が選択されます。このオプションでは、アプリケーションのすべてのユーザーに対して、2FA を設定します。
イメージ:52349.jpg
1 番目の認証要素でチェックボックス [ Force 2FA for all users? ] を選択することで、アプリケーションの各ユーザーの [ Enable Two Factor Authentication? ] チェックボックスが選択されて設定されます。
[ Force 2FA for all users? ] チェックボックスを選択しない場合は、2FA を使用する各ユーザーの設定で [ Enable Two Factor Authentication? ] チェックボックスを選択する必要があります。
イメージ:52347.jpg

2FA のプロパティ

上記に示されている設定のほかに、GeneXus IDE で 2FA のプロパティを設定することもできます。このためには、次の名前でプロパティを参照する必要があります:
  • &AuthenticationTypeLocal.TwoFactorAuthentication.Enable
  • &AuthenticationTypeLocal.TwoFactorAuthentication.AuthenticationTypeName
  • &AuthenticationTypeLocal.TwoFactorAuthentication.FirstAuthenticationFactorExpiration (秒): Numeric 9。既定値 = 900。
  • &AuthenticationTypeLocal.TwoFactorAuthentication.ForceForAllUsers: false に設定した場合、すべてのユーザーがこれを有効にできます。
  • &UserEnableTwoFactorAuth = Boolean (Null 許容)

E メールサーバーの設定

詳細については、GAM の E メールサーバーの設定を参照してください。

REST サービスを通じて 2FA を使用する方法

1. アクセストークン

エンドポイント: https://<ドメイン>/<仮想ディレクトリー>/oauth/gam/v2.0/access_token

1 回目の POST

本文:

client_id: アプリケーションのクライアント ID。必須。
client_secret: アプリケーションのクライアントシークレット。必須。
grant_type=password: 必須。
scope: アクセスするユーザーアカウントの適用範囲。"&GAMApplication.ClientAuthenticationRequestMustIncludeUserScopes" が true の場合のみ必要。
username: 2FA の有効化対象のユーザーのユーザー名。必須。
password: 認証対象のユーザーのパスワード。必須。
authentication_type_name: サーバーで設定される 2FA の認証タイプの名前。必須。
POSTMAN の例:

イメージ:56367.png

このリクエストを行った後に、2 回目の POST で使用するコードが書かれたメールが届きます。
イメージ:56368.png
2 回目の POST

client_id:
アプリケーションのクライアント ID。必須。
client_secret: アプリケーションのクライアントシークレット。必須。
grant_type=password: 必須。
scope: アクセスするユーザーアカウントの適用範囲。"&GAMApplication.ClientAuthenticationRequestMustIncludeUserScopes" が true の場合のみ必須。
password: 1 回目の POST 内の OTP コード。必須。
username: 2FA の有効化対象のユーザーのユーザー名。必須。
authentication_type_name: サーバーで設定される 2FA の認証タイプの名前。必須。
use_2fa=true: 必須。
otp_step=2: 必須。

POSTMAN の例:

イメージ:56366.png

2. ユーザー情報
エンドポイント: https://<ドメイン>/<仮想ディレクトリー>/oauth/gam/v2.0/userinfo
GET
Headers
Content-Type: 返されるコンテンツのタイプ。application/x-www-form-urlencoded を使用。必須。
Authorization: 2 回目の POST で取得した access_token。必須。

イメージ:56356.png
{
    "guid": "4c921af0-6805-4f51-9cfe-4d6cd6821e05",
    "username": "juan",
    "email": "jperez@genexus.com",
    "verified_email": true,
    "first_name": "Juan",
    "last_name": "Perez",
    "external_id": "",
    "gender": "M",
    "url_image": "",
    "url_profile": "",
    "phone": "099 888 888",
    "address": "",
    "city": "",
    "state": "",
    "post_code": "",
    "language": "",
    "timezone": "",
}


応答:

使用可能バージョン

GeneXus 17 Upgrade 5 以降


サブページ
Created: 21/12/21 17:14 by Admin Last update: 24/12/20 00:52 by Admin
カテゴリ
Powered by GXwiki 3.0