11.12.1 AndroidでのOracle Mobile Authenticatorのプッシュ通知の構成
Oracle Mobile Authenticatorは、時間ベースのワンタイム・パスコード(TOTP)またはプッシュ通知を使用して2ファクタ認証スキームでユーザーを認証するモバイル・デバイス・アプリケーションです。OAAでは、OMAアプリケーションのプッシュ通知を構成できるようになりました。
OMAのプッシュ通知を使用した認証を求められると、Androidデバイスにプッシュ通知が配信され、ユーザーはログインの試行を許可または拒否する必要があります。プッシュ通知はOMAアプリケーションに配信され、その後OAAサーバーと通信して、保護されたリソースへのアクセス権が付与または拒否されます。
11.12.1.1 認証方法としてのOracle Mobile Authenticatorアプリケーションのインストール
Androidデバイス用のOMAアプリは、Google Playストアからダウンロードできます。
11.12.1.2 Google Cloud Messagingに対応したGoogle Firebaseプロジェクトの作成
Androidデバイスにプッシュ通知を送信するには、Androidプッシュ通知サービスでプロジェクトが有効になっていることを確認する必要があります。Androidに使用できるプッシュ通知サービスはGoogle Cloud Messaging (GCM)で、Google Firebaseプロジェクトを作成する必要があります。
- Google Firebaseコンソール(https://console.firebase.google.com/)にログインします。
- 「プロジェクトの追加」をクリックします。
- 「Project name」フィールドに、プロジェクトの名前を入力します。たとえば、
OAAAndroidPUSH
です。 - Firebaseのプロジェクト・ページの「Google Analytics」で、「Enable Google Analytics for this project」の選択を解除し、「Create project」をクリックします。
- 新しいプロジェクトの準備が完了したら、「Continue」をクリックします。
- プロジェクト・ウィンドウの左側のナビゲーション・ペインで、「Settings」アイコンをクリックし、「Project settings」を選択します。
- 「Project settings」ページで、「Cloud Messaging」をクリックします。
- 「クラウド・メッセージングAPI(レガシー)」で、省略記号をクリックし、「Google CloudコンソールでのAPIの管理」を選択します。
- 表示される新しいタブで、「クラウド・メッセージング」の下の「有効化」をクリックします。
- 「クラウド・メッセージングAPI(レガシー)」をクリックした元のタブに戻り、ページをリフレッシュします。
- 「Server key」および「Sender ID」フィールドに表示される値をメモします。これらの値は、次の項でOAAプロパティを設定するために必要です。
11.12.1.3 Androidプッシュ通知のOAAプロパティの構成
Androidデバイスのプッシュ通知の構成に必要なOAAプロパティをいくつか設定する必要があります。
表11-6 OAAプロパティ
プロパティ名 | 説明 | サンプルの値 |
---|---|---|
bharosa.uio.default.challenge.type.enum.ChallengeOMAPUSH.proxyProtocol | プロキシ・サーバーのプロトコル。 | httpまたはhttps |
bharosa.uio.default.challenge.type.enum.ChallengeOMAPUSH.proxyHost | プロキシ・サーバーのホスト名またはIPアドレス。 | proxy.example.com |
bharosa.uio.default.challenge.type.enum.ChallengeOMAPUSH.proxyPort | プロキシ・サーバーのポート。 | 80 |
bharosa.uio.default.challenge.type.enum.ChallengeOMAPUSH.pushPreferencesEndpoint | プッシュ・ファクタ登録に使用されるホストおよびポート。このホストとポートは、デバイスからアクセス可能である必要があります。これは、「デプロイメント詳細の出力」のSpuiUrl (SpuiUrl=https://<host:port>/oaa/rui )で参照されるホストおよびポートに対応します。
|
https://oaainstall |
bharosa.uio.default.challenge.type.enum.ChallengeOMAPUSH.challengeAnswerEndpoint | プッシュ・ファクタ・ランタイムに使用されるホストおよびポート。このホストとポートは、デバイスからアクセス可能である必要があります。これは、「デプロイメント詳細の出力」のプッシュURL (Push=https://<host:port>/oaa-push-factor )で参照されるホストおよびポートに対応します。
|
https://oaainstall |
bharosa.uio.default.challenge.type.enum.ChallengeOMAPUSH.retrycount | チャレンジの最大失敗再試行回数。この数を超えると、チャレンジはロックされます。デフォルト値は10です。Oracle Universal Authenticatorでプッシュ通知を使用する場合は、この値を50に設定する必要があります。 | 50 |
bharosa.uio.default.challenge.type.enum.ChallengeOMAPUSH.google.firebase.serverKey | Firebaseの「Server Key」。 | AAAAh1hlXa8:APA91.... |
bharosa.uio.default.challenge.type.enum.ChallengeOMAPUSH.google.firebase.senderId | Firebaseの「Sender ID」。 | 58213467743 |
ノート:
proxyProtocol
、proxyHost
およびproxyPort
プロパティは、プロキシ・サーバーを介してインターネットにアクセスできる場合にのみ必要です。OAAがインターネットに直接アクセスできる場合、これらのプロパティを設定する必要はありません。
OAAプロパティは、次のREST APIを使用して構成できます:
PUT <PolicyUrl>/policy/config/property/v1
ノート:
この場合は、<PolicyUrl>
から/oaa-policy
を削除します。たとえば、https://<host>:<port>/oaa-policy/policy/config/property/v1
ではなくhttps://<host>:<port>/policy/config/property/v1
を使用しますCURLコマンドを使用してOAAプロパティを構成する次の例を考えてみます次の例では、OAAがプロキシ・サーバーを介してインターネットにアクセスすることを想定しています:
curl --location -g --request PUT 'https://<PolicyUrl>/policy/config/property/v1' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic <Base64Encoded(<username>:<password>)>' \
--data '[
{
"name": "bharosa.uio.default.challenge.type.enum.ChallengeOMAPUSH.proxyProtocol",
"value": "https"
},
{
"name": "bharosa.uio.default.challenge.type.enum.ChallengeOMAPUSH.proxyHost",
"value": "proxy.example.com"
},
{
"name": "bharosa.uio.default.challenge.type.enum.ChallengeOMAPUSH.proxyPort",
"value": "80"
},
{
"name": "bharosa.uio.default.challenge.type.enum.ChallengeOMAPUSH.pushPreferencesEndpoint",
"value": "https://oaainstall"
},
{
"name": "bharosa.uio.default.challenge.type.enum.ChallengeOMAPUSH.challengeAnswerEndpoint",
"value": "https://oaainstall"
},
{
"name": "bharosa.uio.default.challenge.type.enum.ChallengeOMAPUSH.retrycount",
"value": "50"
},
{
"name": "bharosa.uio.default.challenge.type.enum.ChallengeOMAPUSH.google.firebase.serverKey",
"value": "AAAAh1hlXa8:APA91bGOGR4pMYe9GC6a2rU169hTCBVmc................................LpU2F8_Egn7IZguC1Rr2HSNnROzXu1d1Lam0TJ"
},
{
"name": "bharosa.uio.default.challenge.type.enum.ChallengeOMAPUSH.google.firebase.senderId",
"value": "58213467743"
}
]'
PolicyUrl
の検索および認証の詳細は、「OAA管理API」を参照してください。
REST APIの詳細は、構成プロパティRESTエンドポイントに関する項を参照してください