11.12.1 AndroidでのOracle Mobile Authenticatorのプッシュ通知の構成

Oracle Mobile Authenticator (OMA)は、時間ベースのワンタイム・パスコード(TOTP)またはプッシュ通知を使用して、2ファクタ認証スキームでユーザーを認証するモバイル・デバイス・アプリケーションです。OAAでは、OMAアプリケーションのプッシュ通知を構成できます。

OMAのプッシュ通知を使用した認証を求められると、Androidデバイスにプッシュ通知が配信され、ユーザーはログインの試行を許可または拒否する必要があります。プッシュ通知はOMAアプリケーションに配信され、その後OAAサーバーと通信して、保護されたリソースへのアクセス権が付与または拒否されます。

ノート:

プッシュ通知では、前提条件としてファクタ検証を構成する必要があります。続行する前に、ファクタ検証が構成されていることを確認してください。ファクタ検証の構成に関する項を参照してください。

11.12.1.1 Oracle Mobile Authenticatorアプリケーションのインストール

Androidデバイス用のOracle Mobile Authenticator (OMA)アプリケーションは、Google Playストアからダウンロードできます。

OMAプッシュ通知を使用する予定のエンド・ユーザーは、使用しているAndroidデバイスにアプリケーションをインストールする必要があります。

11.12.1.2 FirebaseおよびOAAの構成

次の構成ステップでは、OAAを使用してAndroidデバイスのプッシュ通知を構成する方法を示します。

ノート:

管理者は、次のことに注意する必要があります:
  • Googleは、2024年6月に従来のFCM APIを廃止し、HTTP v1 APIに移行しています。すべての新しい構成でHTTP v1 APIを使用することをお薦めします。この項のステップでは、HTTP v1 APIを使用してプッシュ通知を構成します。
  • HTTPv1 APIを使用するには、6月24日の改定以降のOAAリリースを使用する必要があります。
  • 6月24日の改定より前のOAAリリースでAndroidのプッシュ通知を構成した場合、使用するのは従来のFCM APIになります。管理者は、6月24日の改定以降のOAAにアップグレードして、HTTP v1 APIに移行する必要があります。HTTP v1 APIにアップグレードして移行するステップは、「OAA、OARMおよびOUAのアップグレード」を参照してください。
  • 参考のため、従来のFCM APIを使用した構成ステップは、「従来のFCM APIを使用したOMAプッシュ通知の構成」に移動しました。

11.12.1.2.1 Google Cloud Messagingに対応したGoogle Firebaseプロジェクトの作成

Androidデバイスにプッシュ通知を送信するには、Androidプッシュ通知サービスでプロジェクトが有効になっていることを確認する必要があります。Androidに使用できるプッシュ通知サービスはGoogle Cloud Messaging (GCM)で、Google Firebaseプロジェクトを作成する必要があります。

次のステップに従ってGoogle Firebaseプロジェクトを作成します:
  1. Google Firebaseコンソール(https://console.firebase.google.com/)にログインします。
  2. 「プロジェクトの追加」をクリックします。
  3. 「Project name」フィールドに、プロジェクトの名前を入力します。たとえば、OAAAndroidPUSHです。
  4. Firebaseのプロジェクト・ページの「Google Analytics」で、「Enable Google Analytics for this project」の選択を解除し、「Create project」をクリックします。
  5. 新しいプロジェクトの準備が完了したら、「Continue」をクリックします。
  6. プロジェクト・ウィンドウの左側のナビゲーション・ペインで、「Settings」アイコンをクリックし、「Project settings」を選択します。
  7. 「Project settings」ページで、「Cloud Messaging」をクリックします。
  8. 「Firebase Cloud Messaging API (V1)」で、省略記号をクリックし、「Manage the API in Google Cloud Console」を選択します。
  9. まだ有効化されていない場合は、表示される新しいタブで、「Cloud Messaging」の下の「ENABLE」をクリックします。
  10. 「Firebase Cloud Messaging API (V1)」をクリックした元のタブに戻り、ページをリフレッシュします。
  11. 「Sender ID」フィールドの値をメモします。この値は、「Androidプッシュ通知のOAAプロパティの構成」で後から必要になります。
  12. 「Service Accounts」タブに移動し、「Generate new private key」をクリックします。「Generate new private key」ウィンドウで、「Generate key」をクリックします。これにより、サービス・アカウントjsonファイルが生成されます。service-account.jsonなどのファイルをダウンロードして保存します。「OAAへのサービス・アカウントJSONファイルのコピー」で後から必要になるため、ファイルを安全に保管します。

11.12.1.2.2 Androidプッシュ通知のOAAプロパティの構成

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.senderId Firebaseの送信者ID「Google Cloud Messagingに対応したGoogle Firebaseプロジェクトの作成」を参照してください。 58213467743

ノート:

proxyProtocolproxyHostおよび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.senderId",
"value": "58213467743"
}
]'

