12 OAAと他の製品との統合

OAAを使用すると、他の製品との統合により、REST APIまたはブラウザベースのフローを通じてマルチファクタ認証(MFA)をサポートできます。

OAAは、Oracle Access Management (OAM)やOracle Identity Manager (OIM)などのブラウザベースのユーザー・フロー、またはOracle RADIUS Agent (ORA)などのREST APIベースのユーザー・フローやREST APIを使用したカスタム開発アプリケーションをサポートするクライアントと統合できます。

12.1 OAAとOAMとの統合

OAAは、OAAAuthnPluginを使用し、OAAをTAPパートナとして登録することで、OAMと統合できます。

OAAとOAMとの相互作用によるマルチファクタ認証の提供

次に、ブラウザベースのフローを介したOAA-OAM統合のユーザー・インタラクション・フローの概要を示します。

  1. ユーザーは、ブラウザを介してOAM (Webgate)で保護されたリソースにアクセスします。
  2. ユーザーは認証のためにOAMにリダイレクトされます。
  3. OAMは、ログイン画面をユーザーに提示し、認証後に、マルチファクタ認証用のTAPトークンを使用してフローをOAAにリダイレクトします。

    ノート:

    OAAは、OAAAuthnPluginを使用し、OAAをTAPパートナとして登録することで、OAMと統合されます。
  4. OAAは、認証のファクタを持つ追加のチャレンジ・ページをユーザーに提示します。
  5. チャレンジ・フローが完了すると、ユーザーは成功または失敗のメッセージとともにOAMにリダイレクトされます。
  6. マルチファクタ認証が成功した場合、ユーザーにはリソースへのアクセス権が付与されます。

OAAを使用したOAMの構成

OAMをOAAで構成するには、Oracle Access ManagementとOracle Advanced Authenticationの統合のチュートリアルを参照してください。

12.2 OAAとORAの統合

OAAは、REST APIを使用してOracle RADIUS Agent (ORA)と統合できます。

OAAとORAとの相互作用によるマルチファクタ認証の提供

次の例では、Oracle DatabaseはORAおよびOAAと統合されています。

  1. ユーザーがデータベース・クライアント(sqlplus)でデータベースにログインし、ユーザー資格証明(ユーザー名/パスワード)が検証されます。
  2. 認証後、データベースは第2ファクタ認証のためにORAを呼び出します。
  3. ORAはAPIを呼び出してユーザー・チャレンジを決定し、ユーザーに対するチャレンジ・プロンプトを表示します:
    1. OAAは、チャレンジ・プロンプト情報を提供します。
    2. ユーザーにプロンプトが表示され、ORAから回答を求められます。
  4. ORAはOAAにリダイレクトし、OAAはORAから提供された回答を検証します。
  5. ORAは、データベース・ログイン・セッションを再開するために再度リダイレクトします。
  6. チャレンジ検証が成功した場合、ユーザーにはデータベースへのアクセス権が付与されます。

OAAを使用したORAの構成

OAAを使用してORAを構成するには、マルチファクタ認証のためのOracle RADIUSエージェントとOracle Advanced Authenticationの使用のチュートリアルを参照してください。

12.3 OAAとOIMの統合

OAAとOracle Identity Manager (OIM)を統合することで、OAAで保護されたアプリケーションにパスワード管理機能を実装できます。

パスワードを忘れた場合の機能を使用すると、ユーザーはパスワードのリセットを要求できます。Oracle Identity Management (OIM)では、パスワード管理用のREST APIを公開しています。OAAでは、これらのREST APIを使用してユーザー・パスワードをリセットします。

次の各トピックでは、OIM REST APIを介したOAA-OIM統合のユーザー相互作用フローの概要を示します。

12.3.1 OAAとOIMの統合でのパスワードを忘れた場合のフローの理解

パスワードを忘れた場合のフローでは、ユーザーはすべてのチャレンジ質問に正しく回答した後で各自のパスワードをリセットできます。

ノート:

これらのステップを実行する前に、OIMがOAMと統合されていることを確認する必要があります。

OAMログイン・ページでユーザーが「パスワードを忘れた場合」リンクをクリックするシナリオを考えてみます。パスワードを忘れた場合の機能は、OAAの一部として実装されています。OAMは、ユーザーをOAAの「パスワードを忘れた場合」URLにリダイレクトし、パスワードが正常に変更されたときにOAAがリダイレクトする必要がある宛先URLを問合せパラメータ(backURL)として渡します。

