例: OAMおよびIdPを使用した属性の送信
次に、属性を送信するようにIdPを構成する方法の例を示します。
-
OAM管理コンソールを使用して、SAML 2.0 SPパートナに属性を送信します。
-
OAM WLSTコマンドを使用して、属性をOpenID 2.0 RPパートナに送信します。
送信される属性は、次に基づきます。
-
LDAPユーザー・レコード(属性、DN...)
-
OAMユーザー・セッション(属性、セッション数...)
-
ブラウザのHTTPリクエスト(cookie、user- agent...)
OAM管理コンソール
この項では、管理コンソールを介して属性を送信するようにIdPを構成する方法について説明します。この例は、リモートSAML 2.0 SPパートナとのフェデレーションに基づいており、IdPは次のように構成されています。
-
Unspeci9ed NameID形式の使用
-
uid LDAPユーザー属性を使用してNameID値を設定します
-
次の属性を送信します。
-
SAML属性名が「電子メール」に設定されている電子メール・アドレス
-
「My name is」で始まる文字列、およびスペースで区切られた姓と名の両方を含む属性。SAML属性名が「名前」に設定されています
-
属性名が
UserIDに設定されたUserID -
SAML属性名が
SessionCountに設定されたOAMセッション数 -
SAML属性名が
IPAddressに設定されているクライアントのIPアドレス
-
新しいSP属性プロファイルを作成し、acmeSPに割り当てます。後で、新しいSPパートナがオンボーディングされている場合、IdPがそれらの新しいSPに同じ属性を送信するように、既存のSP属性プロファイルを割り当てることができます。
SP属性プロファイルの作成
新しいSP属性プロファイルを作成するには、次のステップを実行します。
-
OAM管理コンソール(
http(s)://OAM-admin-host:OAM-admin- port/oamconsole)にアクセスします。 -
「アイデンティティ・フェデレーション」、「アイデンティティ・プロバイダ管理」に移動します。
-
「サービス・プロバイダ属性プロファイル」タブをクリックします。
-
「SP属性プロファイルの作成」ボタンをクリックします。

図Create_SP_Attribute_Profile.jpgの説明
-
新しいSP属性プロファイルに関する基本情報を設定します。
-
名前を入力します
-
必要に応じて説明を入力します
ノート: 「デフォルト・サービス・ポイント・パートナ属性プロファイル」が選択されている場合、新規サービス・ポイント・パートナがUIを介して作成されるときに、SP属性プロファイルが事前に割り当てられ、サービス・ポイント属性プロファイルが割り当てられていないサービス・ポイント・パートナに使用されるサービス・ポイント属性プロファイルになります(たとえば、WLSTコマンドを介して作成されるサービス・ポイント属性プロファイル)。

-
前にリストした必要な属性を追加します。Eメール属性を追加するには、次の操作を実行します。
-
「属性マッピング」表の「エントリの追加」ボタンをクリックします。
-
電子メール属性を設定します。
-
メッセージ属性名: Eメール
-
値: ユーザーを選択し、
attrを選択して、電子メール・アドレス(この場合はメール)を含むLDAP属性を入力します -
常に送信: 選択
-

次の操作を実行して、Name属性を追加します。
-
「属性マッピング」表の「エントリの追加」ボタンをクリックします。
-
「Name」属性を設定します。
-
メッセージ属性名: 名前
-
値: 式を選択し、次の文字列を入力します(この例では、
givennameLDAP属性に名が含まれ、姓がsnです): 私の名前は$user.attr.givenname $user.attr.snです -
常に送信: 選択

-
次の操作を実行して、UserID属性を追加します。
-
「属性マッピング」表の「エントリの追加」ボタンをクリックします。
-
UserID属性を設定します。-
メッセージ属性名:
UserID -
値: ユーザーを選択し、
useridを選択します -
常に送信: 選択

-
次の操作を実行して、SessionCount属性を追加します。
-
「属性マッピング」表の「エントリの追加」ボタンをクリックします。
-
SessionCount属性を設定します。-
メッセージ属性名:
SessionCount -
値: セッションを選択し、カウントします
-
常に送信: 選択

-
次の操作を実行して、IPAddress属性を追加します。
-
「属性マッピング」表の「エントリの追加」ボタンをクリックします。
-
IPAddress属性を設定します。
-
メッセージ属性名: IPAddress
-
値: リクエストを選択し、
client_ipを選択します -
常に送信: 選択

-
SP属性プロファイルは、このプロファイルにリンクされているSPパートナに必要な属性を送信するように構成されました

新しいSP属性プロファイルを使用するようにSPパートナを更新し、NameID設定を構成します。
-
OAM管理コンソール(
http(s)://OAM-admin-host:OAM-admin- port/oamconsole)にアクセスします。 -
「アイデンティティ・フェデレーション」、「アイデンティティ・プロバイダ管理」に移動します。
-
「サービス・プロバイダ・パートナの検索」をクリックします。
-
目的のSPパートナを開きます。
-
NameIDフォーマットとしてUnspeci9edを選択します。
-
NameIDには、「ユーザーIDストア属性」を選択し、userIDを含むLDAP属性としてuidを入力します。
ノート: ドロップダウンで「式」を選択し、以前使用したものと同様の式を入力します。
-
「属性マッピング」セクションで、新しく作成したSP属性プロファイルを属性プロファイルとして選択します。
-
「保存」をクリックします。

常に送信することに関するノート
SP属性プロファイルは、次のようなさまざまなプロトコルに使用されます。
-
SAML SSO。SPは実行時に属性を要求できません。
-
SAML SOAP属性交換。SPは実行時に任意の属性を要求できます。
-
OpenID 2.0: SPは実行時に任意の属性をリクエストできます。
-
SP属性プロファイル・セクションに表示される「常に送信」オプションを使用すると、管理者は、SPパートナによって要求されていなくても常にアサーションの属性を送信するようにIdPに指示できます。
SAMLアサーション
次の特性を持つユーザーに基づいて、IdPは、次に示すようなSAMLアサーションを生成します。
-
UserID: alice
-
名: Alice
-
姓: Appleton
-
電子メール: alice@idp.com
aliceのIdPによって生成されたSAMLアサーション:
<samlp:Response ...>
<saml:Issuer ...>https://idp.com</saml:Issuer>
<samlp:Status>
<samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
</samlp:Status>
<saml:Assertion ...>
<saml:Issuer ...>https://idp.com</saml:Issuer>
<dsig:Signature>
...
</dsig:Signature>
<saml:Subject>
<saml:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid- format:unspeci9ed">alice</saml:NameID>
...
</saml:Subject>
<saml:Conditions NotBefore="2014-02-26T20:35:00Z" NotOnOrAfter="2014-02-26T22:35:00Z">
<saml:AudienceRestriction>
<saml:Audience>https://acme.com/sp</saml:Audience>
</saml:AudienceRestriction>
</saml:Conditions>
<saml:AuthnStatement AuthnInstant="2014-02-26T20:35:00Z" ...>
<saml:AuthnContext>
<saml:AuthnContextClassRef>urn:...:Password</saml:AuthnContextClassRef>
</saml:AuthnContext>
</saml:AuthnStatement>
<saml:AAributeStatement>
<saml:Attribute Name="Name" ...>
<saml:AAributeValue ...>My name is Alice Appleton</saml:AAributeValue>
</saml:AAribute>
<saml:Attribute Name="SessionCount" ...>
<saml:AAributeValue ...>1</saml:AAributeValue>
</saml:AAribute>
<saml:Attribute Name="Email" ...>
<saml:AAributeValue ...>alice@idp.com</saml:AAributeValue>
</saml:AAribute>
<saml:Attribute Name="IPAddress" ...>
<saml:AAributeValue ...>10.145.120.253</saml:AAributeValue>
</saml:AAribute>
<saml:Attribute Name="UserID" ...>
<saml:AAributeValue ...>alice</saml:AAributeValue>
</saml:AAribute>
</saml:AAributeStatement>
</saml:Assertion>
</samlp:Response>
WLSTコマンド
この項では、OAM WLSTコマンドを使用して属性を送信するようにIdPを構成する方法について説明します。次の例では、リモートのOpenID 2.0 SPパートナを持つフェデレーションに基づいており、IdPは次のように構成されています。
次の属性を送信します。
-
OpenID属性名が
http://axschema.org/contact/emailに設定されている電子メール・アドレス -
「My name is」で始まる文字列、およびスペースで区切られた9rst名と姓の両方を含む属性。OpenID属性名は
http://openid.net/schema/namePerson/friendlyに設定されています -
OpenID属性名が
http://schemas.openid.net/ax/api/user_idに設定されたUserID -
OpenID属性名が
<http://session/count>に設定されたOAMセッション数 -
属性名が
http://session/ipaddressに設定されているクライアントのIPアドレス
このために、新しいSP属性プロファイルを作成し、acmeRPに割り当てます。新しいRPパートナがオンボーディングされている場合、IdPがそれらの新しいSPに同じ属性を送信するように、既存のSP属性プロファイルを割り当てることができます。
すでにWLST環境にあり、次を使用して接続しているとします。
-
$IAM_ORACLE_HOME/common/bin/WLST.shを実行して、WLST環境を入力します。 -
WLS管理サーバー(
connect())に接続します。 -
「ドメイン・ランタイム」ブランチ
domainRuntime()に移動します。
新規SP属性プロファイルの構成
新しいSP属性プロファイルを構成するには、次のステップを実行します。
-
新しいSP属性プロファイル
createSPPartnerAAributeProfile("openIDAArProfile")を作成します。 -
新規SP属性プロファイルの名前を指定します。
-
Eメール属性
setSPPartnerAAributeProfileEntry("openIDAArProfile", "http://axschema.org/contact/email", "$user.attr.mail")を作成します。 -
変更するSP属性プロファイルの名前を指定します。
-
OpenID属性名を
http://axschema.org/contact/emailに指定します。 -
値を、電子メール・アドレス(この場合は
$user.attr.mail)を含むLDAP属性に設定します。 -
名前属性
setSPPartnerAAributeProfileEntry("openIDAArProfile", "http://openid.net/schema/namePerson/friendly", "My name is $user.attr.givenname $user.attr.sn")を作成します。 -
変更するSP属性プロファイルの名前を指定します。
-
OpenID属性名を
http://openid.net/schema/namePerson/friendlyに指定します。 -
値を設定します(この例では、指定された名前のLDAP属性に9rstの名前が含まれ、姓をsnします): My nameは
$user.attr.givenname $user.attr.snです。 -
UserID属性
setSPPartnerAAributeProfileEntry("openIDAArProfile", "http://schemas.openid.net/ax/api/user_id", "$user.userid")を作成します。 -
変更するSP属性プロファイルの名前を指定します。
-
OpenID属性名を
<http://schemas.openid.net/ax/api/user_id>に指定します。 -
値を、電子メール・アドレス(この場合は
$user.attr.uid)を含むLDAP属性に設定します。 -
OAMセッション数属性
setSPPartnerAAributeProfileEntry("openIDAArProfile", "http://session/count", "$session.count")を作成します。 -
変更するSP属性プロファイルの名前を指定します。
-
OpenID属性名を
<http://session/count>に指定します。 -
値を
$session.countに設定します。 -
クライアントのIPアドレス属性
setSPPartnerAAributeProfileEntry("openIDAArProfile", "http://session/ipaddress", "$request.client_ip")を作成します。 -
変更するSP属性プロファイルの名前を指定します。
-
OpenID属性名を
<http://session/ipaddress>に指定します。 -
値を
$request.client_ipに設定します。
そのSP属性プロファイルを使用するようにSPパートナを更新するには、次を実行します。
-
setSPPartnerAAributeProfileコマンド:setSPPartnerAAributeProfile("acmeRP", "openIDAArProfile") -
SPパートナ名を指定します
-
使用するサービス・ポイント属性プロファイルの名前を指定します
OpenIDレスポンス
次の特性を持つユーザーに基づいて、IdPは、次に示すようなOpenIDレスポンスを生成します。
-
UserID: alice -
Firstname: Alice -
Last name: Appleton -
Email: alice@idp.com
OpenID aliceのIdPによって生成されるレスポンス:
https://acme.com/sp/openidv20?re9d=id-UnaYvk-mDQy6ZQB-4R39L4An4B0-& openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0&openid.mode=id_res& openid.op_endpoint=http%3A%2F%2Fadc00pcc.us.oracle.com%3A23002%2Foamfed%2Fidp%2Fopenidv20& openid.claimed_id=http%3A%2F%2Fadc00pcc.us.oracle.com%3A23002%2Foamfed%2Fidp%2Fopenidv20%3Fid%3Did- p4rWL%2FjzZAKwxAYLA%2FjOtP7s6fqjdyQ2BiSWZduaR5c%3D&openid.identity=http%3A%2F%2Fadc00pcc.us.oracle.com%3A23002%2Foamfed%2Fidp%2Fopenidv20%3Fid%3Did- p4rWL%2FjzZAKwxAYLA%2FjOtP7s6fqjdyQ2BiSWZduaR5c%3D& openid.return_to=http%3A%2F%2Fadc00peq.us.oracle.com%3A7499%2Ffed%2Fsp%2Fopenidv20%3Fre9d%3Did-UnaYvk-mDQy6ZQB-4R39L4An4B0-&openid.response_nonce=2014-02-26T21%3A35%3A08Zid- uTAXy9lDK7TVvgezZVY3XZ06iSDcZb97zxiOl0qw&openid.assoc_handle=id-n-nN- qW2VAZa75-XJshWpmVHK53Yz0-lTZtrtsJm&openid.ns.ax=http%3A%2F%2Fopenid.net%2Fsrv%2Fax%2F1.0&openid.ax.mode=fetch_response& openid.ax.type.attr0=http%3A%2F%2Fsession%2Fcount&openid.ax.value.attr0=2& openid.ax.type.attr1=http%3A%2F%2Fopenid.net%2Fschema%2FnamePerson%2Ffriendly& openid.ax.value.attr1=My+name+is+Alice+Appleton&openid.ax.type.attr2=http%3A%2F%2Fschemas.openid.net%2Fax%2Fapi%2Fuser_id& openid.ax.value.attr2=alice&openid.ax.type.attr3=http%3A%2F%2Faxschema.org%2Fcontact%2Femail&openid.ax.value.attr3=alice%40idp.com& openid.ax.type.attr4=http%3A%2F%2Fsession%2Fipaddress& openid.ax.value.attr4=10.145.120.253&openid.signed=op_endpoint%2Cclaimed_id%2Cidentity%2Creturn_to%2Cresponse_nonce%2Cassoc_handle%2Cns.ax%2Cax.mode%2Cax.type.attr0%2Cax.value.attr0%2Cax.type.attr1%2Cax.value.attr1%2Cax. openid.sig=TeDo%2FouX%2BXRI%2F1G8kJVsw5JOVY8%3D
属性に関連するデコードされたURL問合せパラメータは、次のとおりです。
-
属性#0の名前:
openid.ax.type.attr0=http://session/count -
属性#0の値:
openid.ax.value.attr0=2 -
属性#1の名前:
openid.ax.type.attr1= http://openid.net/schema/namePerson/friendly -
属性#1の値:
openid.ax.value.attr1=My name is Alice Appleton -
属性#2の名前:
openid.ax.type.attr2= http://schemas.openid.net/ax/api/user_id -
属性#2の値:
openid.ax.value.attr2=alice -
属性#3の名前:
openid.ax.type.attr3=http://axschema.org/contact/email -
属性#3の値:
openid.ax.value.attr3=alice@idp.com -
属性#4の名前:
openid.ax.type.attr4=http://session/ipaddress -
属性#4の値:
openid.ax.value.attr4=10.145.120.253
その他の学習リソース
docs.oracle.com/learnで他のラボを探すか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerになります。
製品ドキュメントについては、Oracle Help Centerを参照してください。
Example- Sending Attributes with OAM and IdP
F61882-01
September 2022
Copyright © 2022, Oracle and/or its affiliates.