11.11 Oracle Mobile Authenticatorのプッシュ通知の構成

OAAでは、Oracle Mobile Authenticator (OMA)アプリケーションのプッシュ通知を構成できるようになりました。

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

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

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

11.11.1.1 認証方法としてのOracle Mobile Authenticatorアプリケーションのインストール

Androidデバイス用のOMAアプリは、Google Playストアからダウンロードできます。

続行する前に、AndroidデバイスにOMAアプリがインストールされていることを確認してください。

11.11.1.2 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. 「Create a project」をクリックします。
  3. 「Project name」フィールドに、プロジェクトの名前を入力します。たとえば、OAAAndroidPUSHです。
  4. 「I accept the Firebase terms」チェック・ボックスを選択します。
  5. Firebaseのプロジェクト・ページの「Google Analytics」で、「Enable Google Analytics for this project」の選択を解除し、「Create project」をクリックします。
  6. 新しいプロジェクトの準備が完了したら、「Continue」をクリックします。
  7. プロジェクト・ウィンドウの左側のナビゲーション・ペインで、「Settings」アイコンをクリックし、「Project settings」を選択します。
  8. 「Project settings」ページで、「Cloud Messaging」をクリックします。
  9. 「Server key」および「Sender ID」フィールドに表示される値をメモします。これらの値は、次の項でOAAプロパティを設定するために必要です。

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

Androidデバイスのプッシュ通知の構成に必要なOAAプロパティをいくつか設定する必要があります。

次の表に、Androidのプッシュ通知に構成できるOAAプロパティを示します。

表11-5 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.google.firebase.serverKey Firebaseの「Server Key」。 AAAAh1hlXa8:APA91....
bharosa.uio.default.challenge.type.enum.ChallengeOMAPUSH.google.firebase.senderId Firebaseの「Sender ID」。 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.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エンドポイントに関する項を参照してください

11.11.1.4 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プッシュ通知チャレンジがユーザー・プリファレンス・コンソールに表示されます。

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

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

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

11.11.2 iOSでのOracle Mobile Authenticatorのプッシュ通知の構成

OAAでは、iOSでOMAアプリケーションのプッシュ通知を構成できるようになりました。

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

プッシュ通知は、Appleのプッシュ通知サービス(APNS)を介してiOSデバイスに送信されます。これには、Appleプッシュ通知証明書が必要で、生成はApple Developerのコンソールからのみ行えます。

Apple社のApp Storeから直接インストールされた標準OMAアプリケーションでは、OAAログイン試行のプッシュ通知がサポートされていません。Apple Developerコンソールで生成されたプッシュ通知証明書は、OMAアプリケーションに直接関連付けられます。そのため、プッシュ通知を受信するには、カスタムOMAアプリケーションを同一の証明書で作成して署名する必要があります。

iOSデバイスをOAAに登録すると、ユーザーのデバイスIDが格納され(ユーザー・プリファレンス・コンソールで確認可能)、目的の受信者の識別に使用されます。

Appleプッシュ通知証明書は、特に本番サーバーまたは開発サーバー用にApple社によって作成/署名されます。本番APNSサーバーとのプッシュ通知の送受信に、開発証明書を使用することはできません。APNS本番証明書を使用している場合は、Apple社にこれを要求し、APNSCertificate.jksに使用する必要があります。この証明書は、カスタマイズして作成されたOMAアプリケーションへの署名に使用されます。同様に、APNS開発証明書を使用している場合は、Apple社にこれを要求し、APNsCertificate.jksに使用する必要があります(この証明書は、カスタマイズして作成されたOMAアプリケーションへの署名に使用されます)。

11.11.2.1 Apple iOS証明書、アプリケーションID、バンドル識別子およびキーストアの作成

Apple iOS証明書、アプリケーションID、バンドル識別子およびキーストアの作成について説明します。

Apple iOS証明書、アプリケーションID、バンドル識別子およびキーストアを作成する手順については、My Oracle SupportのドキュメントID 2319759.1を参照してください。

ドキュメントID 2319759.1に記載されているステップを完了したら、このドキュメントに戻って、それ以降の手順を確認してください。

11.11.2.2 OAAへのAPNS Javaキー・ストアのコピー

APNSCertificate.jksファイルを作成した後、このファイルを<NFS_VAULT_PATH>にコピーする必要があります。これは/u01/oracle/service/store/oaaにマップされます。

ファイルをファイル・ベースのボールトにコピーするには、次のステップを実行します:
  1. NFSボリューム<NFS_VAULT_PATH>にディレクトリを作成します:
    $ cd <NFS_VAULT_PATH>
    $ mkdir -p ChallengeOMAPUSH/apns
    $ cp APNSCertificate.jks <NFS_PATH>/ChallengeOMAPUSH/apns
    $ sudo chmod 444 <NFS_VAULT_PATH>/ChallengeOMAPUSH/apns/APNSCertificate.jks

ノート:

  • APNSCertificate.jks<NFS_VAULT_PATH>内の任意の場所にコピーできますが、ファイルのコピー先ディレクトリを指すようにプロパティbharosa.uio.default.challenge.type.enum.ChallengeOMAPUSH.apns.keystorePathを変更する必要があります。「iOSプッシュ通知のOAAプロパティの構成」を参照してください。

11.11.2.3 iOSプッシュ通知のOAAプロパティの構成

iOSデバイスのプッシュ通知の構成に必要なOAAプロパティをいくつか設定する必要があります。

次の表に、iOSのプッシュ通知に構成できる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.apns.keystorePath APNSCertificate.jksキーストアの場所。 /u01/oracle/service/store/oaa/ChallengeOMAPUSH/apns/APNSCertificate.jks
bharosa.uio.default.challenge.type.enum.ChallengeOMAPUSH.apns.keystorePass キーストアのパスワード。 <password>
bharosa.uio.default.challenge.type.enum.ChallengeOMAPUSH.apns.h2Topic Apple Developerコンソールで作成されたAPNSアプリケーションID。 com.example.MyApp

ノート:

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.apns.keystorePath",
"value": "/u01/oracle/service/store/oaa/ChallengeOMAPUSH/apns/APNsCertificate.jks"
},
{
"name": "bharosa.uio.default.challenge.type.enum.ChallengeOMAPUSH.apns.keystorePass",
"value": "<password>"
},
{"name": "bharosa.uio.default.challenge.type.enum.ChallengeOMAPUSH.apns.h2Topic",
"value": "com.example.MyApp"}
]'

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

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

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

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

11.11.2.5 Oracle Mobile Authenticatorのインストール

Apple社のApp Storeから直接インストールされた標準OMAアプリケーションでは、OAAログイン試行のプッシュ通知がサポートされていません。

Apple Developerコンソールで生成されたプッシュ通知証明書は、OMAアプリケーションに直接関連付けられます。そのため、プッシュ通知を受信するには、カスタムOMAアプリケーションを同一の証明書で作成して署名する必要があります。

このカスタムOMAアプリケーションの作成方法については、My Oracle SupportのドキュメントID 2319759.1を参照してください。

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

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

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