システムに対するユーザー認証の方法として Time Based One Time Passwords (TOTP) を使用すると、ユーザーがログインしようとするたびに新しいコードが生成されるため、パスワードを覚える必要がないという利点があります。また、コードの有効期間が短いため、セキュリティレベルがさらに向上します。
これに加えて、ユーザーがこれらのコードを取得するためには、スマートフォンのアプリケーションが必要であるという事実 (ユーザーのスマートフォンのセキュリティによって異なります) を考慮すると、他者が無関係のユーザー名で認証しようとした場合に、別のレベルの困難が追加されます。
タイムベースド ワンタイム パスワード (TOTP) は、現在の時刻を一意性のソースとして使用する
ワンタイムパスワード (OTP) キーを生成するアルゴリズムです。したがって、
GeneXus Access Manager (GAM) では、TOTP は
ワンタイムパスワード (OTP)のコード生成タイプとして検出されます。
このコード生成方法を選択すると、次のパラメーターを構成できます (図は既定値を示しています) 。
- Code expiration timeout: ユーザーがコードを入力しなければならない最大時間 (秒単位) です。
- Maximum daily number of codes: 1日にコードを入力できる回数 (NEXT ボタンをクリックした後) を指定します。
- Number of unsuccessful retries to lock the OTP: アクセスをブロックするための再試行の失敗回数を指定します。
- Automatic OTP unlock time: OTP コードの自動ロック解除時間を指定します。
- Number of unsuccessful retries to block user based on number of OTP locks: ユーザーをブロックするまでに OTP コードをロックできる回数を指定します。
このタイプの認証では、各ユーザーがオーセンティケーター (ユーザーのアカウントとオーセンティケーターアプリのペアリング) を構成する必要があります。このためには、次の手順に従います:
- オーセンティケーターを設定するユーザーのプロファイルに移動します。右側のメニューには、 [ Enable authenticator ] ボタンがあります。注: このボタンは、コード生成タイプとして TOTP オーセンティケーターを使用して認証タイプ OTP が作成されると、ユーザープロファイルに表示されます。
- 上記のボタンをクリックすると、次のようなウィンドウが表示されます。
- 選択したオーセンティケーターを使用して QR コードをスキャンするか、提供されたシークレットキーを使用してオーセンティケーターコードの生成をアプリケーションと同期する必要があります。
- 最後に、 [ Type a code ] 欄にオーセンティケーターが指定したコードを入力し、 [ Enable ] ボタンをクリックします。この操作が正常に実行されると、画面は次のようになります。
ワンタイムパスワード (OTP) は、1つ目または 2つ目の認証要素として使用できるため、TOTP はこのプロパティを継承します。認証タイプを 1つ目の要素として使用するか 2つ目のとして使用するかを定義するには、 [
Use For First Factor Authentication? ] プロパティを考慮する必要があります。
このプロパティは既定では選択解除されています。変更しない場合は、2つ目の要素として使用できる認証タイプが生成されます。一方、このプロパティを選択すると、1つ目の要素として使用できる認証タイプが生成されます。
TOTP 認証タイプを作成したら、新しく設定した認証を 2つ目の要素として使用する別の認証タイプを設定する必要があります。この場合、たとえば、ローカル認証は 2つ目の要素として TOTP を使用するように設定されます。
編集モードになったら、認証タイプ内で [
Enable Two Factor Authentication? ] プロパティを選択します。 [
Authentication Type Name ] で、以前に作成した 2つ目の要素の認証タイプを選択します。
さらに 2つのプロパティを変更できます (画像には、既定値が表示されています)。
- First factor authentication expiration: ユーザーが 1つ目の要素をパスした後、2つ目の要素を確認するまでの最大時間を指定します。
- Force 2FA for all users?: すべてのユーザーに 2つ目の認証要素の使用を強制できます。
ユーザーがこの 2要素構成を使用して認証するための最後の手順は、編集モードでユーザーのプロファイルに移動し、 [
Enable two factor authentication? ] オプションを選択することです。
注: 前の手順で説明した [
Force 2FA for all users? ] プロパティが選択されている場合、この手順は必要ありません。さらに、すべてのユーザーが強制されると、オーセンティケーターが構成されていないユーザーはログインできなくなることを明確にする必要があります。
GeneXus によってユーザーごとに生成される秘密鍵の長さは、次の図に示すように、メニューの
[ Repository Configuration ] > [ Users ] タブ > [ TOTP secret key length ] に移動して変更できます。
- TOTP secret key length: オーセンティケーターアプリ用に生成されたシークレットキーの最大長を示すプロパティです (16 が既定値)。
iPhone (特に Google 認証システムアプリケーションの場合) では、パスワードの長さは 16文字を超えることはできません。(
参照)
GeneXus 17 Upgrade 8 以降。
GAM - ワンタイムパスワード (OTP) GAM - モバイル用タイムベースド ワンタイム パスワード