PolicyUrlの検索および認証の詳細は、「OAA管理API」を参照してください。

REST APIの詳細は、構成プロパティRESTエンドポイントに関する項を参照してください

11.12.1.2.3 OAAへのサービス・アカウントJSONファイルのコピー

この項では、サービス・アカウントjsonファイルをOAAに格納する方法について説明します。

「Google Cloud Messagingに対応したGoogle Firebaseプロジェクトの作成」でダウンロードしたサービス・アカウントjsonファイルは、/u01/oracle/service/store/oaaにマップする<NFS_VAULT_PATH>にコピーする必要があります。

ファイルをファイル・ベースのボールトにコピーするには、次のステップを実行します:
  1. NFSボリューム<NFS_VAULT_PATH>にディレクトリを作成します:
    cd <NFS_VAULT_PATH>
    $ mkdir -p ChallengeOMAPUSH/gcm
    $ cp service-account.json <NFS_VAULT_PATH>/ChallengeOMAPUSH/gcm
    $ sudo chmod 444 <NFS_VAULT_PATH>/ChallengeOMAPUSH/gcm/service-account.json
  2. <NFS_CONFIG_PATH>/installOAA.propertiesファイルを編集し、次のようにcommon.deployment.push.gcmjsonfileを更新してファイルを保存します:
    common.deployment.push.gcmjsonfile=/u01/oracle/service/store/oaa/ChallengeOMAPUSH/gcm/service-account.json

    ノート:

    /u01/oracle/service/store/oaa/ChallengeOMAPUSH/gcm/service-account.jsonは、<NFS_VAULT_PATH>/ChallengeOMAPUSH/gcm/service-account.jsonへの内部マッピングです。
  3. <NFS_LOG_PATH>/status.infoを編集し、次のボールト・パラメータをfalseに設定してファイルを保存します:
    VAULTINSTALL=false
    VAULTCHECK=false
  4. 次のように、OAA管理コンテナを入力します:
    kubectl exec -n oaans -ti oaamgmt-oaa-mgmt-7dfccb7cb7-lj6sv9 --
        /bin/bash
    これにより、OAA管理ポッド内のBashシェル内に移動します:
    oracle@oaamgmt-oaa-mgmt-7dfccb7cb7-lj6sv /]$
  5. OAA管理ポッドのbashシェル内で、OAA.shスクリプトを実行して、common.deployment.push.gcmjsonfile構成を選択します:
    cd ~
    ./OAA.sh -f installOAA.properties
  6. デプロイメントの更新が成功したら、「AndroidでのOracle Mobile Authenticatorへのユーザー・アカウントの登録」を参照してください。

11.12.1.3 AndroidでのOracle Mobile Authenticatorへのユーザー・アカウントの登録

この項では、OMAアプリケーションでユーザー・アカウントを登録する方法について説明します。

  1. セルフサービス・ポータル(https://<SpuiUrl>)にログインします。
  2. 「認証ファクタ」で、「認証ファクタの追加」「OMAプッシュ通知チャレンジ」の順に選択します。
    「モバイル・デバイスの追加」画面が表示されます。
  3. Androidデバイスで署名付きOMAアプリを開きます。
  4. 「アカウントの追加+」をクリックします。
    これにより、Androidデバイスのカメラが起動します。
  5. カメラを使用して、画面上のQRコードをスキャンします。
    「ログインが必要です」画面が表示されます。
  6. 次のことを行います:
    1. ユーザー名で大/小文字が区別されているとおりに、「ユーザー名」フィールドに、「セルフサービス・ポータル」画面に表示されるユーザー名を入力します。
    2. 「PINコード」フィールドに、「セルフサービス・ポータル」画面に表示されるPINコードを入力します。
  7. 「サインイン」をクリックし、求められた場合は、証明書を受け入れます。
    OMAにアカウントが正常に追加されます。
  8. 「セルフサービス・ポータル」画面で、「完了」をクリックします。
登録済デバイスのOMAプッシュ通知チャレンジがセルフサービス・ポータルに表示されます。

次のステップ: Androidプッシュ通知を使用した保護されたアプリケーションへのアクセス

11.12.1.4 Androidプッシュ通知を使用した保護されたアプリケーションへのアクセス

プッシュ通知をテストするには、保護されたアプリケーションにアクセスする必要があります。

保護されたアプリケーションにアクセスするには、次のステップを実行します:
  1. 保護されたアプリケーションにアクセスします。たとえば、https://www.example.com/applicationです。
    OAAチャレンジ選択画面が表示されます。
  2. 「OMAプッシュ通知チャレンジ」で、「デバイス<DeviceID>でのログインを承認します」を選択します。
    Androidデバイスに通知が表示されるプッシュ画面にリダイレクトされます。
  3. デバイスで「許可」を選択してログインします。
認証が成功すると、保護されたページにリダイレクトされます。