コンポーネント間の相互作用のフローは次のとおりです。

  1. ユーザーが、OAMで保護されたリソースにアクセスしようとします。
  2. OAM Webゲート(SSOエージェント)により、リクエストが捕捉され、ユーザーがOracle Access Managerログイン・ページにリダイレクトされます。
  3. ユーザーがOracle Access Managerログイン・ページで「パスワードを忘れた場合」リンクをクリックすると、ユーザーはOAAの「パスワードを忘れた場合」URLに送信されます。
  4. ユーザーがユーザー名を入力すると、認証のためにKBAにリダイレクトされ、パスワードのリセットに進みます。
  5. OAAは、ユーザーとの相互作用を通じてユーザーがパスワードをリセットできるようにします。
  6. ステップ1で試行されたアクセスの宛先のアプリケーションURLに移動します。資格証明を指定してログインします。

12.3.2 パスワードを忘れた場合の機能の構成

OIM REST APIを使用してOAAをOIMと統合すると、パスワードを忘れた場合の機能を構成できます。

前提条件: これらのステップを実行する前に、OIMがOAMと統合されていることを確認する必要があります。
パスワードを忘れた場合の機能を実装するには、3つの構成を実行する必要があります:
  1. OAA管理コンソールの構成。「OIM統合のためのOAAの構成」を参照してください。
  2. OAAとOIMの間の接続の確立。「統合用のOIMプロパティの構成」を参照してください。
  3. OAMとOIMの統合の構成。「OAMの「パスワードを忘れた場合」リンクの構成」を参照してください。
12.3.2.1 OIM統合のためのOAAの構成

クライアント・アプリケーションをOAAと統合するには、統合エージェントを作成する必要があります。次に、統合エージェントの保証レベルを作成し、保証レベルに対してルールを定義する必要があります。これらのタスクは、OAA管理UIコンソールを使用して実行できます。
OAA管理UIコンソールで次のステップを実行します:
  1. OAA管理コンソールhttps://<AdminUrl>にログインします。コンソールはOAM OAuthで保護されているため、OAMログイン・ページにリダイレクトされます。資格証明およびログインを指定します。
  2. 「クイック・アクション」で、その他の統合エージェントの作成を選択します。
  3. 「統合エージェントの管理」をクリックします。
  4. 統合エージェントの作成ウィンドウで、次の指定を行います:
    1. 名前: 統合エージェントの名前を入力します(たとえば、ForgotPasswordFlowAgent)。
    2. 説明: 統合エージェントの説明を追加します。
    3. 統合エージェント・タイプ: リストから「API」を選択します。
    4. 「保存」をクリックします。
  5. 「統合エージェント」ウィンドウで、保証レベルを作成する必要がある統合エージェントをクリックします(たとえば、「ForgotPasswordFlowAgent」リンク)。
  6. 「保証レベル」タブで、「作成」をクリックします
  7. 必要な詳細を指定します:
    1. 名前: この保証レベルの名前を指定します(たとえば、ForgotPasswordAL)。
    2. 説明: 保証レベルの説明を入力します。
  8. 「作成」をクリックします。
  9. 「保証レベル」タブで、ルールを定義する必要がある保証レベルをクリックします(たとえば、「ForgotPasswordAL」リンク)。
  10. 「使用」で、保証レベルへの割当てに必要なファクタを選択します。このシナリオでは、「セキュリティの質問チャレンジ」のみを選択します。
  11. 「保存」をクリックします。
12.3.2.2 統合用のOIMプロパティの構成

OAAでは、すべてのユーザー操作についてREST APIを使用してOIMと通信します。そのため、統合がシームレスに行われるように、OAAとOIM間の接続を確立する必要があります。

<PolicyUrl>/policy/config/property/v1 REST APIを使用して、プロパティを構成します。

ノート:

この場合は、<PolicyUrl>から/oaa-policyを削除します。たとえば、https://<host>:<port>/oaa-policy/policy/config/property/v1ではなくhttps://<host>:<port>/policy/config/property/v1を使用します

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

構成プロパティRESTエンドポイントの詳細は、「構成プロパティRESTエンドポイント」を参照してください

たとえば、環境に応じて次のOIMプロパティを設定する必要があります:

