OAMおよびSPでのSAML 1.1およびOpenID 2.0 IdPパートナの作成
この記事では、SAML 1.1またはOpenID 2.0プロトコルを介して、SPとして機能するOAMとリモートのIdPパートナ間のフェデレーション契約を設定する方法について説明します。
- リモートSAML 1.1 IdPパートナの設定
- リモートOpenID 2.0 IdPパートナの設定
この記事では、UIを介して、またはOAM WLSTコマンドを使用して、前述のタスクを実行する方法について説明します。
SAML 1.1
OAM管理コンソール
新しいSAML 1.1 IdPパートナを作成するには、次のステップを実行します(最初に、証明書、IdP識別子およびURLなど、IdPパートナのすべてのデータがあることを確認します)。
- OAM管理コンソール(
http(s)://OAM-admin-host:OAM-adminport/oamconsole)に移動します。 - 「アイデンティティ・フェデレーション」、「サービス・プロバイダ管理」に移動します。
- 「アイデンティティ・プロバイダ・パートナの作成」ボタンをクリックします。
- 「Create」画面で:
- パートナの名前を入力します。
- IdPパートナの発行者/
ProviderIDを入力します。 SuccinctIDが空白のままの場合、OAM/SPは、SHA-1アルゴリズムを使用してプロバイダIDをダイジェストして計算します(空白のままにする必要があります)。- そのIdPパートナのSSO Service URLを入力します。これは、ユーザーがSAML AuthnRequestを持つOAM/SPからIdPにリダイレクトされるURLです。
- パートナがSAML 2.0アーティファクト・プロトコルをサポートしている場合は、SSOアーティファクト操作中にOAM/SPが接続してSAMLアサーションを取得するSOAP Service URLを入力します。
- IdP署名証明書ファイルをアップロードします。
- PEM形式(ファイルに最初の行として含まれる場合- - BEGIN CERTIFICATE- - 、Base64エンコード形式の証明書、最後に- - END CERTIFICATE- - )
- 証明書がバイナリエンコーディングで格納されているDER形式
- 「アサーション・マッピング」セクション:
- オプションで、使用するOAMアイデンティティ・ストアを設定します。ノート: この例では、デフォルトのOAMアイデンティティ・ストアを使用するためにフィールドを空白のままにします。
- オプションで、ユーザー検索ベースDNを設定します。ノート: この例では、フィールドを空白のままにして、アイデンティティ・ストアで構成されたユーザー検索ベースDNを使用します
- マッピングの実行方法を選択します。ノート: この例では、
NameIDを介してアサーションをLDAPメール属性にマップしています。 - 受信SAMLアサーション内の属性の名前をローカル名にマップするために使用する属性プロファイルを選択します。
- 「保存」をクリックします。
- パートナが作成されると、「パートナの編集」画面が表示されます。
- 前の画面で設定した設定を変更できます。
- 「詳細設定」セクションが表示されます。
- HTTP基本認証: アーティファクト・バインディングを使用する場合、OAM/SPはSOAPを介して直接IdPに接続し、SAMLアサーションを取得する必要があります。IdPによってSOAPチャネルでHTTP Basic認証が有効になり、OAM/SPがIdPにユーザー名/パスワードを提供する必要がある場合があります(これらの資格証明は、IdPとSPの管理者の間で合意されます)。


[Description of the illustration Edit_Partner_Screen.jpg](files/Edit_Partner_Screen.txt)
WLST
OAM WLSTコマンドを使用して新しいSAML 1.1 IdPパートナを作成するには、次のステップを実行します(証明書、IdP識別子およびURLなど、IdPパートナのすべてのデータがあることを確認します)。
-
$IAM_ORACLE_HOME/common/bin/WLST.shを実行して、WLST環境を入力します。 -
WLS管理サーバー(
connect())に接続します。 -
「ドメイン・ランタイム」ブランチ
domainRuntime()に移動します。 -
OAMでacmeIdPをコールするSAML 1.1 IdPパートナを作成します:
addSAML11IdPFederationPartner("acmeIdP", "https://acme.com/idp", "https://acme.com/saml11/sso", "https://acme.com/saml11/soap"。 -
デフォルトでは、新しいSPパートナーは次のように構成されます。
-
デフォルトのOAMアイデンティティ・ストアを使用します。
-
アイデンティティ・ストアのユーザー検索ベースDNを使用します(オーバーライドされません)
-
LDAPメール属性と一致する
NameIDを使用して、SAMLアサーションをマップします。 -
デフォルトのアイデンティティ・プロバイダ属性プロファイルを使用します。
-
このIdPパートナの証明書はアップロードされていません。
-
WLST環境
exit()を終了します。
WLSTを使用したフェデレーション設定の変更
この項では、OAM WLSTコマンドを介して共通のIdPパートナ設定を変更する方法を示します。
- SAMLアサーション・マッピング設定
- SAMLアサーション・マッピング用のOAMアイデンティティ・ストアとユーザー検索ベースDN
- SAML署名証明書
- IdP IdPパートナのパートナ属性プロファイル
すでにWLST環境にあり、次を使用して接続しているとします。
$IAM_ORACLE_HOME/common/bin/WLST.shを実行して、WLST環境を入力します。- WLS管理サーバー(
connect())に接続します。 - 「ドメイン・ランタイム」ブランチ
domainRuntime()に移動します。
SAMLアサーション・マッピング設定
SAML IdPパートナのマッピング設定を構成するには:
- 次のコマンドを使用して、NameIDを介してアサーションをマップします:
setIdPPartnerMappingNameID(partnerName, userstoreAttr)partnerNameは、IdPパートナの作成に使用された名前ですuserstoreAttr: NameID値と一致するLDAPユーザー属性。
- SAML属性を介してアサーションをマップするには、次のコマンドを使用します。
setIdPPartnerMappingAVribute(partnerName, assertionAttr, userstoreAttr)partnerNameは、IdPパートナassertionAttrの作成に使用された名前です。SAML属性の名前です。userstoreAttr: SAML属性値と一致するLDAPユーザー属性。
- LDAP問合せを介してアサーションをマップするには、次のコマンドを使用します。
setIdPPartnerMappingAVributeQuery(partnerName, attrQuery)partnerNameは、IdPパートナの作成に使用された名前ですattrQuery: 使用するLDAP問合せ((&(givenname=%firstname%) (sn=%lastname%))など)。
OAMアイデンティティ・ストアとユーザー検索のベースDN
受信SAMLアサーションのマッピング時に特定のOAMアイデンティティ・ストアまたは特定のユーザー検索ベースDN(あるいはその両方)を使用するようにOAM/SPを構成するには、次のコマンドsetPartnerIDStoreAndBaseDN()を実行します。
- 次のコマンドを使用して、OAMアイデンティティ・ストアのみを設定します。
setPartnerIDStoreAndBaseDN(partnerName, "idp", storeName="oid")partnerNameは、IdPパートナの作成に使用された名前ですidpはパートナ・タイプを示しますstoreName: 使用するOAMアイデンティティ・ストアを参照します。
- 次のコマンドを使用して、検索ベースDNのみを設定します。
setPartnerIDStoreAndBaseDN(partnerName, "idp",searchBaseDN="ou=managers,dc=acme,dc=com")partnerNameは、IdPパートナの作成に使用された名前ですidpはパートナ・タイプを示しますsearchBaseDN: 使用する検索ベースDNを示します- 次のコマンドを使用して、OAMアイデンティティ・ストアおよび検索ベースDNを設定します。
setPartnerIDStoreAndBaseDN(partnerName,"idp", storeName="oid", searchBaseDN="ou=managers,dc=acme,dc=com")partnerNameは、IdPパートナの作成に使用された名前ですidpはパートナ・タイプを示しますstoreName: 使用するOAMアイデンティティ・ストアを参照します。searchBaseDN: 使用する検索ベースDNを示します- 次のコマンドを使用して、IdPパートナ・エントリからOAMアイデンティティ・ストアおよび検索ベースDNを削除します。
setPartnerIDStoreAndBaseDN(partnerName, "idp", delete="true")partnerNameは、IdPパートナの作成に使用された名前です- idpはパートナ・タイプを示します
SAML署名証明書
署名証明書および暗号化証明書の管理に使用できる様々なWLSTコマンドがあります。
- Base64エンコード形式でパートナの署名証明書を出力する
getFederationPartnerSigningCert():getFederationPartnerSigningCert("acmeIdP", "idp") acmeIdPは、以前に作成したパートナの名前です。idpはパートナ・タイプを示しますsetFederationPartnerSigningCert(): パラメータとして渡された署名証明書ファイルをIdPパートナ構成にアップロードします:setFederationPartnerSigningCert("acmeIdP","idp", "/tmp/cert.file")acmeIdPは、以前に作成したパートナの名前です。idpはパートナ・タイプを示します- 3番目のパラメータは、証明書を含むファイルのファイル・システム上の場所を示します。
- PEM形式(ファイルに最初の行として含まれる場合- - BEGIN CERTIFICATE- - 、Base64エンコード形式の証明書、最後に- - END CERTIFICATE- - )
- 証明書がバイナリエンコーディングで格納されているDER形式
- IdPパートナ・エントリから署名証明書を削除する
deleteFederationPartnerSigningCert():deleteFederationPartnerSigningCert("acmeIdP","idp") - acmeIdPは、以前に作成したパートナの名前です。
idpはパートナ・タイプを示します
IdPパートナ属性プロファイル
特定のIdPパートナのIdPパートナ属性プロファイルを構成するには、次のコマンドを使用します: 特定のIdPパートナ属性プロファイルを使用するようにIdPパートナを構成するには、次のコマンドを実行します:
setIdPPartnerAttributeProfile(partnerName, attrProfileID)partnerNameは、IdPパートナの作成に使用された名前ですattrProfileIDは、IdPパートナ属性プロファイルIDです- 既存のIdPパートナ属性プロファイルをリストするには、
listIdPPartnerAttributeProfileIDs()を実行します。
例
次のコマンドを使用して、SAML 1.1 IdPパートナを追加できます(この例では、アイデンティティ・ストアの指定を選択しています)。
addSAML11IdPFederationPartner("acmeIdP", "https://acme.com/idp", "https://acme.com/saml1 /sso", "https://acme.com/saml11/soap" setFederationPartnerSigningCert("acmeIdP", "idp","/tmp/acme-idp-cert.pem") setPartnerIDStoreAndBaseDN("acmeIdP", "idp", "oid") setIdPPartnerMappingNameID("acmeIdP", "mail")
OpenID 2.0
OAM管理コンソール
新しいOpenID 2.0 IdP/OPパートナを作成するには、次のステップを実行します(検出やSSO URLなど、IdP/OPパートナのすべてのデータがあることを確認します)。
- OAM管理コンソール(
http(s)://OAM-admin-host:OAM-adminport/oamconsole)に移動します。 - 「アイデンティティ・フェデレーション」、「サービス・プロバイダ管理」に移動します。
- 「アイデンティティ・プロバイダ・パートナの作成」ボタンをクリックします。
- 「Create」画面で:
- パートナの名前を入力します。
- 「プロトコル」としてOpenID 2.0を選択します。
- OpenID OPとの対話方法を選択します。
- OPのXRDSが公開されるOpenID検出URLを指定します。
- または、OpenID SSO用にユーザーをリダイレクトするOpenID SSO URLを指定します。
- 「Service Details」の選択に対応するURLを入力します。
- マッピング・セクション:
- オプションで、使用するOAMアイデンティティ・ストアを設定します。ノート: この例では、デフォルトのOAMアイデンティティ・ストアを使用するためにフィールドを空白のままにします。
- オプションで、ユーザー検索ベースDNを設定します。ノート: この例では、アイデンティティ・ストアで構成されたユーザー検索ベースDNを使用するには、フィールドを空白のままにします。
- マッピングの実行方法を選択します。ノート: この例では、http://axschema.org /contact/emailという属性を介してOpenIDレスポンスをLDAPメール属性にマップしています。ノート: NameIDを介したマッピングは、OpenIDプロトコルでは実行できません。
- 受信SAMLアサーション内の属性の名前をローカル名にマップするために使用する属性プロファイルを選択します。
- 「保存」をクリックします。

図Create_Idty_Provider_Screen.jpgの説明
パートナが作成されると、「パートナの編集」画面が表示されます。
- 前の画面で設定した設定を変更可能
- 「詳細設定」セクションが表示されます。
- OpenID UI拡張の有効化: OpenIDリクエストにUI拡張を含めるようにOAM/SP/RPに指示し、OPでサポートされていればモードをポップアップに設定します。
- OpenID UI拡張言語プリファレンス: OpenIDにUI拡張をリクエストし、OPでサポートされている場合、言語フィールドをユーザーのブラウザによって送信されるAccept-Language HTTPヘッダー値に設定するようにOAM/SP/RPに指示します。
- OpenID UI拡張リライイング・パーティ・アイコンの有効化: OpenIDにUI拡張をリクエストし、OPでサポートされている場合はアイコン・ファグを設定するようOAM/SP/RPに示します。

図Edit_Partner_Adv_Settings_Screen.jpgの説明
OpenID 2.0プロトコルは、主に、OpenID 2.0 SSO交換時にOPとRP間で共有されるユーザー属性に依存します。OAM/RPでは、受信SSOレスポンスの属性の名前をローカル名にマップでき、これはIdP属性プロファイルを介して行われます。
WLST
OAM WLSTコマンドを使用して新しいOpenID 2.0 OPパートナを作成するには、次のステップを実行します(IdP/OPレルムやURLなど、OPパートナのすべてのデータがあることを確認します)。
$IAM_ORACLE_HOME/common/bin/WLST.shを実行して、WLST環境を入力します。- WLS管理サーバー(
connect())に接続します。 - 「ドメイン・ランタイム」ブランチ
domainRuntime()に移動します。 - OAMで
acmeOPをコールするOpenID 2.0 OPパートナ(addOpenID20IdPFederationPartner("acmeOP","https://acme.com/openid/sso","https://acme.com/openid/xrds"))を作成します。 - デフォルトでは、新しいSPパートナーは次のように構成されます。
- デフォルトのOAMアイデンティティ・ストアを使用します。
- アイデンティティ・ストアのユーザー検索ベースDNを使用します(オーバーライドされません)。
- アサーション・マッピングは構成されません。
- デフォルトのサービス・プロバイダ属性プロファイルを使用します。
- WLST環境
exit()を終了します。
WLSTを使用したフェデレーション設定の変更
この項では、OAM WLSTコマンドで共通のIdP/OPパートナ設定を変更する方法について説明します。
- OpenID SSOレスポンス・マッピング設定
- OpenID SSOレスポンス用のOAMアイデンティティ・ストアとユーザー検索ベースDN
- IdP IdPパートナのパートナ属性プロファイル
すでにWLST環境にあり、次を使用して接続しているとします。
$IAM_ORACLE_HOME/common/bin/WLST.shを実行して、WLST環境を入力します。- WLS管理サーバー(
connect())に接続します。 - 「ドメイン・ランタイム」ブランチ
domainRuntime()に移動します。
OpenID SSOレスポンス・マッピング設定
OpenID IdPパートナのマッピング設定を構成するには:
- 次のコマンドを使用して、SAML属性を介してSSOレスポンスをマップします。
setIdPPartnerMappingAVribute(partnerName, assertionAttr, userstoreAttr)partnerNameは、IdPパートナの作成に使用された名前です
assertionAttr: OpenID属性の名前。userstoreAttr: SAML属性値と一致するLDAPユーザー属性。- LDAP問合せを介してSSOレスポンスをマップするには、次のコマンドを使用します。
setIdPPartnerMappingAVributeQuery(partnerName, attrQuery)partnerNameは、IdPパートナの作成に使用された名前ですattrQuery: 使用するLDAP問合せ((&(givenname=%firstname%) (sn=%lastname%))など)。
OAMアイデンティティ・ストアとユーザー検索のベースDN
着信OpenID SSOレスポンスをマッピングするときに特定のOAMアイデンティティ・ストアまたは特定のユーザー検索ベースDN(あるいはその両方)を使用するようにOAM/SPを構成するには、次のコマンドsetPartnerIDStoreAndBaseDN()を実行します。
- 次のコマンドを使用して、OAMアイデンティティ・ストアのみを設定します。
setPartnerIDStoreAndBaseDN(partnerName,"idp", storeName="oid")partnerNameは、IdPパートナの作成に使用された名前ですidpはパートナ・タイプを示しますstoreName: 使用するOAMアイデンティティ・ストアを参照します。- 次のコマンドを使用して、検索ベースDNのみを設定します。
setPartnerIDStoreAndBaseDN(partnerName,"idp",searchBaseDN="ou=managers,dc=acme,dc=com")partnerNameは、IdPパートナの作成に使用された名前ですidpはパートナ・タイプを示しますsearchBaseDN: 使用する検索ベースDNを示します- 次のコマンドを使用して、OAMアイデンティティ・ストアおよび検索ベースDNを設定します。
setPartnerIDStoreAndBaseDN(partnerName,"idp", storeName="oid", searchBaseDN="ou=managers,dc=acme,dc=com")partnerNameは、IdPパートナの作成に使用された名前ですidpはパートナ・タイプを示しますstoreName: 使用するOAMアイデンティティ・ストアを参照します。searchBaseDN: 使用する検索ベースDNを示します- 次のコマンドを使用して、IdPパートナ・エントリからOAMアイデンティティ・ストアおよび検索ベースDNを削除します。
setPartnerIDStoreAndBaseDN(partnerName,"idp", delete="true")partnerNameは、IdPパートナの作成に使用された名前ですidpはパートナ・タイプを示します
IdPパートナ属性プロファイル
特定のIdPパートナのIdPパートナ属性プロファイルを構成するには、次のコマンドを使用します: 特定のIdPパートナ属性プロファイルを使用するようにIdPパートナを構成するには、次のコマンドを実行します:
setIdPPartnerAttributeProfile(partnerName, attrProfileID)partnerNameは、IdPパートナの作成に使用された名前ですattrProfileIDは、IdPパートナ属性プロファイルIDです- 既存のIdPパートナ属性プロファイルをリストするには、
listIdPPartnerAttributeProfileIDs()を実行します。
例
次のコマンドを使用して、OpenID 2.0 OPパートナを追加できます(この例では、アイデンティティ・ストアを指定しないことを選択しています)。
addOpenID20IdPFederationPartner("acmeOP", "https://acme.com/openid/sso", "https://acme.com/openid/xrds") setIdPPartnerMappingAVribute("acmeOP", "http://axschema.org/contact/email", "mail"
OpenID (Google/Yahooの場合)
OAM管理ツールを使用すると、GoogleまたはYahooをOpenID 2.0 OP/IdPとして簡単に追加できます。OAMは、OpenIDプロトコルを介してGoogleまたはYahooでフェデレーションSSOを実行するために必要なアーティファクトを作成します。
Googleの場合:
- OAMは、国、メール、名、姓および言語の属性を要求します。
- SSOレスポンス・マッピングはmail属性を介して行われます。
Yahooの場合
- OAMは、国、メール、名、姓、性別および言語の属性を要求します。
- SSOレスポンス・マッピングはmail属性を介して行われます。
OAM管理コンソール
GoogleまたはYahooを新しいOpenID 2.0 IdP/OPパートナとして作成するには、次のステップを実行します。
- OAM管理コンソール(
http(s)://OAM-admin-host:OAM-adminport/oamconsole)に移動します。 - 「アイデンティティ・フェデレーション」、「サービス・プロバイダ管理」に移動します。
- 「アイデンティティ・プロバイダ・パートナの作成」ボタンをクリックします。
- 「Create」画面で:
- パートナの名前を入力します。
- 「プロトコル」としてOpenID 2.0を選択します。
- 選択
- Googleを追加する場合は、Googleプロバイダのデフォルト設定。
- Yahooを追加する場合は、Yahooプロバイダのデフォルト設定。
- 「保存」をクリックします。

図OAM_Admin_Console_Google_Yahoo.jpgの説明
WLST
OAM WLSTコマンドを使用して、新しいOpenID 2.0 IdP/OPパートナとしてGoogleまたはYahooを作成するには、次のステップを実行します。
$IAM_ORACLE_HOME/common/bin/WLST.shを実行して、WLST環境を入力します。- WLS管理サーバー(
connect())に接続します。 - 「ドメイン・ランタイム」ブランチ
domainRuntime()に移動します。 - OpenID 2.0 OPパートナを作成します。
- Googleの場合(パートナ名はgoogle):
addOpenID20GoogleIdPFederationPartner()。 - Yahooの場合(パートナ名はyahoo):
addOpenID20YahooIdPFederationPartner()。
その他の学習リソース
docs.oracle.com/learnで他のラボを探すか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerになります。
製品ドキュメントについては、Oracle Help Centerを参照してください。
Create SAML 1.1 and OpenID 2.0 IdP Partners in OAM and SP
F59899-01
September 2022
Copyright © 2022, Oracle and/or its affiliates.