OAM IdPでのOAM認証前拡張ルールの使用
この記事では、次のユースケースを使用して、OAMとともにOAM認証拡張ルールをIdPとして使用する方法について説明します。
-
OAMはIdPとして機能します。
-
特定のスキームを使用して、すべてのユーザーにチャレンジします
-
そのスキームのOAM認証ポリシーは、ブラウザがデスクトップ・ブラウザかモバイル・ブラウザかを評価する認証前拡張ルールを持つように構成されます。
-
ユーザーがデスクトップ/ラップトップを使用している場合、構成された認証スキームが使用されます。
-
それ以外の場合、ユーザーがモバイル上にある場合は、モバイル・プラットフォームを対象とした別のスキームが使用されるため、モバイル・ログイン・ページを使用したユーザー・インタラクションが容易になります
OAMの認証前拡張ルールの詳細は、『OAM管理者ガイド』を参照してください。
OAM認証拡張ルール
Oracle Access Managerの11.1.2.2.0リリースでは、認証ポリシーの拡張ルールが導入されました。
-
認証前ルール: ユーザーが認証スキームでチャレンジされる前に、管理者がOAM認証操作の実行時に評価するポリシーを定義できるようにします。ルールはアクセスをブロックできます。
-
または、認証ポリシーで認証スキームとしてリストされているものとは異なる、セカンダリ認証スキームを使用してユーザーにチャレンジするようにOAMに指示します。
-
認証後ルール。認証スキームの実行後に評価されるポリシーを管理者が定義して、必要に応じてアクセスをブロックできるようにします。
OAM認証拡張ルールで評価できるランタイム・データは、リクエスト、セッションまたはユーザー・データのいずれかに基づきます。
-
リクエスト・データ: ユーザーのブラウザによって送信される情報と、リクエストされている保護されたリソースが含まれます。
-
ブラウザーデータ
-
HTTPヘッダー(User- Agent、Cookieなど)
-
場所(IPアドレス、プロキシアドレス...)
-
保護されたリソース
-
ホスト名
-
港
-
パス
-
問合せ文字列
-
ルールが認証後ルールの場合のセッション・データ
-
ルールが認証後ルールの場合のユーザー・データ
OAM管理者ガイドには、使用できる様々なプロパティがリストされています。
たとえば、次の事前認証ルールを使用して、スマートフォンの認証リクエストを別のOAM認証スキームにルーティングできます。
request.userAgent.lower().find('iphone') > 0 or
request.userAgent.lower().find('mobile') > 0 or
request.userAgent.lower().find('blackberry') > 0 or
request.userAgent.lower().find('android') > 0
次の例では、認証後ルールは、2つ以上のセッションを開いたユーザーのアクセスを拒否することを示します。
session.count > 2
ノート: 認証後に認証レスポンスとして評価される認証後ルールは、フェデレーションSSOフローでは評価されません。IdPフローには認証レスポンスは含まれないためです。ユーザーIDに基づいて認可を実装するには、この記事で説明されているように、トークン発行ポリシーを使用できます。
IdPを使用した拡張ルール
フェデレーション認証ポリシー
特定のOAM認証スキームを使用して実行時にユーザーにチャレンジするようにIdPを構成すると、中間OAM認証ポリシーが作成され、指定されたOAM認証スキームにバインドされます。
IdPフロー内で認証拡張ルールを適用するには、OAM管理モジュールによって管理される中間OAM認証ポリシーを変更する必要があります。
初期状態では、IdPによって実行時にユーザーを認証するために使用される、IAM Suiteアプリケーション・ドメインに存在する4つのフェデレーション認証ポリシーがあります。
-
LocalAuthnFederationBasicScheme -
LocalAuthnFederationBasicFAScheme -
LocalAuthnFederationLDAPScheme -
LocalAuthnFederationFAAuthScheme