curl --location -g --request PUT 'https://<PolicyUrl>/policy/config/property/v1' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic <Base64Encoded(<username>:<password>)>' \
--data '[
{
"name": "oaa.default.user.management.provider.enum.oim.url",
"value": "https://<OIM Managed Server>:<OIM Managed Port>"
},
{
"name": "oaa.default.user.management.provider.enum.oim.admin.username",
"value": "<Username of Oracle Identity Manager Administrator>"
},
{
"name": "oaa.default.user.management.provider.enum.oim.admin.password",
"value": "<Password of Oracle Identity Manager Administrator>"
},
{
"name": "oaa.default.user.management.provider.enum.oim.oaaDefaultGroup",
"value": "<Default Group Name of User>"
}
]'

ノート:

  • 前述のコマンドの<username>および<password>は、ポリシーおよびOAA関連ユーザーであるため、oaa-policyに関連している必要があります。ここで、<username>は<RELEASENAME>-oaaを参照し、<password>は<Base64Decoded(oaaapikey)>を参照します。たとえば、idmenv0025-oaa-policyをユーザー名として使用できます。
  • https://<host>:port>/policy/config/property/v1からPUTコールを行い、その後https://<host>:port>/oaa/runtime/config/property/v1?propertyName=oaa.default.user.management.provider.enum.oimからGETコールを行う場合、OAAサービス構成APIから詳細を取得するには数秒(通常は30秒)が必要です。
一部のオプションのOIMプロパティは、REST APIを使用して構成できます。

表12-1 オプションのOIMプロパティ

プロパティ 説明
oaa.default.user.management.provider.enum.oim.forgotPassword.queryParamNameForSuccessRedirectUrl=backUrl パラメータの値は、問合せパラメータ名です。これは、パスワードが正常に変更されるとユーザーがリダイレクトされるリダイレクトURLに対して指定する値です。

ノート: 次のように、backUrlの値がhttp://またはhttps://で始まることを確認する必要があります: https://<host>:<port>/oaa/usermgmt?ojr=forgotpasswordusername&backUrl=https://example.com/

oaa.default.user.management.provider.enum.oim.forgotPassword.successRedirectUrl これは、パスワードが正常に変更されるとユーザーがリダイレクトされるリダイレクトURLです。

ノート: successRedirectUrlプロパティがqueryParamNameForSuccessRedirectUrlプロパティとともに存在する場合は、successRedirectUrlが優先されます。

oaa.default.user.management.provider.enum.oim.forgotPassword.ui.configErrorMessage これは、OIMの構成に問題がある場合にスローされるエラーです。次のようになります: "There is an error, please check with your system administrator."
oaa.default.user.management.provider.enum.oim.forgotPassword.ui.heading これは、「パスワードを忘れた場合」画面に指定する見出しです。
oaa.default.user.management.provider.enum.oim.forgotPassword.ui.userNotFoundMessage これは、ユーザー・アカウントが見つからない場合にスローされるエラー・メッセージです。
oaa.default.user.management.provider.enum.oim.forgotPassword.ui.factorNotConfigured これは、構成されていないチャレンジ質問です。
12.3.2.3 OAMの「パスワードを忘れた場合」リンクの構成

パスワードをリセットするために「パスワードを忘れた場合」リンクがOIMではなくOAAを指すように、OAMとOIMの統合環境を構成する必要があります。

次のCURLコマンドを使用して、パスワードをリセットするためにOAAを指すようにOAMを更新します:
curl --user weblogic_idm:<password> -i -H "Content-Type:application/json" -H "Accept: */*" \
-X PUT -d '{"forgotPasswordURL":"https://<SpuiUrl>/oaa/usermgmt"}' \
http://<OAM host>:<OAM port>/oam/admin/api/v1/configurationService/forgotPassword

ノート:

<SpuiUrl>の検索方法の詳細は、「デプロイメントの詳細の出力」を参照してください

12.4 OAAと他のアプリケーションの統合

OAAは、REST APIを使用して他のアプリケーションと統合できます。

Oracle Advanced Authentication REST APIは、開発者がOracle Advanced Authenticationを使用できるアプリケーションを作成できるように、Oracle Advanced AuthenticationをRESTクライアントと統合する手段を提供します。たとえば、アプリケーション開発者は、REST APIを使用してOAA管理用のアプリケーションを作成したり、エンド・ユーザーがファクタ・プリファレンスを設定できるようにしたり、OAAによる第2ファクタ認証についてエンド・ユーザーにチャレンジして検証したりできます。

一般的なREST APIコールの例は、PostmanでのOracle Advanced Authentication REST APIの使用を参照してください。

REST APIの完全なリストについては、次を参照してください: