OAMおよびSPでのSAML 2.0 IdPパートナの作成

この記事では、次のような、SAML 2.0 SPとして機能するOAMとリモートSAML 2.0 IdPパートナ間のフェデレーション契約を設定する方法について説明します。

この記事では、UIを介して、またはOAM WLSTコマンドを使用して、前述のタスクを実行する方法について説明します。

フェデレーションの信頼の構築

フェデレーション・サーバー間でフェデレーションSSO操作を実行する前に、フェデレーション・パートナ間の信頼を確立することが前提条件です。

信頼の確立には、使用されるプロトコルがPKI X.509証明書に依存してメッセージ交換を保護する場合や、フェデレーション・プロトコルを実装するサービスの場所/URLに依存する場合、証明書情報の交換が含まれます。

アサーション・マッピング

OAMがサービス・プロバイダとして機能し、ユーザー認証をリモートIdPに委任する場合、管理者は、ユーザーがSAMLアサーションでどのように識別されるか(NameIDに格納されているユーザー情報)をIdPの管理者に同意する必要があります。またはSAML属性として、または複数のSAML属性として、NameIDまたはSAML属性(あるいはその両方)を使用して、受信SAMLアサーションをLDAPユーザー・レコードにマップするようにOAM/SPを構成する必要があります。

OAMでは、OAMセッションを作成するために、受信アサーションをLDAPユーザー・レコードにマップする必要があります。

OAM/SPは、次の方法で受信SAMLアサーションをLDAPユーザー・レコードにマップできます。

OAM/SPには、アサーションをLDAPユーザー・レコードにマップする際に、特定のアイデンティティ・ストアおよびユーザー検索ベースDNを使用する機能も用意されています。これはオプションであり、次のようになります。

Metadataを使用したSAML 2.0

OAM管理コンソール

Metadataを使用して新しいSAML 2.0 IdPパートナを作成するには、次のステップを実行します。

  1. OAM管理コンソールに移動します: http(s)://OAM-admin-host:OAM-adminport/oamconsole

  2. 「アイデンティティ・フェデレーション」、「サービス・プロバイダ管理」に移動します

  3. 「アイデンティティ・プロバイダ・パートナの作成」ボタンをクリックします

  4. 「Create」画面で:

    1. パートナの名前を入力します

    2. IdPパートナが指定されていない場合、フェデレーションSSO操作の開始時にこのパートナをデフォルトでIdPとして使用するかどうかを確認します。

    3. プロトコルとしてSAML 2.0を選択します。

    4. 「Metadataのロード」をクリックし、IdPアサーション・マッピング・セクションのSAML 2.0 Metadataファイルをアップロードします:

      1. オプションとして、使用するOAMアイデンティティ・ストアを設定します。ノート: この例では、デフォルトのOAMアイデンティティ・ストアを使用するためにフィールドを空白のままにします

      2. オプションでユーザー検索ベースDNを設定します ノート: この例では、アイデンティティ・ストアで構成されたユーザー検索ベースDNを使用するには、フィールドを空白のままにします

    5. マッピングの実行方法を選択します ノート: この例では、NameIDを介してアサーションをLDAPメール属性にマップしています

    6. 受信SAMLアサーション内の属性の名前をローカル名にマップするために使用する属性プロファイルを選択します。

  5. 「保存」をクリックします

図Create_IDP_Partner.jpgの説明

パートナが作成されると、「パートナの編集」画面が表示されます。

WLST

OAM WLSTコマンドを使用して、Metadataで新しいSAML 2.0 IdPパートナを作成するには、次のステップを実行します。

  1. $IAM_ORACLE_HOME/common/bin/WLST.shを実行して、WLST環境を入力します。

  2. WLS管理サーバー(connect())に接続します。

  3. ドメイン・ランタイム・ブランチdomainRuntime()に移動します

  4. OAMでacmeIdPと呼ばれるMetadataを持つSAML 2.0 IdPパートナを作成します: addSAML20IdPFederationPartner("acmeIdP", "/tmp/acme-idp-metadata-saml20.xml")

  5. デフォルトでは、新しいIdPパートナは次のように構成されます。

    1. デフォルトのOAMアイデンティティ・ストアを使用します。

    2. アイデンティティ・ストアのユーザー検索ベースDNを使用します(オーバーライドされません)

    3. LDAPメール属性と一致するNameIDを使用してSAMLアサーションをマップします

    4. 認証リクエストのNameIDフォーマットを「なし」に設定します

    5. HTTP- POSTをデフォルトSSOレスポンス・バインディングとして使用

    6. デフォルトのアイデンティティ・プロバイダ属性プロファイルの使用

  6. WLST環境を終了します: exit()