また、フェデレーション認証ポリシーは、別の認証スキームを使用してフェデレーションSSO操作中にユーザーにチャレンジするように新しいIdPが構成されるたびに作成されます。
フェデレーション認証ポリシーの名前は、IdPで構成されている認証スキーム("LocalAuthnFederation" + Name_of_the_Authentication_Scheme)に基づいています。
事前認証ルールと事後認証ルールを定義する場合を除き、これらのポリシーを変更しないでください。
フェデレーション認証ポリシーの拡張ルールの定義
フェデレーション認証ポリシーの詳細ルールを構成するには、次のステップを実行します。
-
OAM管理コンソールに移動します:
http(s)://OAM-admin-host:OAM-adminport/oamconsole -
「アクセス・マネージャ」、「アプリケーション・ドメイン」にナビゲートします
-
「検索」をクリックし、「IAMスイート・アプリケーション・ドメイン」を選択します
-
「認証ポリシー」タブをクリックします
-
変更するフェデレーション認証ポリシーをクリックします
-
そのポリシーの「拡張ルール」タブをクリックします
-
認証前ポリシーの定義
-
「適用」をクリックします
フェデレーション認証メソッド
IdPを構成して、ユーザーのチャレンジに使用されるすべてのOAM認証スキームを、事前認証ルールで構成されている2番目の認証スキームであっても、フェデレーション認証メソッドにマップする必要があります。
これは、OAM WSLTコマンドのいずれかを使用して行います。
-
SPパートナ・プロファイルの
addSPPartnerProfileAuthnMethod -
SPパートナでの
addSPPartnerAuthnMethod
例
次の目的でOAMを構成します。
-
SAML 2.0プロトコルを介したリモートSPとの対話
-
デフォルトの認証スキーム・システム全体として
LDAPSchemeを使用します -
クライアントがスマートフォンである場合に
BasicSchemeを使用するように、認証前ルールを使用してLocalAuthnFederationLDAPScheme認証ポリシーを設定します -
LDAPSchemeをSAML 2.0フェデレーション認証メソッドurn:oasis:names:tc:SAML: 2.0: ac:classes:PasswordProtectedTransportにマップします -
BasicSchemeをSAML 2.0フェデレーション認証メソッドurn:oasis:names:tc:SAML: 2.0: ac:classes:PasswordProtectedTransportにマップします
IdPのデフォルト・スキーム
最初に、デフォルトの認証スキームを使用するようにIdPを構成します(デフォルト・スキームがデフォルト・スキームである場合でも)。
-
$IAM_ORACLE_HOME/common/bin/WLST.shを実行して、WLST環境を入力します。 -
WLS管理サーバー(
connect())に接続します。 -
ドメイン・ランタイム・ブランチ
domainRuntime()に移動します -
setIdPDefaultScheme()コマンドsetIdPDefaultScheme("LDAPScheme")を実行します -
WLST環境を終了します:
exit()
その結果、LocalAuthnFederationLDAPScheme OAM認証ポリシーを使用して、リモートSPパートナのユーザーにチャレンジします。
OAM拡張事前認証ルール
次に、スマートフォンのユーザーに対してBasicSchemeを使用するようにOAMに示す事前認証ルールを作成します。ルールはUserAgent HTTPヘッダーに基づきます。
-
OAM管理コンソールに移動します:
http(s)://OAM-admin-host:OAM-adminport/oamconsole -
「アクセス・マネージャ」、「アプリケーション・ドメイン」にナビゲートします
-
「検索」をクリックし、IAMスイート・アプリケーション・ドメインを選択します
-
「認証ポリシー」タブをクリックします
-
LocalAuthnFederationLDAPSchemeポリシーをクリックします -
そのポリシーの「拡張ルール」タブをクリックします
-
新しい認証前ルールの作成

次のアクションを実行します。
- 事前認証ルールの情報を入力します。
-
ルール名:
MobileUsers -
条件:
request.userAgent.lower().find('iphone') > 0、request.userAgent.lower().find('mobile') > 0、request.userAgent.lower().find('blackberry') > 0またはrequest.userAgent.lower().find('android') > 0 -
アクセスの拒否: 選択解除
-
認証スキームへの切替え:
BasicScheme
-
「追加」をクリックします
-
「適用」をクリックします

フェデレーション認証方法マッピング
最後に、デプロイメントで使用されているスキームをSAML 2.0フェデレーション認証メソッドにマップします(LDAPSchemeおよびBasicSchemeにマッピングがすでに存在する場合でも)。
この環境では、次の2つのスキームが使用されます。
-
LDAPScheme、IdPで構成 -
BasicScheme、認証前ルールで構成
両方のスキームをパートナ・プロファイル・レベルでurn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransportにマップします。
-
$IAM_ORACLE_HOME/common/bin/WLST.shを実行して、WLST環境を入力します。 -
WLS管理サーバー(
connect())に接続します。 -
ドメイン・ランタイム・ブランチ
domainRuntime()に移動します -
addSPPartnerProfileAuthnMethod()コマンドaddSPPartnerProfileAuthnMethod("saml20-sppartner-","urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport""LDAPScheme")addSPPartnerProfileAuthnMethod("saml20-sppartner-profile","urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport""BasicScheme")を実行します -
WLST環境を終了します:
exit()
テスト
デスクトップ/ラップトップ・ブラウザからフェデレーションSSOを実行する場合、IdPはLDAPSchemeとユーザーに次のログイン・ページでチャレンジします。

同じSPパートナを使用するフェデレーションSSO操作用のスマートフォン・ユーザーには、HTTP Basic認証チャレンジが表示されます。

その他の学習リソース
docs.oracle.com/learnで他のラボを探すか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerになります。
製品ドキュメントについては、Oracle Help Centerを参照してください。
Using OAM Pre Authentication Advanced Rules in OAM IdP
F61888-01
September 2022
Copyright © 2002, Oracle and/or its affiliates.