最近のアクセス:
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 で使用するコードが書かれたメールが届きます。
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": "[email protected]",
    "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 以降


バックリンク
GeneXus 18 のクラウドネイティブGAM - モバイル用二要素認証
GeneXus 18 Upgrade 2目次: GeneXus Access Manager (GAM)
サブページ
Created: 21/12/21 17:14 by Admin Last update: 25/12/10 18:03 by Admin
カテゴリ
Powered by GXwiki 3.0