Metadataを使用しないSAML 2.0

OAM管理コンソール

Metadataを使用せずに新しいSAML 2.0 IdPパートナを作成するには、次のステップを実行します(最初に、証明書、IdP識別子およびURLなど、IdPパートナのすべてのデータがあることを確認します)。

  1. OAM管理コンソールに移動します: http(s)://OAM-admin-host:OAM-adminport/oamconsole

  2. 「アイデンティティ・フェデレーション」、「サービス・プロバイダ管理」に移動します

  3. 「アイデンティティ・プロバイダ・パートナの作成」ボタンをクリックします

  4. 「Create」画面で:

    1. パートナの名前を入力します

    2. IdPパートナが指定されていない場合、フェデレーションSSO操作の開始時にこのパートナをデフォルトでIdPとして使用するかどうかを確認します。

    3. プロトコルとしてSAML 2.0を選択します。

    4. 「Enter Manually」を選択します。

    5. IdPパートナのIssuer / ProviderIDを入力します

    6. SuccinctIDが空白のままの場合、OAM/SPはSHA-1アルゴリズムを使用してプロバイダIDをダイジェストして計算します(空白のままにする必要があります)。

    7. そのIdPパートナのSSO Service URLを入力します。これは、ユーザーがSAML AuthnRequestを持つOAM/SPからIdPにリダイレクトされるURLです。

    8. パートナがSAML 2.0アーティファクト・プロトコルをサポートしている場合は、SSOアーティファクト操作中にOAM/SPが接続してSAMLアサーションを取得するSOAP Service URLを入力します

    9. パートナがSAML 2.0ログアウト・プロトコルをサポートしている場合:

      1. パートナがSAML 2.0 LogoutRequestメッセージを処理できるSAML 2.0ログアウト・リクエストURLを入力します

      2. パートナがSAML 2.0 LogoutResponseメッセージを処理できるSAML 2.0ログアウト・レスポンスURLを入力します

    10. IdP署名証明書ファイルをアップロードします。

      1. PEM形式(ファイルに最初の行として含まれる場合- - BEGIN CERTIFICATE- - 、Base64エンコード形式の証明書、最後に- - END CERTIFICATE- - )

      2. 証明書がバイナリエンコーディングで格納されているDER形式

    11. IdPに暗号化証明書がある場合は、ファイルをアップロードします:

      1. PEM形式(ファイルに最初の行として含まれる場合- - BEGIN CERTIFICATE- - 、Base64エンコード形式の証明書、最後に- - END CERTIFICATE- - )

      2. 証明書がバイナリエンコーディングで格納されているDER形式

    12. 「アサーション・マッピング」セクション:

      1. オプションとして、使用するOAMアイデンティティ・ストアを設定します。ノート: この例では、デフォルトのOAMアイデンティティ・ストアを使用するためにフィールドを空白のままにします

      2. オプションでユーザー検索ベースDNを設定します ノート: この例では、アイデンティティ・ストアで構成されたユーザー検索ベースDNを使用するには、フィールドを空白のままにします

    13. マッピングの実行方法を選択します ノート: この例では、NameIDを介してアサーションをLDAPメール属性にマップしています

    14. 受信SAMLアサーション内の属性の名前をローカル名にマップするために使用する属性プロファイルを選択します。

  5. 「保存」をクリックします

図Create_IDP_Provider_Partner.jpgの説明

パートナが作成されると、「パートナの編集」画面が表示されます。

WLST

OAM WLSTコマンドを使用して、Metadataを使用せずに新しいSAML 2.0 IdPパートナを作成するには、次のステップを実行します(最初に、証明書、IdP識別子、URLなど、IdPパートナのすべてのデータがあることを確認します)。

  1. $IAM_ORACLE_HOME/common/bin/WLST.shを実行して、WLST環境を入力します。

  2. WLS管理サーバー(connect())に接続します。

  3. ドメイン・ランタイム・ブランチdomainRuntime()に移動します

  4. OAMでacmeIdPをコールするMetadataなしでSAML 2.0 IdPパートナを作成します: addSAML20IdPFederationPartnerWithoutMetadata("acmeIdP","https://acme.com/idp", "https://acme.com/saml20/sso", "https://acme.com/saml20/soap")

  5. デフォルトでは、新しいSPパートナーは次のように構成されます。

    1. デフォルトのOAMアイデンティティ・ストアを使用します。

    2. アイデンティティ・ストアのユーザー検索ベースDNを使用します(オーバーライドされません)

    3. LDAPメール属性と一致するNameIDを使用してSAMLアサーションをマップします

    4. 認証リクエストのNameIDフォーマットを「なし」に設定します

    5. HTTP- POSTをデフォルトSSOレスポンス・バインディングとして使用

    6. デフォルトのアイデンティティ・プロバイダ属性プロファイルの使用

    7. このIdPパートナの証明書はアップロードされていません

  6. WLST環境を終了します: exit()

