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統合のユーザー・インタラクション・フローの概要を示します。
- ユーザーは、ブラウザを介してOAM (Webgate)で保護されたリソースにアクセスします。
- ユーザーは認証のためにOAMにリダイレクトされます。
- OAMは、ログイン画面をユーザーに提示し、認証後に、マルチファクタ認証用のTAPトークンを使用してフローをOAAにリダイレクトします。
ノート:
OAAは、OAAAuthnPluginを使用し、OAAをTAPパートナとして登録することで、OAMと統合されます。 - OAAは、認証のファクタを持つ追加のチャレンジ・ページをユーザーに提示します。
- チャレンジ・フローが完了すると、ユーザーは成功または失敗のメッセージとともにOAMにリダイレクトされます。
- マルチファクタ認証が成功した場合、ユーザーにはリソースへのアクセス権が付与されます。
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と統合されています。
- ユーザーがデータベース・クライアント(sqlplus)でデータベースにログインし、ユーザー資格証明(ユーザー名/パスワード)が検証されます。
- 認証後、データベースは第2ファクタ認証のためにORAを呼び出します。
- ORAはAPIを呼び出してユーザー・チャレンジを決定し、ユーザーに対するチャレンジ・プロンプトを表示します:
- OAAは、チャレンジ・プロンプト情報を提供します。
- ユーザーにプロンプトが表示され、ORAから回答を求められます。
- ORAはOAAにリダイレクトし、OAAはORAから提供された回答を検証します。
- ORAは、データベース・ログイン・セッションを再開するために再度リダイレクトします。
- チャレンジ検証が成功した場合、ユーザーにはデータベースへのアクセス権が付与されます。
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)として渡します。
コンポーネント間の相互作用のフローは次のとおりです。
- ユーザーが、OAMで保護されたリソースにアクセスしようとします。
- OAM Webゲート(SSOエージェント)により、リクエストが捕捉され、ユーザーがOracle Access Managerログイン・ページにリダイレクトされます。
- ユーザーがOracle Access Managerログイン・ページで「パスワードを忘れた場合」リンクをクリックすると、ユーザーはOAAの「パスワードを忘れた場合」URLに送信されます。
- ユーザーがユーザー名を入力すると、認証のためにKBAにリダイレクトされ、パスワードのリセットに進みます。
- OAAは、ユーザーとの相互作用を通じてユーザーがパスワードをリセットできるようにします。
- ステップ1で試行されたアクセスの宛先のアプリケーションURLに移動します。資格証明を指定してログインします。
12.3.2 パスワードを忘れた場合の機能の構成
OIM REST APIを使用してOAAをOIMと統合すると、パスワードを忘れた場合の機能を構成できます。
- OAA管理コンソールの構成。「OIM統合のためのOAAの構成」を参照してください。
- OAAとOIMの間の接続の確立。「統合用のOIMプロパティの構成」を参照してください。
- OAMとOIMの統合の構成。「OAMの「パスワードを忘れた場合」リンクの構成」を参照してください。
12.3.2.1 OIM統合のためのOAAの構成
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秒)が必要です。
表12-1 オプションのOIMプロパティ
プロパティ | 説明 |
---|---|
oaa.default.user.management.provider.enum.oim.forgotPassword.queryParamNameForSuccessRedirectUrl=backUrl |
パラメータの値は、問合せパラメータ名です。これは、パスワードが正常に変更されるとユーザーがリダイレクトされるリダイレクトURLに対して指定する値です。
ノート: 次のように、 |
oaa.default.user.management.provider.enum.oim.forgotPassword.successRedirectUrl |
これは、パスワードが正常に変更されるとユーザーがリダイレクトされるリダイレクトURLです。
ノート: |
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 --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
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の使用を参照してください。