IdPでの認証
この記事では、OAMがIdPとして機能する場合の認証、および特定のOAM認証スキームを使用してユーザーにチャレンジするようにサーバーを構成する方法について説明します。IdPとして機能するOAM 11gR1とOAM 11gが統合されている場合、OAMはWebGateを使用してユーザー認証をOAMに委任していました。
- OHSをインストールし、OAMの逆HTTPプロキシとして機能するように構成する必要がありました。
WebGateは、OHSにインストールしてOAMに登録する必要がありました。- OAM URLを保護するようにOAMを構成する必要がありました。
- 認証ポリシー
- 認可ポリシー
- OAMでのOAMログアウトURLの設定
- OAM 11g認証エンジンを使用するようにOAMを構成する必要がありました。
WebGateによって注入されたuserIDを含むHTTPヘッダーを入力します
- OAM 11gR2およびOAM 11gR2でOAMログアウトURLを設定します。2つのコンポーネントは緊密に統合されています。
- 2つの製品を統合するために初期設定は必要ありません。
- IdP認証にはWebゲート/OHSは必要ありません
- IdPは、すべてのOAM認証スキームを利用できます。
ノート: 構成の高度な性質を考慮すると、OAM認証設定はOAM WLSTコマンドを介してのみ管理できます。
概要
OAMの11.1.2.2.0以降のリリースでは、OAM J2EE WebアプリケーションとOAM J2EE Webアプリケーションは、スタンドアロンWLSインスタンスにデプロイされているのと同じOAM J2EE EARアプリケーションに含まれています。このデプロイメント・アプローチにより、2つのモジュールは受信ユーザーのHTTPリクエストをOAMからOAMに内部的に転送でき、逆も同様です。これにより、IdPアプリケーションは、チャレンジしてユーザーを識別するローカルOAM認証操作をトリガーできます。実行時に、フェデレーション操作のIdPで認証が必要な場合、IdPは次のことを行います。
- ユーザーをOAMに内部的に転送します。
- ユーザー認証に使用する認証スキームをOAMに示します。
- OAMは、ユーザーにチャレンジが必要かどうかを判断します。
- ユーザーがまだ認証されていない場合
- ユーザーが認証されたが、セッションがタイムアウトした場合
- ユーザーが認証されているが、元の認証の認証スキーム・レベルが、IdPによってリクエストされた認証スキームのレベルより低い場合
- ユーザーがチャレンジする必要がある場合、OAMはIdPで指定された認証スキームのルールに基づいてチャレンジを実行します。OAMは、ユーザーを(オプションで)認証し、セッションを作成すると、アイデンティティおよびセッション情報とともにユーザーをIdPに内部的に転送します。IdPは、実行していたフェデレーション操作を再開します。デフォルトでは、IdPは、
LDAPSchemeをOAM認証スキームとして使用してユーザーにチャレンジして識別するように構成されています。これは、IdPのデフォルトのグローバル・スキームとして設定されています。管理者は次のことができます。- ユーザーの認証に使用するグローバルなデフォルトのOAM認証スキームを設定します。
- SPパートナ・プロファイルで、このSPパートナ・プロファイルにバインドされたSPパートナのユーザーを認証するために使用するOAM認証スキームを設定します。定義されている場合、この設定はグローバルなデフォルトのOAM認証スキームより優先されます。
- SPパートナで、このSPパートナのユーザーの認証に使用されるデフォルトのOAM認証スキームを設定します。定義されている場合、この設定は、このSPパートナが参照するSPパートナ・プロファイルで定義されたOAM認証スキームより優先されるか、グローバル・デフォルトOAM認証スキームより優先されます
設定のテスト
次のテスト環境を使用します。
- IdP
AcmeSPという1つのSAML 2.0 SPパートナ- 別のSAML 2.0 SPパートナ(
HRsp)
複数のテスト・ケースを実行します。
- グローバル・デフォルト認証:
AcmeSPとHRspの両方がデフォルトのSAML 2.0 SPパートナ・プロファイルを使用します- SPパートナ・レベルで認証スキームが設定されません
- SPパートナ・プロファイル・レベルで認証スキームが設定されません
- グローバル・デフォルト認証はそのまま使用され(
OOTB:LDAPScheme)、フェデレーションSSO操作が実行されます - グローバル・デフォルト認証は
BasicScheme(HTTP基本認証)に設定され、フェデレーションSSO操作が実行されます - SPパートナ・プロファイル認証:
AcmeSPは、デフォルトのSAML 2.0 SPパートナ・プロファイルを使用しますHRspは別のSAML 2.0 SPパートナ・プロファイルを使用します- SPパートナ・レベルで認証スキームが設定されません
- デフォルトのSAML 2.0 SPパートナ・プロファイル・レベルでは認証スキームが設定されませんが、新しいSAML 2.0 SPパートナ・プロファイルは
BasicSchemeを使用するように構成されます - グローバル・デフォルト認証は
LDAPSchemeに設定されます - フェデレーションSSOは
AcmeSPで実行されます - フェデレーションSSOは
HRspで実行されます - SPパートナ認証:
AcmeSPとHRspの両方がデフォルトのSAML 2.0 SPパートナ・プロファイルを使用します- デフォルトのSAML 2.0 SPパートナ・プロファイルの認証スキームは、
BasicSchemeに設定されます AcmeSPの認証スキームはLDAPSchemeに設定されます- グローバル・デフォルト認証は
LDAPSchemeに設定されます - フェデレーションSSOは
AcmeSPで実行されます - フェデレーションSSOは
HRspで実行されます - 異なる認証レベルを介したステップアップ認証
AcmeSPとHRspの両方がデフォルトのSAML 2.0 SPパートナ・プロファイルを使用します- デフォルトのSAML 2.0 SPパートナ・プロファイルの認証スキームは、
BasicSchemeに設定されます AcmeSPの認証スキームはLDAPSchemeに設定されます- グローバル・デフォルト認証は
LDAPSchemeに設定されます LDAPSchemeは、そのレベルが3に設定されるように構成されますBasicSchemeは、そのレベルを2に設定したままになります
テスト#1:
- フェデレーションSSOは
AcmeSPで実行されます - ユーザーは
LDAPSchemeを介してチャレンジされます - 同じブラウザで、フェデレーションSSOが
HRspで実行されます - ユーザーはチャレンジされません
テスト#2:
- フェデレーションSSOは
HRspで実行されます - ユーザーは
BasicSchemeを介してチャレンジされます - 同じブラウザで、フェデレーションSSOが
AcmeSPで実行されます - ユーザーは、
LDAPSchemeを介してチャレンジされます。次のセクションは、それぞれテスト・ケースを記述し、各セクションが前のセクションが停止した場所から開始して、時系列順になります。
ノート: IdPでHTTP Basic認証を使用する場合は、OAMが実行されているWebLogicドメインを構成して、セキュアでないリソースのHTTP Basic認証を検証しないようにする必要があります。
HTTP Basic認証
デフォルトでは、ブラウザがHTTP Basic認証の資格証明をOAMに送信する場合、WLSサーバーは、OAMにリクエストを処理させる前にそれらを検証しようとします。これにより、特にOAMで作成された各アイデンティティ・ストアのWLS LDAPオーセンティケータでWLSドメインが構成されていなかった場合に、認証が失敗する可能性があります。
ノート: WLSドメインが、OAMで作成された各アイデンティティ・ストアに対してWLS LDAPオーセンティケータを持つように正しく構成されていても、2つの認証操作が発生します。1つはWLS、もう1つはOAMがOAMセッションを作成するために必要な認証操作です。
OAMが実行されているWLSドメインの[保護されていないアプリケーション]{.underline}に送信されたHTTP Basic認証資格証明の自動検証を無効にできます。詳細は、『Oracle Fusion Middleware Oracle WebLogic Serverセキュリティ・プログラミング』ガイドの保護されていないリソースによるBASIC認証に関する項を参照してください。WLSドメインで[保護されていないアプリケーション]{.underline}に送信されたHTTP Basic認証資格証明の自動検証を無効にするには、次のステップを実行します。
$IAM_ORACLE_HOME/common/bin/WLST.shを実行して、WLST環境を入力します。- WLS管理サーバー(
connect())に接続します。 - 編集セッションを開始します:
edit()startEdit() - SecurityConfigurationノード
cd('SecurityConfiguration')にナビゲートします。 - ドメインに移動します(DOMAIN_NAMEは、OAMがインストールされているWLSドメインの名前に置き換えます):
cd('DOMAIN_NAME') - 保護されていないアプリケーションに送信されるHTTP Basic認証資格証明のトマティック検証を無効にするには、
EnforceValidBasicAuthCredentials設定をfalseに設定します:set('EnforceValidBasicAuthCredentials', 'false') - 変更を保存します:
save()activate() - 変更を有効にするためにWLSドメイン内のサーバーを再起動します
グローバル・デフォルト認証
最初のステップは、SAML 2.0 SSOのIdPでSPパートナを作成して構成することです。これを設定すると、IdPのSPパートナーのリストは次のようになります。