WLSTを使用したフェデレーション設定の変更

この項では、OAM WLSTコマンドを使用して共通SPパートナ設定を変更する方法について説明します。

すでにWLST環境にあり、次を使用して接続しているとします。

  1. $IAM_ORACLE_HOME/common/bin/WLST.shを実行して、WLST環境を入力します。

  2. WLS管理サーバー(connect())に接続します。

  3. ドメイン・ランタイム・ブランチdomainRuntime()に移動します

SAMLアサーション・マッピング設定

SAML IdPパートナのマッピング設定を構成するには:

  1. 次のコマンドを使用して、1を介してアサーションをマップします: setIdPPartnerMappingNameID(partnerName, userstoreAttr)

    1. partnerNameは、IdPパートナの作成に使用された名前です

    2. userstoreAttr: NameID値と一致するLDAPユーザー属性。

  2. SAML属性を介してアサーションをマップするには、次のコマンドを使用します: setIdPPartnerMappingAttribute(partnerName、 assertionAttr、 userstoreAttr)

    1. partnerNameは、IdPパートナの作成に使用された名前です

    2. assertionAttr: SAML属性の名前。

    3. userstoreAttr: SAML属性値と一致するLDAPユーザー属性。

  3. LDAP問合せを介してアサーションをマップするには、次のコマンドを使用します: setIdPPartnerMappingAttributeQuery(partnerName, attrQuery)

    1. partnerNameは、IdPパートナの作成に使用された名前です

    2. attrQuery: 使用するLDAP問合せ((&(givenname=%firstname%) (sn=%lastname%))など)。

OAMアイデンティティ・ストアとユーザー検索のベースDN

受信SAMLアサーションのマッピング時に特定のOAMアイデンティティ・ストアまたは特定のユーザー検索ベースDN(あるいはその両方)を使用するようにOAM/SPを構成するには、次のコマンドsetPartnerIDStoreAndBaseDN()を実行します。

SAML 2.0ログアウト

SAML 2.0ログアウトを有効にし、IdPパートナSAML 2.0ログアウトURLを指定するには、次を実行します。

IdPパートナのSAML 2.0ログアウトを無効にするには、次を実行します。

SAML証明書

署名証明書および暗号化証明書の管理に使用できる様々なWLSTコマンドがあります。

IdPパートナー AMribute ProQl

特定のIdPパートナのIdPパートナ属性プロファイルを構成するには、次のコマンドを使用します。

特定のIdPパートナ属性プロファイルを使用するようにIdPパートナを構成するには、次のコマンドを実行します。

SAML SSOリクエストとレスポンスのバインディング

特定のIdPパートナのSAMLバインディングを構成するには、次のコマンドを使用します。

IdPパートナを構成するには、configureSAMLBinding(partnerName, partnerType, binding, ssoResponseBinding="httppost")を実行します

次のコマンドを使用して、SAML 2.0 Metadataを使用せずにIdPパートナを追加できます。

addSAML20IdPFederationPartnerWithoutMetadata("acmeIdP","https://acme.com/idp", "https://acme.com/saml2 /sso", "https://acme.com/saml20/soap" configureSAML20Logout("acmeIdP", "idp", "true","https://acme.com/saml20/logoutReq" "https://acme.com/saml20/logoutResp" setFederationPartnerSigningCert("acmeIdP", "idp", "/tmp/acme-idp-cert.pem") setPartnerIDStoreAndBaseDN("acmeIdP", "idp", "oid") setIdPPartnerMappingNameID("acmeIdP", "mail")

次のコマンドを使用して、SAML 2.0 MetadataでIdPパートナを追加できます(この例では、デフォルトのOAMアイデンティティ・スタイルを使用しています)。

addSAML20IdPFederationPartner("acmeIdP", "/tmp/acme-idp-metadata-saml20.xml" setIdPPartnerMappingNameID("acmeIdP", "mail")

その他の学習リソース

docs.oracle.com/learnで他のラボを探すか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerになります。

製品ドキュメントについては、Oracle Help Centerを参照してください。