ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Adaptive Access Manager開発者ガイド
11gリリース2(11.1.2)
B71697-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

16 OTP Anywhereの実装

この章では、OTP Anywhereの実装方法について説明します。OTP Anywhereにより、エンド・ユーザーは、サーバーで生成されたワンタイム・パスワード(OTP)を入力することで自己認証を行えます。OTPがSMS経由で送信される場合は、ユーザーの携帯電話が、ユーザーが所有していることを示す物理的な二次的要因として機能します。同様に、有効なユーザーのみがワンタイム・パスワードにアクセスできることをより高いレベルで保証するために、認証が帯域外で送信されます。

16.1 OTPの実装について

ワンタイム・パスワード(OTP)は二次的認証であり、標準的なユーザー名とパスワードの資格証明に加えてこれを使用することにより、既存の認証および権限プロセスが強化され、ユーザーに対するセキュリティが補強されます。アプリケーションから、現在のセッションだけで有効なワンタイム・パスワードがユーザーに送信されます。このパスワードは、ユーザーにチャレンジしてユーザーのアイデンティティを検証するために使用します。

Oracle Adaptive Access Manager 11gには、Oracle User Messaging Service(UMS)を使用したワンタイム・パスワード(OTP)認証をサポートするフレームワークが組み込まれています。この実装により、アプリケーションはOTPを使用してユーザーにチャレンジする際に、Oracle User Messaging Service(UMS)をパスワード配信方法として使用できます。

OTP Anywhereの利点は、次のとおりです。

16.2 コンセプトと用語

この項では、OTP Anywhere実装に関連するキー定義、頭字語、略語について説明します。

表16-1 OTP Anywhereの用語

用語 説明

ワンタイム・パスワード認証(OTP)

ワンタイム・パスワード(OTP)は、1回だけ使用する英数字の資格証明に基づいて個人を認証するために使用します。OTPは、ユーザーが構成した配信方法に従って配信されます。ユーザーは操作を続行するために、レスポンスとしてOTP資格証明を提供します。帯域外OTPを使用する主な利点は次のとおりです。

  • エンド・ユーザーのブラウザ/インターネットに障害が発生しても、ブラウザとは別の通信帯域で認証を安全に行うことができます。

  • ユーザーは、独自のハードウェアまたはいかなる種類のクライアント・ソフトウェアも必要としません。

Oracle User Messaging Service(UMS)

Oracle User Messaging Serviceは、SOAスイートのインストール時にSOAドメインにインストールされるファシリティです。Oracle User Messaging Serviceは、ユーザーとデプロイされたアプリケーション間での双方向通信を可能にします。通信は、電子メール、インスタント・メッセージ(IMまたはチャット)、およびSMSなどの様々なチャネルを通すことができます。OAAMは、ユーザーとの通信手段としてOracle User Messaging Serviceを使用します。

チャレンジ・プロセッサ

チャレンジ・プロセッサは、ChallengeProcessorIntfインタフェースを実装するかAbstractChallengeProcessorクラスを拡張するJavaコードです。カスタム・チャレンジ・プロセッサを作成して、チャレンジの生成、ユーザーからのチャレンジ回答の検証、およびサービス配信とサービス可用性のステータスの確認を行うことができます。デフォルトでは、OAAMには、Oracle User Messaging Service配信を介して、SMSと電子メールによるKBA質問チャレンジおよびOTPチャレンジに対するサポート(またはチャレンジ・プロセッサ実装)が組み込まれています。

チャレンジ・タイプ

チャネルは、OTPをユーザーに送信するための配信チャネル(電子メール、SMS、またはIM)です。チャレンジ・タイプは、ユーザーにチャレンジするためにOTPで使用しているチャネルです。必要なチャレンジの処理で生じる差異に対応するためにチャレンジ・タイプを構成できます。チャレンジ・タイプの処理として、チャレンジに使用する機密情報の生成からユーザーへの機密情報の配信、および最終的なユーザー入力の検証にいたるまで、チャレンジ・タイプのあらゆる作業が考えられます。これらの主要プロセス(生成、送信、および検証)では、チャレンジのタイプ別に若干異なるコードが必要になる場合があります。


16.3 前提条件

アプリケーションにOTPを構成する前に、次の前提条件が満たされていることを確認してください。


注意:

カスタムOAAM拡張のデプロイに精通している必要があります。

Oracle Adaptive Access Managerは、カスタマイズされたJARファイルとその他のファイルを拡張共有ライブラリに追加してカスタマイズされている必要があります。

カスタマイズされたJARファイルとその他のファイルの追加の詳細は、第7章「OAAM拡張共有ライブラリの使用によるOAAMのカスタマイズ」を参照してください。


16.3.1 SOAスイートのインストール

Oracle User Messaging Service(UMS)ドライバとOTPを構成するには、事前にSOAスイート11gをインストールしてSOAドメインを構成し、管理サーバーとSOAサーバーを実行しておく必要があります。また、Oracle Enterprise Manager Fusion Middleware管理コンソールにアクセスする必要もあります。

SOA Suite 11gのインストールの詳細は、『Oracle Fusion Middleware Oracle SOA SuiteおよびOracle Business Process Management Suiteインストレーション・ガイド』を参照してください。

16.3.2 Oracle User Messaging Serviceドライバの構成

User Messaging Serviceには、それぞれ特定のチャネルのトラフィックを処理するドライバがいくつか含まれています。ドライバはチャネルを管理します。ドライバを構成するには、メッセージの送信元である適切な配信サーバー、プロトコルなどのプロパティを指定する必要があります。OAAMサーバーをチャネル用に設定します。

これらのドライバは、特定のインストールで使用できるメッセージング・チャネルに従って、相互に独立してデプロイまたはアンデプロイできます。