IdPを使用してAcmeSPまたはHRspのいずれかを含むフェデレーションSSOを実行すると、OAMサーバーは、LDAPScheme OOTBとして構成されたデフォルトのグローバル認証スキームを使用してユーザーにチャレンジします。

デフォルトのグローバル認証スキームをBasicSchemeに切り替えるには、OAM WLSTのsetIdPDefaultScheme()コマンドを使用して、デフォルトとして使用するスキームを指定します。
-
\$IAM_ORACLE_HOME/common/bin/WLST.shを実行して、WLST環境を入力します。 -
WLS管理サーバー(
connect())に接続します。 -
ドメイン・ランタイム・ブランチ
domainRuntime()に移動します -
setIdPDefaultScheme()コマンドsetIdPDefaultScheme("BasicScheme")を実行します -
WLST環境を終了します。
exit()IdPを使用してAcmeSPまたはHRspのいずれかを含むフェデレーションSSOを実行すると、OAMサーバーはLDAPSchemeではなくOAMBasicSchemeを使用してユーザーにチャレンジします。
デフォルトのグローバル認証スキームをLDAPSchemeに切り替えるには、次の操作を実行します:
\$IAM_ORACLE_HOME/common/bin/WLST.shを実行して、WLST環境を入力します。- WLS管理サーバー(
connect())に接続します。 - ドメイン・ランタイム・ブランチ
domainRuntime()に移動します setIdPDefaultScheme()コマンドsetIdPDefaultScheme("LDAPScheme")を実行します- WLST環境を終了します:
exit()
IdPを使用してAcmeSPまたはHRspのいずれかを含むフェデレーションSSOを実行すると、OAMサーバーはLDAPSchemeを介してユーザーにチャレンジします。
SPパートナ・プロファイル認証
前のテスト・ケースから、設定は次のとおりです。
AcmeSPおよびHRspはIdPに存在します- IdPのデフォルトのグローバル認証スキームは
LDAPSchemeです AcmeSPとHRspの両方がデフォルトのSAML 2.0 SPパートナ・プロファイルを使用しています
新しいSPパートナ・プロファイルを使用するようにHRspを構成するには、次のコマンドを実行します。
\$IAM_ORACLE_HOME/common/bin/WLST.shを実行して、WLST環境を入力します。- WLS管理サーバー(
connect())に接続します。 - ドメイン・ランタイム・ブランチ
domainRuntime()に移動します - デフォルトのSAML 2.0 SPパートナ・プロファイル(
createFedPartnerProfileFrom("new-saml20-pp", "saml20-SP-partner-profile"))から新しいSPパートナ・プロファイルを作成します。 - HRspパートナを新規SPパートナ・プロファイルにバインドします:
setFedPartnerProfile("HRsp", "SP", "newsaml20-pp") - WLST環境を終了します:
exit()
この時点で、IdPを使用してAcmeSPまたはHRspのいずれかを含むフェデレーションSSOを実行すると、OAMサーバーはLDAPSchemeを介してユーザーにチャレンジします。新しいSPパートナ・プロファイルをデフォルトの認証スキームとしてBasicSchemeを使用するように構成するには、OAM WLSTのsetSPPartnerProfileDefaultScheme()コマンドを使用します。
\$IAM_ORACLE_HOME/common/bin/WLST.shを実行して、WLST環境を入力します。- WLS管理サーバー(
connect())に接続します。 - ドメイン・ランタイム・ブランチ
domainRuntime()に移動します - 新しいSPパートナ・プロファイルのデフォルトの認証スキームを
BasicSchemeに設定します:setSPPartnerProfileDefaultScheme("newsaml20-pp", "BasicScheme") - WLST環境を終了します:
exit()
次を使用してフェデレーションSSOを実行します。
AcmeSPを指定すると、IdPはLDAPSchemeを介してユーザーにチャレンジします。HRspを指定すると、IdPはBasicSchemeを介してユーザーにチャレンジします。
HRspをデフォルトのSPパートナ・プロファイルに戻し、このテストで作成したSPパートナ・プロファイルを削除します。
\$IAM_ORACLE_HOME/common/bin/WLST.shを実行して、WLST環境を入力します。- WLS管理サーバー(
connect())に接続します。 - ドメイン・ランタイム・ブランチ
domainRuntime()に移動します - HRspパートナをデフォルトのSPパートナ・プロファイルにバインドします:
setFedPartnerProfile("HRsp", "SP", "saml20-SP-partner-profile") - 新しいSPパートナ・プロファイルを削除します:
deleteFedPartnerProfile("new-saml20-pp") - WLST環境を終了します:
exit()
これらのコマンドを実行した後、IdPを使用してAcmeSPまたはHRspのいずれかを含むフェデレーションSSOを実行すると、OAMサーバーはLDAPSchemeを介してユーザーにチャレンジします。
SPパートナ認証
前のテスト・ケースから、設定は次のとおりです。
AcmeSPおよびHRspはIdPに存在します- IdPのデフォルトのグローバル認証スキームは
LDAPSchemeです AcmeSPとHRspの両方がデフォルトのSAML 2.0 SPパートナ・プロファイルを使用しています
BasicSchemeを認証スキームとして使用するようにデフォルトのSAML 2.0 SPパートナ・プロファイルを構成するには、次の操作を実行します。
\$IAM_ORACLE_HOME/common/bin/WLST.shを実行して、WLST環境を入力します。- WLS管理サーバー(
connect())に接続します。 - ドメイン・ランタイム・ブランチ
domainRuntime()に移動します - 新しいSPパートナ・プロファイルのデフォルトの認証スキームを
BasicSchemeに設定します:setSPPartnerProfileDefaultScheme("saml20-sppartner-profile", "BasicScheme") - WLST環境を終了します:
exit()
この時点で、IdPを使用してAcmeSPまたはHRspのいずれかを含むフェデレーションSSOを実行すると、OAMサーバーはBasicSchemeを介してユーザーにチャレンジします。デフォルトの認証スキームとしてLDAPSchemeを使用するようにAcmeSP SPパートナを構成するには、OAM WLSTのsetSPPartnerDefaultScheme()コマンドを使用します。
\$IAM_ORACLE_HOME/common/bin/WLST.shを実行して、WLST環境を入力します。- WLS管理サーバー(
connect())に接続します。 - ドメイン・ランタイム・ブランチ
domainRuntime()に移動します AcmeSPSPパートナのデフォルトの認証スキームをLDAPSchemeに設定します:setSPPartnerDefaultScheme("AcmeSP", "LDAPScheme")- WLST環境を終了します:
exit()
次を使用してフェデレーションSSOを実行します。
AcmeSPを指定すると、IdPはLDAPSchemeを介してユーザーにチャレンジします。HRspを指定すると、IdPはBasicSchemeを介してユーザーにチャレンジします。
異なる認証レベルを介した認証のステップアップ
前のテスト・ケースから、設定は次のとおりです。
AcmeSPおよびHRspはIdPに存在します- IdPのデフォルトのグローバル認証スキームは
LDAPSchemeです AcmeSPとHRspの両方がデフォルトのSAML 2.0 SPパートナ・プロファイルを使用しています- デフォルトのSAML 2.0 SPパートナ・プロファイルは、デフォルトの認証スキームを
BasicSchemeに設定して構成されます AcmeSPSPパートナは、デフォルトの認証スキームをLDAPSchemeに設定して構成されます。この時点で、次のものを使用してフェデレーションSSOを実行します。AcmeSPを指定すると、IdPはLDAPSchemeを介してユーザーにチャレンジします。HRspを指定すると、IdPはBasicSchemeを介してユーザーにチャレンジします。
OOTB: LDAPSchemeとBasicSchemeの両方の認証レベルが2に設定されます。LDAPSchemeの認証レベルを3に変更するには、次の操作を実行します。
-
OAM管理コンソールに移動します:
http(s)://OAM-admin-host:OAM-adminport/oamconsole -
「アクセス・マネージャ」、「認証スキーム」にナビゲートします
-
「検索」をクリックして
LDAPSchemeを選択します。 -
認証レベルを3に設定する
-
「適用」をクリックします

