ADFS 2.0および3.0とOAMの統合: 前提条件
この記事では、SAML 2.0プロトコルを使用して、フェデレーションSSO用にOAMをADFS 2.0/3.0と統合する方法について説明します。インテグレーションには、次のものが含まれます。
-
前提条件(この記事)
-
ADFS 2.0/3.0 (IdP)およびOAM (SP)
-
ADFS 2.0/3.0はSP、OAMはIdP
SAML 2.0統合は、次の内容に基づいています。
-
NameID
フォーマットとして使用される電子メール・アドレス -
NameID
値には、ユーザーの電子メール・アドレスが含まれます -
HTTP POSTバインディングは、SAMLアサーションをSPに送信するために使用されます
-
ユーザーは両方のシステムに存在し、各ユーザーは同じEメール・アドレスを持つため、共通ユーザー属性として使用できます。
ADFS 2.0はWindows 2008 R2で使用でき、ADFS 3.0はWindows 2012 R2で使用できます。この記事では、ADFS 3.0のスクリーンショットを紹介していますが、文書化されたステップは両方のバージョンに適用されます。
前提条件
SAML 2.0プロトコルを使用してADFSと統合するには、HTTPS/SSLをエンドポイントとして使用するようにOAMを構成する必要があります。そうしないと、フェデレーション・トラストを確立する際に、ADFSはOAM SAML 2.0 Metadataを受け入れません。
ADFSをIdPとしてOAMをSPとして統合する場合は、次の点を考慮する必要があります。
-
デフォルトでは、ADFS IdPはAES-256を使用してSAMLアサーションをSPに送信するときにSAMLアサーションを暗号化し、デフォルトではOAMデプロイメントで使用されているJDKは、AES-256などの強力な暗号化を使用できません。したがって、次のようになります。
-
強力な暗号化用にJDKを構成する必要があります。
-
または、暗号化を無効にするようにADFS IdPを構成する必要があります。
-
-
ADFS IdPがHTTP Basic認証またはWindowsネイティブ認証による認証用に構成されている場合、ユーザーは次のようにログアウトできません。
- HTTP Basic認証資格証明は、ブラウザがクローズされていないかぎり、入力後はブラウザから削除できません
ノート: これは、HTTP Basic認証を使用してユーザーにチャレンジする他のIdPsに適用されます。
-
Windowsネイティブ認証を使用する場合、ブラウザは常にADFSにログインします。
-
デフォルトでは、ADFSではSHA-256を使用してメッセージが署名される必要があり、デフォルトではOAMではSHA-1が使用されます。
-
使用するADFSを構成するか、SHA-1を受け入れます。
-
または、署名にSHA-256を使用するようにOAMを構成します。
-
最後に、SAML 2.0用にOAMおよびADFSを統合する前に、2つのサーバーのメタデータをダウンロードしておく必要があります。
SSLの有効化
OAMのパブリック・エンドポイントでSSLを有効にする方法はいくつかあります。
-
ロード・バランサがOAMの前面にある場合、SSL/HTTPSをロード・バランサで有効化/構成できます。
-
OHSがOAMの前面にある場合、OHSはSSL用に構成されます。
-
OAMの前にコンポーネントがない場合、OAMが実行されているWLSサーバーをSSL/HTTPS用に構成できます。
コンポーネント(ロード・バランサ、OHSまたはWLS)がSSL用に構成されると、新しいエンドポイントをそのパブリックURLとして参照するようにOAM構成を更新する必要があります。
-
OAM管理コンソールに移動します:
http(s)://OAM-admin-host:OAM-adminport/oamconsole
-
「構成」、「Access Managerの設定」にナビゲートします。
-
OAMサーバー・ホストをパブリック・エンドポイントのホスト名に設定します
-
OAMサーバー・ポストをパブリック・エンドポイントのSSLポートに設定します
-
OAMサーバー・プロトコルをhttpsに設定します
-
「適用」をクリックします
図Access_Manager_Settings.jpgの説明
ノート: これらの変更を行った後、OAM SAML 2.0 Metadataを取得すると、新しいhttps URLが含まれます。
強力な暗号化
前述のように、ADFS IdPは、デフォルトでSAMLアサーションをSPに送信するときに、Javaによって強力な暗号とみなされるAES-256を使用して、SAMLアサーションを暗号化します(AES-128、AES-192、3DES...などの通常の強度とは異なります)。
法的エクスポートの理由から、JCEで強力な暗号を有効にしてJDKを出荷することはできません。 administrator/integrator/developer
は、Java Cryptography Extension (JCE) Unlimited Strength Jurisdictionポリシーをダウンロードしてインストールする必要があります。
JCE Unlimited Strength Jurisdictionポリシー・ファイルを更新して、AES-256などの強力な暗号化をサポートするには、次のステップを実行します。
-
OAMデプロイメントで使用される主要なJavaバージョンを確認します。
-
OAM Executeで使用されるJDKフォルダ(
$JDK_HOME/bin/java -version
)を見つけます。 -
メジャー・バージョンが出力されます(6または7)。
-
JCE Unlimited Strength Jurisdiction Policyをダウンロードします。
-
JDK 7を使用している場合:
http://www.oracle.com/technetwork/java/javas%20/downloads/index.htm
-
JDK 6を使用している場合:
http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archivedownloads-java-plat-419418.html
-
ダウンロードしたZIPファイルの内容を一時フォルダにunzipします。
-
解凍された
local_policy.jar
およびUS_export_policy.jar
ファイルをコピーし、次のJDKのディレクトリ(この操作により、そのフォルダに存在するlocal_policy.jar
およびUS_export_policy.jar
ファイルが上書きされます):$JDK_HOME/jre/lib/security
。 -
WLSドメインでWLSサーバーを再起動して変更を適用します。
SAMLアサーションをSPに送信するときに暗号化を無効にするようにADFSを構成するには、次のステップを実行します。
-
ADFSがデプロイされているマシンに移動します。
-
ADFS 2.0を使用する場合は、「スタート・メニュー」、「プログラム」、「管理ツール」、「Windows PowerShellモジュール」をクリックします。
-
ADFS 3.0を使用する場合は、「スタート」「メニュー」、「管理ツール」、「Active Directory Module for Windows PowerShell」の順にクリックします。
-
次のコマンドを実行します(
RP_NAME
を、ADFSでのパートナの作成に使用されるSP名に置き換えます):set-ADFSRelyingPartyTrust –TargetName“RP_NAME” –EncryptClaims $False
。
ADFSログアウト
SAML 2.0プロトコルは、現在のユーザーのセッションのフェデレーションSSOに関係する各フェデレーション・パートナがユーザーのサインアウトを通知するログアウト・プロファイルを定義します。これにより、様々なフェデレーション・パートナがSSOドメイン内のユーザーのセッションを終了できます。
ADFS IdPには、フェデレーションSSOの実行時にユーザーを認証する様々な方法が用意されています。
-
FORMベース認証の場所
-
サーバーでログイン・ページが表示されます。
-
ユーザーは資格証明を入力して送信します
-
-
HTTP Basic認証
-
サーバーがブラウザに401ステータス・コードを返す場所
-
ブラウザがユーザーの資格証明を収集します
-
ブラウザによってADFSサーバーに資格証明が表示されます。
-
ノート: ブラウザは資格証明を保持し、ブラウザがADFSにアクセスするたびに、ブラウザが閉じられるまでADFSサーバーに資格証明を提供します。
- ADFSがWindows環境でユーザー認証状態を利用する統合Windows認証。この場合、ユーザーはWindowsにすでにログインしているため、ユーザー操作なしで自動的に認証されます。
ユーザーの認証方法に応じて、SAML 2.0ログアウトの影響(または効果なし)を見てみましょう。
-
SPは、ADFS IdPを使用してフェデレーションSSO操作を開始します。
-
ADFS IdPでは、ユーザーを認証/識別する必要があります。
-
FORMベースの認証を使用する場合、ADFSはログイン・ページを表示し、ユーザーはその資格証明を入力します。
-
HTTP Basic認証が使用されている場合、ADFSは401レスポンス・コードを返し、ブラウザはユーザーから資格証明を収集してADFSに表示します。
-
統合Windows認証を使用する場合、ブラウザは、ADFSサーバーに提示されるWindowsドメイン・コントローラ/KDCからKerberos/NTLMSSPトークンを自動的に取得します。ユーザーによる相互作用はありません。
-
-
ユーザーがSAMLアサーションを使用してSPにリダイレクトされます
-
ユーザーがSPからSAML 2.0ログアウトを開始
-
SPがSAML 2.0ログアウトのADFS IdPにユーザーをリダイレクトします
-
ADFSは、ユーザーのブラウザからCookieをクリアします(ただし、以前使用されていた場合はキャッシュされないHTTP Basic認証資格証明)。
-
同じブラウザで、SPはADFS IdPを使用してフェデレーションSSO操作を開始します。
-
ADFS IdPでは、ユーザーを認証/識別する必要があります。
-
FORMベースの認証を使用する場合、ADFSはログイン・ページを表示し、ユーザーが資格証明を入力します。ユーザーはチャレンジされ、資格証明を指定する必要があります
-
HTTP Basic認証が使用されている場合、ADFSは401レスポンス・コードを返し、ブラウザは以前に収集された資格証明をキャッシュしてADFSに自動的に表示します。ユーザーによる相互作用はありません
-
統合Windows認証を使用する場合、ブラウザは、ADFSサーバーに提示されるWindowsドメイン・コントローラ/KDCからKerberos/NTLMSSPトークンを自動的に取得します。ユーザーによる相互作用はありません。
-
そのため、HTTP Basic認証またはIntegrated Windows認証がADFS 2.0 IdPで認証メカニズムとして使用されている場合、ログアウト後もユーザーはIdPに「ログイン」され、新しいフェデレーションSSOを実行すると、ユーザーがチャレンジされることはトリガーされず、フェデレーションSSOの実行後、ユーザーがSPで自動的に認証される結果になります。
重要なノート: ログアウトで表示される動作は、認証メカニズムとしてHTTP Basic認証を使用している他のIdPs (OAMなど)にも適用されます。
SAML 2.0 Metadata
ADFS 2.0/3.0サーバーからSAML 2.0 Metadataをダウンロードするには:
-
ブラウザを開きます。
-
ADFS 2.0/3.0 Metadataパブリッシュ・サービス(
https://adfs-host:adfs-port/FederationMetadata/2007-06/FederationMetadata.xml
)に移動します。 -
ブラウザの「名前を付けて保存」ボタンを使用して、Metadataをローカルに保存します。
OAMからSAML 2.0 Metadataをダウンロードするには:
-
ブラウザを開きます。
-
OAM Metadataパブリッシュ・サービス(
http(s)://oam-runtime-host:oam-runtimeport/oamfed/idp/metadata
またはhttp(s)://oam-runtime-host:oam-runtimeport/oamfed/sp/metadata
)に移動します。 -
ブラウザの「名前を付けて保存」ボタンを使用して、Metadataをローカルに保存します。
ノート: メタデータにはOAM URLが含まれているため、まずOAMでSSLを有効にしてからOAMメタデータをダウンロードしてください。
SHA-256とSHA-1
OAMとADFS間のフェデレーションを設定した後、次のことを行う必要があります。
-
ADFS 2.0を構成してSHA-1を使用/受け入れます。
-
または、署名にSHA-256を使用するようにOAMを構成します。
その他の学習リソース
docs.oracle.com/learnで他のラボを探すか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerになります。
製品ドキュメントについては、Oracle Help Centerを参照してください。
Integrating ADFS 2.0 and 3.0 with OAM Pre-requisite
F60452-01
September 2022
Copyright © 2022, Oracle and/or its affiliates.