Oracle Enterprise Manager Fusion Middleware管理コンソール(通常は、http://host:7001/em)に移動して、User Messaging Serviceノードを開きます。右パネルのドロップダウン・メニューから、ドライバ・プロパティのオプションを選択します。たとえば、「電子メール・ドライバ・プロパティ」を選択します。表示されたフォームでは、ドライバに関する様々なプロパティ(サーバーやプロトコルなどの詳細情報も含む)を設定して操作に利用できます。たとえば、電子メール操作でドライバが使用できるように、電子メール・サーバーの詳細を入力できます。

16.3.2.1 電子メール・ドライバ

電子メール・ドライバをSMTPサーバーに構成します。電子メール・ドライバの構成の詳細は、『Oracle Fusion Middleware Oracle SOA SuiteおよびOracle Business Process Management Suite管理者ガイド』を参照してください。

表16-2 SMTPサーバーへの接続

パラメータ 説明

OutgoingMailServer

電子メールの送信が必要な場合は必須です。例: smtp.<name>.com for <name>

OutgoingMailServerPort

SMTPサーバーのポート番号。

OutgoingMailServerSecurity

使用可能な値はTLSとSSLです。

OutgoingDefaultFromAddress(オプション)

電子メール・メッセージの送信者として指定される電子メールのアドレス。

OutgoingUsername

電子メールの送信元であるユーザー・アカウント。

OutgoingPassword

アカウントのパスワード(暗号化形式で格納されています)。


「適用」を押します。これらの設定を有効にするには、ドライバを再起動する必要があります。

16.3.2.2 SMPPドライバ

Short Message Peer-to-Peer(SMPP)は、最も一般的なGSM SMSプロトコルの1つです。ユーザー・メッセージング・サービスには、事前作成のSMPPプロトコルの実装がドライバとして含まれています。このドライバは、ショート・メッセージを送受信できます。


注意:

SMSの場合は、デプロイして即時利用できる電子メール・ドライバと異なり、最初にSMPPドライバをデプロイしてから構成を変更する必要があります。


『Oracle Fusion Middleware Oracle SOA SuiteおよびOracle Business Process Management Suite管理者ガイド』のSMPPドライバの構成に関する項のように、SMPPドライバを構成してください。ドライバのゲートウェイ・ベンダーに接続するためのパラメータ値を指定する必要があります。

表16-3 ベンダーへの接続

パラメータ 説明

SmsAccountId

SMS-CのアカウントID。これはベンダー・アカウントIDであり、ベンダーから取得する必要があります。

SmsServerHost

SMS-Cサーバーの名前(またはIPアドレス)。TransmitterSystemId

TransmitterSystemPassword

送信側システムのパスワード。パスワードのタイプ(「間接パスワード、新規のユーザーの作成」、「間接パスワード、既存のユーザーの使用」、「クリアテキスト・パスワードの使用」から選択)とパスワードが含まれています。これは、ベンダー・アカウントIDに対応するパスワードです。

TransmitterSystemType

送信側システムのタイプ。デフォルトはLogicaです。

ReceiverSystemId

メッセージの受信に使用するアカウントID。ReceiverSystemPassword

ReceiverSystemType

受信側システムのタイプ。デフォルトはLogicaです。

ServerTransmitterPort

送信側サーバーのTCPポート番号。

ServerReceiverPort

受信側サーバーのTCPポート番号。

DefaultEncoding

SMPPドライバのデフォルトのエンコーディング。デフォルトはIA5です。ドロップダウン・リストから「IA5」、「UCS2」または「GSM_DEFAULT」を選択します。

DefaultSenderAddress

デフォルトの送信者アドレス。


パラメータ値を指定した後で、「適用」を押します。これらの設定を有効にするには、ドライバを再起動する必要があります。

16.4 OTPの設定

配信方法としてOracle User Messaging Service(UMS)を使用するOTPは、OAAMサーバーの標準機能です。この項では、この機能の実装に必要な手順の概要について説明します。

OAAMサーバー・インタフェースのカスタマイズ手順に従って、カスタマイズされたJARファイルとその他のファイルを拡張共有ライブラリに追加します。OAAMサーバー・インタフェースのカスタマイズの詳細は、第7章「OAAM拡張共有ライブラリの使用によるOAAMのカスタマイズ」を参照してください。

Oracle User Messaging Service(UMS)とOTP実装は、OAAMサーバーのチャレンジ・プロセス・フレームワークを使用してOAAMサーバー・ログイン、チャレンジ、および登録の各フローに統合されています。ログイン、チャレンジ、登録の各フローの詳細は、第2章「Oracle Adaptive Access Managerのネイティブ統合」を参照してください。

16.5 OTPの構成

この項では、次の項目について説明します。

16.5.1 Oracle User Messaging Serviceの統合

Oracle User Messaging Service(UMS)サーバーのURLと資格証明用に設定するプロパティを、表16-5に示します。これらのプロパティは、OAAM管理でプロパティ・エディタを使用して編集できます。注意: エンド・ポイントは、OAAMでOracle User Messaging Serviceへのコール送信に使用するWebサービスURLです。

表16-5 Oracle User Messaging Service ServerのURLと資格証明

プロパティ デフォルト値 説明

bharosa.uio.default.ums.integration.webservice


UMSサーバーのWebサービスURL

http://<UMSサーバーURL>:<UMSポート>/ucs/messaging/webservice

bharosa.uio.default.ums.integration.parlayx.endpoint


UMSサーバーのParlayXエンドポイントURL

http://<UMSサーバーURL>:<UMSポート>/sdpmessaging/parlayx/SendMessageService

bharosa.uio.default.ums.integration.useParlayX

false

WebサービスAPIまたはparlayx APIの使用を構成します。デフォルトでは、この値はfalseです(Webサービスの使用をお薦めします)。

bharosa.uio.default.ums.integration.userName


Oracle User Messaging Serviceサーバーのユーザー名

bharosa.uio.default.ums.integration.password


Oracle User Messaging Serviceサーバーのパスワード

bharosa.uio.default.ums.integtaion.policies


Oracle User Messaging Serviceの認証ポリシー

bharosa.uio.default.ums.integration.fromAddress

demo@oracle.com

OTPメッセージ用のOAAM送信元アドレス

bharosa.uio.default.ums.integration.message.status.poll.attempts

3

待機ページが表示されるたびにステータス・ポーリングを試みる回数

bharosa.uio.default.ums.integration.message.status.poll.delay

1000

待機ページが表示されているときのステータス・ポーリング間の遅延

bharosa.uio.default.ums.integration.sleepInterval

10000


bharosa.uio.default.ums.integration.deliveryPage.delay

3000



Oracle User Messaging Serviceサーバーのプロパティ設定後に、アプリケーションを再起動してください。

16.5.2 OTPチャレンジ・タイプの有効化

チャレンジ・タイプを有効化するには、適切なプロパティをtrueに設定します。プロパティをtrueに設定することにより、ポリシーは、チャレンジ・タイプ(電子メール、SMS、またはIM)を介し、OTPを使用してチャレンジできるようになります。登録フローで電子メール、SMS、またはIMのページが表示されます。

チャレンジ・タイプ列挙は、チャレンジ・タイプの関連作業の実行に必要なJavaコードをチャレンジ・タイプに関連付けるために使用します。チャレンジ・タイプID(ChallengeEmail)は、チャレンジ・タイプを使用する際にルールにより返されるルール・アクションと一致している必要があります。

表16-6 Oracle User Messaging ServiceのOTPチャレンジ・タイプ

プロパティ デフォルト値 説明

bharosa.uio.default.challenge.type.enum.ChallengeEmail.available

false

電子メール・チャレンジ・タイプの可用性フラグ

bharosa.uio.default.challenge.type.enum.ChallengeSMS.available

false

SMSチャレンジ・タイプの可用性フラグ

bharosa.uio.default.challenge.type.enum.ChallengeIM.available

false

インスタント・メッセージのチャレンジ・タイプの可用性フラグ


16.5.3 登録とユーザー・プリファレンスの有効化

登録フローとユーザー・プリファレンスを有効化するには、次のプロパティをtrueに設定します。

表16-7 OTPプロファイル登録とプリファレンス設定の有効化

プロパティ 説明

bharosa.uio.default.register.userinfo.enabled

OTPチャネルが有効化されていて登録が必要な場合、このプロパティをtrueに設定すると、プロファイル登録ページが有効になります。

bharosa.uio.default.userpreferences.userinfo.enabled

OTPチャネルが有効化されていてプリファレンス設定が許可されている場合、このプロパティをtrueに設定すると、ユーザーはプリファレンスを設定できます。

ユーザー・プリファレンス・ページを使用して、ユーザーは、イメージ/フレーズ、チャレンジ質問の変更、デバイスの登録解除およびOTPプロファイルの更新を実行できます。


16.6 OTPのカスタマイズ

この項では、次の項目について説明します。

16.6.1 登録フィールドと検証のカスタマイズ

表16-8に、OTP登録ページのモバイル登録フィールドの定義と検証を示します。

モバイル入力登録フィールドのプロパティをoaam_custom.propertiesに追加します。

これらのプロパティはoaam_custom.propertiesに追加される必要があります。

表16-8 モバイル入力 - プロパティ・ファイル

プロパティ デフォルト値 説明

bharosa.uio.default.userinfo.inputs.enum.mobile

0

携帯電話の列挙値

bharosa.uio.default.userinfo.inputs.enum.mobile.name

携帯電話

「携帯電話」フィールドの名前

bharosa.uio.default.userinfo.inputs.enum.mobile.description

携帯電話

「携帯電話」フィールドの説明

bharosa.uio.default.userinfo.inputs.enum.mobile.inputname

セル番号

「携帯電話」フィールドのHTML入力名

bharosa.uio.default.userinfo.inputs.enum.mobile.inputtype

テキスト

「携帯電話」フィールドのHTML入力タイプ

bharosa.uio.default.userinfo.inputs.enum.mobile.maxlength

15

「携帯電話」フィールドのHTML入力の最大長

bharosa.uio.default.userinfo.inputs.enum.mobile.required

true

登録およびユーザー・プリファレンスにおける「携帯電話」フィールドの必須フラグ

bharosa.uio.default.userinfo.inputs.enum.mobile.order

1

「携帯電話」フィールドのページにおける順序

bharosa.uio.default.userinfo.inputs.enum.mobile.enabled

true

「携帯電話」列挙項目の有効フラグ

bharosa.uio.default.userinfo.inputs.enum.mobile.regex

\\D?(\\d{3})\\D?\\D?(\\d{3})\\D?(\\d{4})

「携帯電話」フィールドの検証用の正規表現

bharosa.uio.default.userinfo.inputs.enum.mobile.errorCode

otp.invalid.mobile

「携帯電話」エントリの検証が失敗した場合にエラー・メッセージを取得するためのエラー・コード

bharosa.uio.default.userinfo.inputs.enum.mobile.managerClass

com.bharosa.uio.manager.user.DefaultContactInfoManager

データ記憶域から携帯電話を保存/取得するために使用するJavaクラス


モバイル入力登録フィールドのプロパティをclient_resource.propertiesに追加します。

これらのプロパティをリソース・バンドルに追加する必要があります。

表16-9 モバイル入力 - リソース・バンドル

プロパティ デフォルト値 説明

bharosa.uio.default.userinfo.inputs.enum.mobile.name

携帯電話

「携帯電話」フィールドの名前

bharosa.uio.default.userinfo.inputs.enum.mobile.description

携帯電話

「携帯電話」フィールドの説明


16.6.2 ご使用条件のカスタマイズ

次に、OTP登録ページのご使用条件定義の例を示します。

ご使用条件の定義をoaam_custom.propertiesに追加します。

これらのプロパティはoaam_custom.propertiesに追加される必要があります。

表16-10 「ご使用条件」チェック・ボックス

プロパティ デフォルト値 説明

bharosa.uio.default.userinfo.inputs.enum.terms

4

ご使用条件の列挙値

bharosa.uio.default.userinfo.inputs.enum.terms.name

ご使用条件

「ご使用条件」チェック・ボックスの名前

bharosa.uio.default.userinfo.inputs.enum.terms.description

ご使用条件

「ご使用条件」チェック・ボックスの説明

bharosa.uio.default.userinfo.inputs.enum.terms.inputname

用語

「ご使用条件」チェック・ボックスのHTML入力名

bharosa.uio.default.userinfo.inputs.enum.terms.inputtype

チェックボックス

「ご使用条件」チェック・ボックスのHTML入力タイプ

bharosa.uio.default.userinfo.inputs.enum.terms.values

true

登録およびユーザー・プリファレンスにおける「ご使用条件」チェック・ボックスの必須値

bharosa.uio.default.userinfo.inputs.enum.terms.maxlength

40

「ご使用条件」チェック・ボックスのHTML入力の最大長

bharosa.uio.default.userinfo.inputs.enum.terms.required

true

登録およびユーザー・プリファレンスにおける「ご使用条件」チェック・ボックスの必須フラグ

bharosa.uio.default.userinfo.inputs.enum.terms.order

5

「ご使用条件」チェック・ボックスのページにおける順序

bharosa.uio.default.userinfo.inputs.enum.terms.enabled

true

「ご使用条件」列挙項目の有効フラグ

bharosa.uio.default.userinfo.inputs.enum.terms.regex

.+

「ご使用条件」チェック・ボックスの検証用の正規表現

bharosa.uio.default.userinfo.inputs.enum.terms.errorCode

otp.invalid.terms

「ご使用条件」の検証が失敗した場合にエラー・メッセージを取得するためのエラー・コード

bharosa.uio.default.userinfo.inputs.enum.terms.managerClass

com.bharosa.uio.manager.user.DefaultContactInfoManager

データ記憶域からご使用条件を保存/取得するために使用するJavaクラス


ご使用条件の定義をclient_resource.propertiesに追加します。

ご使用条件のデフォルト・メッセージは、次のリソース・バンドルの値によって定義されます。

表16-11 ご使用条件のメッセージ

プロパティ 説明

bharosa.uio.default.userinfo.inputs.enum.terms.name

[会社名またはサービス名をここに入力]のご使用条件に同意します。<a href="javascript:infoWindow('terms');">「ご使用条件」</a>および<a href="javascript:infoWindow('privacy');">「プライバシ・ポリシー」</a>をクリックすると全体が表示されます。

bharosa.uio.default.userinfo.inputs.enum.terms.description

メッセージおよびデータ・レートが適用されます。<br/>このプログラムに関して質問がある場合は、"HELP"を[コード/短縮コードをここに入力]に送信してください。<br/>プランを取り消すには、"STOP"を[コード/短縮コードをここに入力]にいつでも送信してください。<br/><br/>このサービスの追加情報は、<a href="" target="_blank">[情報URLをここに入力]</a>をご覧ください。<br/><br/><b>サポートされているキャリア:</b><br/>AT&T、Sprint、Nextel、Boost、Verizon Wireless、U.S. Cellular&reg;、T-Mobile&reg;、Cellular One Dobson、Cincinnati Bell、Alltel、Virgin Mobile USA、Cellular South、Unicel、CentennialおよびNtelos。


bharosa.uio.default.userinfo.inputs.enum.terms.nameの値には、「ご使用条件」および「プライバシ・ポリシー」に対するOAAMサーバーのポップアップ・メッセージを使用するプレースホルダ・リンクが含まれます。ポップアップのコンテンツのプロパティおよびリソース・キーは次のとおりです。

表16-12 ご使用条件およびプライバシ・ポリシーのポップアップ・メッセージ

プロパティ 説明

bharosa.uio.default.messages.enum.terms.name

ご使用条件

bharosa.uio.default.messages.enum.terms.description

ご使用条件のプレースホルダ・テキスト

bharosa.uio.default.messages.enum.privacy.name

プライバシ・ポリシー

bharosa.uio.default.messages.enum.privacy.description

プライバシ・ポリシーのプレースホルダ・テキスト


16.6.3 登録ページのメッセージのカスタマイズ

登録プロパティをclient_resource.propertiesに追加します。

表16-13 登録リソース・バンドル

プロパティ デフォルト値

bharosa.uio.default.register.userinfo.title

OTP Anywhereの登録

bharosa.uio.default.register.userinfo.message

お客様の保護のため、今後、当社がこの番号を使用してお客様の身元を確認できるよう携帯電話番号を入力してください。電話のテキスト・メッセージが有効になっていることをご確認ください。

bharosa.uio.default.register.userinfo.registerdevice.message

現在、安全なデバイスとして使用しているデバイスの登録を確認します:

bharosa.uio.default.register.userinfo.continue.button

続行

bharosa.uio.default.register.userinfo.decline.message

辞退されたお客様には再び登録をお願いすることはありません。

bharosa.uio.default.register.userinfo.decline.button

辞退


「辞退」ボタン

プロファイル登録ページ上の「辞退」ボタンの有無を制御するには、次のプロパティを設定します。

bharosa.uio.default.register.userinfo.decline.enabled = true

bharosa.uio.default.userpreferences.userinfo.decline.enabled = true


注意:

これらのプロパティがtrueであっても、「オプトアウト」プロパティがfalseの場合、このボタンは表示されません。


「辞退」ボタンが有効になっている場合、OTP登録ページ上に別のオプションが表示され、このオプションを使用して、ユーザーはOTPチャレンジをオプトアウトできます。ユーザーはOTPの再登録を要求されることはなく、OTPチャレンジを受信しません。ただし、カスタマ・ケアOTPプロファイルのリセット(またはすべてリセット)が実行されると、ユーザーは再度OTPに登録できます。

また、OTPをオプトアウトしたとしても、ユーザーは、ユーザー・プリファレンスのOTPページにアクセスして情報を追加し、「続行」をクリックできます。これにより、OTP対象外のフラグが削除され、ユーザーがOTPに登録されます。

16.6.4 チャレンジ・ページのメッセージのカスタマイズ

チャレンジ・タイプ・フィールドをclient_resource.propertiesに追加します。

表16-14 チャレンジ・タイプ・リソース・バンドルのアイテム

プロパティ デフォルト値

bharosa.uio.default.ChallengeSMS.message

お客様の保護のため、お客様の携帯電話にお送りしたコードを入力してください。コードが届いていない場合は、電話のテキスト・メッセージが有効になっていることを確認してから、下の再送信リンクをクリックしてください。

bharosa.uio.default.ChallengeSMS.registerdevice.message

現在、安全なデバイスとして使用しているデバイスの登録を確認します:

bharosa.uio.default.ChallengeSMS.continue.button

続行


16.6.5 OTPメッセージ・テキストのカスタマイズ

OTPメッセージ・フィールドをclient_resource.propertiesに追加します。

表16-15 チャレンジ・タイプ・リソース・バンドルのアイテム

プロパティ デフォルト値

bharosa.uio.default.ChallengeSMS.incorrect.message

OTPが正しくありません。再試行してください。

bharosa.uio.default.ChallengeSMS.message.subject

Oracle OTPコード

bharosa.uio.default.ChallengeSMS.message.body

Oracle SMS OTPコードは次のとおりです: {0}


16.6.6 オプトアウト機能の有効化

この機能はデフォルトで無効です。ユーザーに対してオプトアウトを有効にするには、このプロパティをtrueに設定します。

表16-16 OTPのオプトアウト・プロパティ

プロパティ デフォルト値

bharosa.uio.default.otp.optOut.enabled

false

bharosa.uio.default.otp.optOut.managerClass

com.bharosa.uio.manager.user.DefaultContactInfoManager


16.7 チャレンジ・タイプの作業を実行するSMSプロセッサの登録

チャレンジ・タイプ列挙は、チャレンジ・タイプの関連作業の実行に必要なJavaコードをチャレンジ・タイプに関連付けるために使用します。チャレンジ・タイプID(ChallengeEmail)は、チャレンジ・タイプを使用する際にルールにより返されるルール・アクションと一致している必要があります。「チャネル」は通常、OTPをユーザーに送信するための配信チャネル(電子メール、SMS、またはIM)です。

表16-17 チャレンジ・タイプの列挙

プロパティ 説明

available

チャレンジ・タイプが使用可能(サービスが準備され構成されている)かどうか。OTPチャレンジ・タイプを有効/無効にするには、可用性フラグを設定する必要があります。

processor

このタイプのチャレンジを処理するためのJavaクラス。

requiredInfo

登録入力列挙からの入力のカンマ区切りリスト。


表16-18に、SMSチャレンジ・プロセッサを登録するプロパティと、サービスを使用可能(または使用不可)とマークするプロパティを示します。

表16-18 SMSチャレンジ・プロセッサを登録するプロパティ

プロパティ デフォルト値 説明

bharosa.uio.default.challenge.type.enum.ChallengeSMS

2

SMSチャレンジの列挙値

bharosa.uio.default.challenge.type.enum.ChallengeSMS.name

SMSチャレンジ

SMSチャレンジ・タイプの名前

bharosa.uio.default.challenge.type.enum.ChallengeSMS.description

SMSチャレンジ

SMSチャレンジ・タイプの説明

bharosa.uio.default.challenge.type.enum.ChallengeSMS.processor

com.bharosa.uio.processor.challenge.ChallengeSMSProcessor

SMSチャレンジ・タイプのプロセッサ・クラス

bharosa.uio.default.challenge.type.enum.ChallengeSMS.requiredInfo

モバイル

SMSチャレンジ・タイプでユーザーにチャレンジするための必須フィールド

bharosa.uio.default.challenge.type.enum.ChallengeSMS.available

false

SMSチャレンジ・タイプの可用性フラグ

bharosa.uio.default.challenge.type.enum.ChallengeSMS.otp

true

SMSチャレンジ・タイプのOTPフラグ


16.8 ワンタイム・パスワード生成のカスタマイズ

プロパティの編集によって、ワンタイム・パスワードをカスタマイズできます。OTPの生成には、次のプロパティを使用します。

# OTP pin generation config
bharosa.uio.otp.generate.code.length = 5
bharosa.uio.otp.generate.code.characters = 1234567890
 

デフォルトのOTPコードは5文字であり、数字0~9で構成されます(例: 44569)。

bharosa.uio.otp.generate.code.lengthは、OTPの長さを指定します。

bharosa.uio.otp.generate.code.charactersは、OTPの生成時に使用する文字を指定します。

数字0~9および文字a~dを使用して4文字のOTPコード(例: 0c6a)を生成する例を次に示します。

bharosa.uio.otp.generate.code.length = 4
bharosa.uio.otp.generate.code.characters = 1234567890abcd

16.9 ワンタイム・パスワードの有効期間のカスタマイズ

OTP SMSパスワードの有効期間を設定するには、次のプロパティを追加します。

bharosa.uio.default.challenge.type.enum.ChallengeSMS.otpexpirytimeMs

OTP電子メール・パスワードの有効期間を設定するには、次のプロパティを追加します。

bharosa.uio.default.challenge.type.enum.ChallengeEmail.otpexpirytimeMsoaam_custom.propertiesに追加します。

時間の単位はミリ秒です。値がミリ秒でない場合は、変換する必要があります。たとえば、OTPの有効期間を5分に設定するには、このプロパティを300000ミリ秒(5分)に設定する必要があります。


注意:

このプロパティはOTP APIに作用しますが、現在、OAAMサーバーではこのAPIを使用していません。したがって、デフォルトでは、OAAMサーバーのOTPはセッション中は有効です(または使用されるまで有効です)。


16.10 チャレンジ・タイプに使用するチャレンジ・パッドの構成

デフォルトでは、使用されるチャレンジ・デバイスはルールを使用して構成されています。ルールはAuthentiPadチェックポイントの下に存在し、これにより、デバイスの目的に基づいて使用するデバイスのタイプを指定できます。

チャレンジ・タイプを使用するポリシーを作成または更新する手順は次のとおりです。

  1. 列挙rule.action.enumを指定する新しいルール・アクションMyChallengeを追加します。

  2. 新規作成されたアクションMyChallengeを戻すポリシーを作成して、チャレンジ・メソッドを使用します。

または、プロパティを使用してチャレンジ・デバイスを構成する場合、bharosa.uio.default.use.authentipad.checkpointfalseに設定して、AuthentiPadチェックポイントをバイパスできます。

チャレンジ・タイプで使用するデバイスを追加できます。

bharosa.uio.<application>.<challengeType>.authenticator.device=<value>

次の例では、チャレンジ・タイプ・キーのChallengeEmailChallengeSMSを使用してプロパティ名を作成しています。

bharosa.uio.default.ChallengeSMS.authenticator.device=DevicePinPad
bharosa.uio.default.ChallengeEmail.authenticator.device=DevicePinPad

使用可能なチャレンジ・デバイス値はDeviceKeyPadFullDeviceKeyPadAlphaDeviceTextPadDeviceQuestionPadDevicePinPadおよびDeviceHTMLControlです。

表16-19 認証デバイス・タイプ

プロパティ 説明

None

HTMLページまたは認証パッドはありません。

DeviceKeyPadFull

KeyPadを使用してユーザーにチャレンジします。

DeviceKeyPadAlpha

英数字KeyPad(数字と文字のみで特殊文字は含みません)を使用して、ユーザーにチャレンジします。

DeviceTextPad

TextPadを使用してユーザーにチャレンジします。

DeviceQuestionPad

QuestionPadを使用してユーザーにチャレンジします。

DevicePinPad

PinPadを使用してユーザーにチャレンジします。

DeviceHTMLControl

認証パッドのかわりにHTMLページを使用して、ユーザーにチャレンジします。


16.11 OTP Anywhereのデータ格納のカスタマイズ

この項では、OTP Anywhereのデータ格納をカスタマイズする方法について説明します。OTP Anywhereをカスタマイズするには、com.bharosa.uio.manager.user.UserDataManagerIntfインタフェースを実装します。

16.11.1 com.bharosa.uio.manager.user.UserDataManagerIntf

カスタマイズで使用するメソッドは、次のとおりです。

  • public String getUserData(UIOSessionData sessionData, String key);

  • public void setUserData(UIOSessionData sessionData, String key, String value);

16.11.2 デフォルト実装: com.bharosa.uio.manager.user.DefaultContactInfoManager

デフォルト実装はインタフェース上に展開して、すべてのgetおよびsetを次の2つのアイテム、UserDataValueおよびUserDataFlagに分解します。UserDataFlagは、値が設定されていることを追跡するか、値をソフト・リセットするために使用されます。ルールを使用してユーザーが指定のアイテムに対して登録されているかどうかを確認する際に、OAAMデータベース内でUserDataFlagが確認されます。UserDataValueは、ユーザーが入力した実際のデータ要素です。デフォルト実装では、これはOAAMデータベースにも格納されますが、DefaultContactInfoManagerクラスを拡張し、UserDataValueのメソッド(getUserDataValueおよびsetUserDataValue)をオーバーライドすることにより、必要に応じてデータを外部の場所に格納することもできます。

メソッド

public class DefaultContactInfoManager implements UserDataManagerIntf {
 
                  public String getUserData(UIOSessionData sessionData, String key){
                    if (getUserDataFlag(sessionData, key)){
                      return getUserDataValue(sessionData, key);
                    }
 
                    return null;
                  }
 
                  public void setUserData(UIOSessionData sessionData, String key, String value){
                    setUserDataValue(sessionData, key, value);
                    setUserDataFlag(sessionData, key, value);
                  }
 
                  protected void setUserDataValue(UIOSessionData sessionData, String key, String value){
                    VCryptAuthUser clientUser = sessionData.getClientAuthUser();
                    if (clientUser != null) {
                      clientUser.setUserData(BharosaConfig.get("oaam.otp.contact.info.prefix", "otpContactInfo_") + key, value);
                    }
                  }
 
                  protected String getUserDataValue(UIOSessionData sessionData, String key) {
                    VCryptAuthUser clientUser = sessionData.getClientAuthUser();
                    if (clientUser != null) {
                      return clientUser.getUserData(BharosaConfig.get("oaam.otp.contact.info.prefix", "otpContactInfo_") + key);
                    }
 
                    return null;
                  }
 
 
                  protected void setUserDataFlag(UIOSessionData sessionData, String key, String value){
                    VCryptAuthUser clientUser = sessionData.getClientAuthUser();
                    if (clientUser != null) {
                      if (StringUtil.isEmpty(value)) {
                        clientUser.setUserData(BharosaConfig.get("oaam.otp.contact.info.flag.prefix", "otpContactInfoFlag_") + key, null);
                      } else {
                        clientUser.setUserData(BharosaConfig.get("oaam.otp.contact.info.flag.prefix", "otpContactInfoFlag_") + key, "true");
                      }
                    }
                  }
 
                  protected boolean getUserDataFlag(UIOSessionData sessionData, String key) {
                    VCryptAuthUser clientUser = sessionData.getClientAuthUser();
                    if (clientUser != null) {
                      return Boolean.valueOf(clientUser.getUserData(BharosaConfig.get("oaam.otp.contact.info.flag.prefix", "otpContactInfoFlag_") + key));
                    }
 
                    return false;
                  }
 
 
                }
        

16.11.3 カスタム実装の推奨事項

ベース実装クラスDefaultContactInfoManagerを拡張し、メソッドsetUserDataValueおよびgetUserDataValueをオーバーライドして、実装用の適切な場所にデータ値を格納します。

デフォルト実装のsetUserDataFlagおよびgetUserDataFlagを所定の場所に置いたままにして、OAAMでユーザーに設定されたデータを適切に追跡できるようにします。

16.11.4 プロパティの構成

OTP Anywhereの登録フィールドは、ユーザー定義列挙bharosa.uio.default.userinfo.inputs.enumによって定義されます。

各要素には、登録データの格納に使用されるクラスを指定するmanagerClassプロパティが割り当てられています。

たとえば、デフォルトの携帯電話要素は次のようになります。

  bharosa.uio.default.userinfo.inputs.enum=Enum for Contact information
        bharosa.uio.default.userinfo.inputs.enum.mobile=0
        bharosa.uio.default.userinfo.inputs.enum.mobile.name=Mobile Phone
        bharosa.uio.default.userinfo.inputs.enum.mobile.description=Mobile Phone
        bharosa.uio.default.userinfo.inputs.enum.mobile.inputname=cellnumber
        bharosa.uio.default.userinfo.inputs.enum.mobile.inputtype=text
        bharosa.uio.default.userinfo.inputs.enum.mobile.maxlength=16
        bharosa.uio.default.userinfo.inputs.enum.mobile.required=true
        bharosa.uio.default.userinfo.inputs.enum.mobile.order=4
        bharosa.uio.default.userinfo.inputs.enum.mobile.enabled=true
        bharosa.uio.default.userinfo.inputs.enum.mobile.regex=\\d{1}\\D?(\\d{3})\\D?\\D?(\\d{3})\\D?(\\d{4})
        bharosa.uio.default.userinfo.inputs.enum.mobile.errorCode=otp.invalid.mobile
        bharosa.uio.default.userinfo.inputs.enum.mobile.managerClass=com.bharosa.uio.manager.user.DefaultContactInfoManager

ここに示すように、デフォルトの携帯電話定義ではDefaultContactInfoManagerクラスを使用してデータを管理しています。カスタム実装が必要な場合は、OAAM管理で(またはOAAM拡張共有ライブラリを使用して)カスタム・クラスを使用するように、managerClass属性の値を更新できます。

16.12 構成例

この項では、次の項目について説明します。

16.12.1 追加の登録フィールド定義の例

表16-20に、追加の登録フィールド定義を示します。

表16-20 連絡先情報入力

プロパティ 説明

inputname

HTML形式の入力フィールドに使用される名前。

inputtype

テキスト入力またはパスワード入力用に設定されます。

maxlength

ユーザー入力の最大長。

required

フィールドが登録ページで必須である場合に設定されます。

order

ユーザー・インタフェースに表示される順序。

regex

このフィールドのユーザー入力を検証するために使用される正規表現。

errorCode

検証エラー・メッセージ(bharosa.uio.<application ID>.error.<errorCode>)を参照するために使用されるエラー・コード。

managerClass

com.bharosa.uio.manager.user.UserDataManagerIntfを実装するJavaクラス(Oracle Adaptive Access Managerデータベースにデータを格納する場合、このプロパティはcom.bharosa.uio.manager.user.DefaultContactInfoManagerに設定される必要があります)。


16.12.1.1 電子メール入力

次に、オーセンティケータのOTP登録ページで電子メール登録を定義する列挙の例を示します。

表16-21 電子メール入力

プロパティ デフォルト値 説明

bharosa.uio.default.userinfo.inputs.enum.email

1

「電子メール・アドレス」の列挙値

bharosa.uio.default.userinfo.inputs.enum.email.name

電子メール・アドレス

「電子メール・アドレス」フィールドの名前

bharosa.uio.default.userinfo.inputs.enum.email.description

電子メール・アドレス

「電子メール・アドレス」フィールドの説明

bharosa.uio.default.userinfo.inputs.enum.email.inputname

電子メール

「電子メール・アドレス」フィールドのHTML入力名

bharosa.uio.default.userinfo.inputs.enum.email.inputtype

テキスト

「電子メール・アドレス」フィールドのHTML入力タイプ

bharosa.uio.default.userinfo.inputs.enum.email.maxlength

40

「電子メール・アドレス」フィールドのHTML入力の最大長

bharosa.uio.default.userinfo.inputs.enum.email.required

true

登録およびユーザー・プリファレンスにおける「電子メール・アドレス」フィールドの必須フラグ

bharosa.uio.default.userinfo.inputs.enum.email.order

2

「電子メール・アドレス」フィールドのページにおける順序

bharosa.uio.default.userinfo.inputs.enum.email.enabled

false

「電子メール・アドレス」列挙項目の有効フラグ

bharosa.uio.default.userinfo.inputs.enum.email.regex

.+@[a-zA-Z_]+?\\.[a-zA-Z]{2,3}

「電子メール・アドレス」フィールドの検証用の正規表現

bharosa.uio.default.userinfo.inputs.enum.email.errorCode

otp.invalid.email

「電子メール・アドレス」エントリの検証が失敗した場合にエラー・メッセージを取得するためのエラー・コード

bharosa.uio.default.userinfo.inputs.enum.email.managerClass

com.bharosa.uio.manager.user.DefaultContactInfoManager

データ記憶域から電子メール・アドレスを保存/取得するために使用するJavaクラス


16.12.1.2 電話入力

次に、オーセンティケータのOTP登録ページで電話登録を定義する列挙の例を示します。

表16-22 電話入力

プロパティ デフォルト値 説明

bharosa.uio.default.userinfo.inputs.enum.phone

2

電話番号の列挙値

bharosa.uio.default.userinfo.inputs.enum.phone.name

電話番号

電話番号フィールドの名前

bharosa.uio.default.userinfo.inputs.enum.phone.description

電話番号

電話番号フィールドの説明

bharosa.uio.default.userinfo.inputs.enum.phone.inputname

電話

電話番号フィールドのHTML入力名

bharosa.uio.default.userinfo.inputs.enum.phone.inputtype

テキスト

電話番号フィールドのHTML入力タイプ

bharosa.uio.default.userinfo.inputs.enum.phone.maxlength

15

電話番号フィールドのHTML入力の最大長

bharosa.uio.default.userinfo.inputs.enum.phone.required

true

登録およびユーザー・プリファレンスにおける電話番号フィールドの必須フラグ

bharosa.uio.default.userinfo.inputs.enum.phone.order

3

電話番号フィールドのページ上の順序

bharosa.uio.default.userinfo.inputs.enum.phone.enabled

false

電話番号列挙アイテムの有効化されたフラグ

bharosa.uio.default.userinfo.inputs.enum.phone.regex

\\D?(\\d{3})\\D?\\D?(\\d{3})\\D?(\\d{4})

電話番号フィールドの検証用の正規表現

bharosa.uio.default.userinfo.inputs.enum.phone.errorCode

otp.invalid.phone

電話番号エントリの検証が失敗した場合にエラー・メッセージを取得するためのエラー・コード

bharosa.uio.default.userinfo.inputs.enum.phone.managerClass

com.bharosa.uio.manager.user.DefaultContactInfoManager

データ格納への電話番号の保存またはデータ格納からの電話番号の取得に使用するJavaクラス


16.12.1.3 例: 携帯電話のかわりに電子メール・アドレスのエントリに値を表示するOTP登録ページ

登録に関して電子メールのエントリ情報のみを表示し、携帯電話のエントリ情報を無効にするには、次のように設定します。

bharosa.uio.default.userinfo.inputs.enum.email.enabled=true

bharosa.uio.default.userinfo.inputs.enum.mobile.enabled=false

電子メール・フィールドを有効にするには、サーバーを再起動する必要があります。

16.12.1.4 IM入力

次に、オーセンティケータのOTP登録ページでIM登録を定義する列挙の例を示します。

表16-23 IM入力

プロパティ デフォルト値 説明

bharosa.uio.default.userinfo.inputs.enum.im

3

インスタント・メッセージの列挙値

bharosa.uio.default.userinfo.inputs.enum.im.name

インスタント・メッセージ

インスタント・メッセージ・フィールドの名前

bharosa.uio.default.userinfo.inputs.enum.im.description

インスタント・メッセージ

インスタント・メッセージ・フィールドの説明

bharosa.uio.default.userinfo.inputs.enum.im.inputname

im

インスタント・メッセージ・フィールドのHTML入力名

bharosa.uio.default.userinfo.inputs.enum.im.inputtype

テキスト

インスタント・メッセージ・フィールドのHTML入力タイプ

bharosa.uio.default.userinfo.inputs.enum.im.maxlength

15

インスタント・メッセージ・フィールドのHTML入力の最大長

bharosa.uio.default.userinfo.inputs.enum.im.required

true

登録およびユーザー・プリファレンスにおけるインスタント・メッセージ・フィールドの必須フラグ

bharosa.uio.default.userinfo.inputs.enum.im.order

4

インスタント・メッセージ・フィールドのページ上の順序

bharosa.uio.default.userinfo.inputs.enum.im.enabled

false

インスタント・メッセージ列挙アイテムの有効化されたフラグ

bharosa.uio.default.userinfo.inputs.enum.im.regex

TBD

インスタント・メッセージ・フィールドの検証用の正規表現

bharosa.uio.default.userinfo.inputs.enum.im.errorCode

otp.invalid.im

インスタント・メッセージのエントリの検証が失敗した場合にエラー・メッセージを取得するためのエラー・コード

bharosa.uio.default.userinfo.inputs.enum.im.managerClass

com.bharosa.uio.manager.user.DefaultContactInfoManager

データ格納へのインスタント・メッセージの保存またはデータ格納からのインスタント・メッセージの取得に使用するJavaクラス


16.12.2 追加のチャレンジ・メッセージの例

チャレンジ・メッセージ・リソース・バンドルのその他の例は、以降の項に示します。これらのプロパティをclient_resource.propertiesに追加する必要があります。

16.12.2.1 OTP電子メール・メッセージのカスタマイズ

表16-24に、OTP電子メール・メッセージのプロパティを示します。カスタマイズされたOTP電子メール・メッセージのプロパティbharosa.uio.default.ChallengeEmail.message.subjectおよびbharosa.uio.default.ChallengeEmail.message.bodyを、client_resource.propertiesに追加する必要があります。プロパティbharosa.uio.default.ChallengeEmail.message.from.addressoaam_custom.propertiesに追加する必要があります。

表16-24 OTP電子メール・メッセージのカスタマイズ

プロパティ デフォルト値 説明

bharosa.uio.default.ChallengeEmail.message.from.name

Oracle ASAテスト

アドレスからの電子メール・メッセージ

bharosa.uio.default.ChallengeEmail.message.subject

Oracle OTPコード

電子メール・メッセージの件名

bharosa.uio.default.ChallengeEmail.message.body

このOracle電子メールのOTPコード: {0}

電子メール・メッセージの本体


16.12.2.2 OTP IMメッセージのカスタマイズ

表16-25に、OTP IMメッセージのプロパティを示します。

表16-25 OTP IMメッセージのカスタマイズ

プロパティ デフォルト値 説明

bharosa.uio.default.ChallengeIM.message.from.name

Oracle ASAテスト

名前からのIMメッセージ

bharosa.uio.default.ChallengeIM.message.subject

Oracle OTPコード

IMメッセージの件名

bharosa.uio.default.ChallengeIM.message.body

このOracle IMのOTPコード: {0}

IMメッセージの本体


16.12.3 追加のプロセッサ登録例

表16-26に、追加のプロセッサ登録プロパティを示します。

表16-26 チャレンジ・タイプの列挙

プロパティ 説明

available

チャレンジ・タイプが使用可能(サービスが準備され構成されている)かどうか。OTPチャレンジ・タイプを有効/無効にするには、可用性フラグを設定する必要があります。

processor

このタイプのチャレンジを処理するためのJavaクラス。

requiredInfo

登録入力列挙からの入力のカンマ区切りリスト。


16.12.3.1 電子メール・チャレンジ・プロセッサの登録

表16-27に、電子メール・チャレンジ・プロセッサを登録するプロパティと、サービスを使用可能(または使用不可)としてマークするプロパティを示します。

表16-27 電子メール・チャレンジ・プロセッサを登録するプロパティ

プロパティ デフォルト値 説明

bharosa.uio.default.challenge.type.enum.ChallengeEmail

1

電子メール・チャレンジの列挙値

bharosa.uio.default.challenge.type.enum.ChallengeEmail.name

電子メール・チャレンジ

電子メール・チャレンジ・タイプの名前

bharosa.uio.default.challenge.type.enum.ChallengeEmail.description

電子メール・チャレンジ

電子メール・チャレンジ・タイプの説明

bharosa.uio.default.challenge.type.enum.ChallengeEmail.processor

com.bharosa.uio.processor.challenge.ChallengeEmailProcessor

電子メール・チャレンジ・タイプのプロセッサ・クラス

bharosa.uio.default.challenge.type.enum.ChallengeEmail.requiredInfo

電子メール

電子メール・チャレンジ・タイプでユーザーにチャレンジするための必須フィールド

bharosa.uio.default.challenge.type.enum.ChallengeEmail.available

false

電子メール・チャレンジ・タイプの可用性フラグ

bharosa.uio.default.challenge.type.enum.ChallengeEmail.otp

true

電子メール・チャレンジ・タイプのOTPフラグ


16.12.3.2 IMチャレンジ・プロセッサの登録

表16-28に、IMチャレンジ・プロセッサを登録するプロパティと、サービスを使用可能(または使用不可)としてマークするプロパティを示します。

表16-28 IMチャレンジ・プロセッサを登録するプロパティ

プロパティ デフォルト値 説明

bharosa.uio.default.challenge.type.enum.ChallengeIM

3

インスタント・メッセージのチャレンジ列挙値

bharosa.uio.default.challenge.type.enum.ChallengeIM.name

IMチャレンジ

インスタント・メッセージのチャレンジ・タイプの名前

bharosa.uio.default.challenge.type.enum.ChallengeIM.description

インスタント・メッセージのチャレンジ

インスタント・メッセージのチャレンジ・タイプの説明

bharosa.uio.default.challenge.type.enum.ChallengeIM.processor

com.bharosa.uio.processor.challenge.ChallengeIMProcessor

インスタント・メッセージのチャレンジ・タイプのプロセッサ・クラス

bharosa.uio.default.challenge.type.enum.ChallengeIM.requiredInfo

モバイル

インスタント・メッセージのチャレンジ・タイプでユーザーにチャレンジするための必須フィールド

bharosa.uio.default.challenge.type.enum.ChallengeIM.available

false

インスタント・メッセージのチャレンジ・タイプの可用性フラグ

bharosa.uio.default.challenge.type.enum.ChallengeIM.otp

true

インスタント・メッセージのチャレンジ・タイプのOTPフラグ


16.13 チャレンジのユースケース

チャレンジ・シナリオの例は、次のとおりです。

  1. Oracle Adaptive Access Managerサーバーにより、ユーザーに対してユーザー名ページが表示されます。

  2. ユーザーは、ユーザー名ページでユーザー名を送信します。

  3. Oracle Adaptive Access Managerにより、ユーザー・デバイスのフィンガープリントが処理され、ユーザーがパスワード・ページに進むことを許可するかどうかを決定する認証前ルールが実行されます。

  4. ユーザーは、パスワード・ページに進むことが許可されて、自分のパスワードを入力します。

  5. OAAMポリシーにより、ユーザーにチャレンジする必要があることが示されます。

  6. チャレンジ・チェックポイントが実行され、使用するチャレンジのタイプ(KBA、電子メール、SMSなど)が決定されます。SMSチャレンジが返された場合は、SMSチャレンジ・プロセッサがロードされます。このSMSチャレンジ・プロセッサを使用してOTPが生成され、そのOTPがSMSを通じてユーザーに配信されます。

  7. SMSが送信されると、ユーザーのOTPがSMSでユーザーに送信されたことを示すチャレンジ・ページが表示されます。

  8. アプリケーションでの処理を継続するために、ユーザーは正しいOTPを入力してからログイン・フローを完了します。

生成されてユーザーに送信されたOTPは、各HTTPセッションで1回のみ入力可能です。ユーザーのHTTPセッションが期限切れになると、ユーザーが後続のセッションで再度チャレンジされた場合に新規OTPが生成されて送信されます。