これらの変更後、ユーザーがすでにOAMで認証されていて、ユーザーがIdPを使用してフェデレーションSSO操作を実行した場合、OAMは、最初の場所でユーザーを認証するために使用されたスキームが、フェデレーションSSOが実行されている現在のSPパートナに対して構成されたスキームよりも高いレベルまたは等しいレベルを持つことを確認します。例:
- ユーザーが
LDAPSchemeを介して最初に認証された場合、2番目のフェデレーションSSO操作が、その2番目の低い方のデフォルトの認証スキームでBasicSchemeで実行されると、再チャレンジされません。 - フェデレーションSSOは
AcmeSPパートナで開始されます - ユーザーは、
LDAPSchemeを介してOAMによってチャレンジされます。 - IdPはアサーションを発行し、ユーザーを
AcmeSPにリダイレクトします - 同じブラウザで、フェデレーションSSOが
HRspで開始されます - OAMはユーザーにチャレンジしません。ユーザーがすでに認証されているため、セッションはタイムアウトせず、セッションの作成に使用されたスキームのレベル(
LDAPSchemeの場合は3)がこの現在のフェデレーションSSO (BasicSchemeの場合は2)に構成されているデフォルト・スキーム以上です - IdPはアサーションを発行し、ユーザーを
HRspにリダイレクトします - ユーザーが最初に
BasicSchemeを介して認証された場合、2番目のフェデレーションSSO操作が、その2番目の低い方のデフォルトの認証スキーム(LDAPScheme)で実行されると、再チャレンジされます。 - フェデレーションSSOは
HRspパートナで開始されます - ユーザーは、
BasicSchemeを介してOAMによってチャレンジされます。 - IdPはアサーションを発行し、ユーザーを
HRspにリダイレクトします - 同じブラウザで、フェデレーションSSOが
AcmeSPで開始されます - OAMはユーザーにチャレンジします。ユーザーがすでに認証されているため、セッションはセッションの作成に使用されたスキームのレベルをタイムアウトしていません(
BasicSchemeの場合は2でした)が、この現在のフェデレーションSSOに構成されているデフォルト・スキームより低くなっています(LDAPSchemeの場合は3です)。 - IdPはアサーションを発行し、ユーザーを
AcmeSPにリダイレクトします
その他の学習リソース
docs.oracle.com/learnで他のラボを探すか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerになります。
製品ドキュメントについては、Oracle Help Centerを参照してください。
Authentication in OAM and IdP
F59731-01
September 2022
Copyright © 2022, Oracle and/or its affiliates.