プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Access Management管理者ガイド
11g リリース2 (11.1.2.3) for All Platforms
E61950-08
目次へ移動
目次

前
次

37.5 フェデレーションSSOの開始

フェデレーションSSO処理は、Identity FederationがIdPまたはSPとして動作している場合に開始できます。

37.5.1 IdPが開始するフェデレーションSSOサービス

IdPが開始するフェデレーションSSOサービスには、providerid、returnurlおよびacsurlの3つの問合せパラメータがあります。

Identity FederationがIdPとして機能する場合、フェデレーションSSOを開始するためのURLは次のとおりです。

http://public-oam-host:public-oam-port/oamfed/idp/initiatesso

問合せパラメータは次のとおりです。

  • providerid: フェデレーションSSOを実行するSPパートナの名前、またはフェデレーションSSOを実行するSPパートナの発行者ID/プロバイダID。(必須)

  • returnurl: フェデレーションSSOの成功後ユーザーがリダイレクトされるSP URL(オプション)

  • acsurl: Identity FederationがSAML 2.0アサーションでユーザーをリダイレクトするSAML 2.0アサーション・コンシューマ・サービスURL。このURLはSP SAML 2.0メタデータで宣言する必要があります。(オプション)

SAMLアサーションの複数値属性

37.5.1.1 SAMLアサーションの複数値属性

この機能のデフォルト動作では、ユーザーが複数のグループに属し、always sendtrueに設定されている場合、SSO時に、IdPによってGroup属性がカンマ区切りの形式で送信されます。拡張動作では、multivaluegroupsフラグがtrueに設定されている場合、SSO時に、IdPによってGroup属性がカンマ区切りではなく別個のSAML文で送信されます。

次のSSOプロトコルでは、複数値のGroups SAML属性がサポートされます。

  • SAML 2.0

  • SAML 1.1

  1. この機能を有効にするには、OAM構成を要件に応じて更新する必要があります。multivaluegroups属性設定はデフォルトでは無効になっており、oam-config.xmlに存在しません。ユーザーは、WLSTコマンドを使用してoam-config.xmlにこの設定を追加してtrueに設定し、Group属性に対して複数の属性文を有効にする必要があります。

  2. WLSTコマンドを使用してmultivaluegroups属性設定をoam-config.xmlのパートナ・レベル、パートナ・プロファイル・レベルまたはグローバル・レベルに追加し、trueに設定ます。

    <Setting Name="multivaluegroups" Type="xsd:boolean">true</Setting>

    • パートナ・レベルでのmultivaluegroupsの有効化または無効化

      updatePartnerProperty(partnerName="spPartnername", partnerType="SP",propName="multivaluegroups",propValue="true/false",type="boolean");

    • パートナ・プロファイル・レベルでのmultivaluegroupsの有効化または無効化

      putBooleanProperty("/fedpartnerprofiles/saml20-sp-partner-profile/multivaluegroups","true/false");

    • グローバル・レベルでのmultivaluegroupsの有効化または無効化

      putBooleanProperty("/idpglobal/multivaluegroups","true/false");

37.5.2 SPが開始するフェデレーションSSOサービス

SPが開始するフェデレーションSSOサービスには、provideridおよびreturnurlの2つの問合せパラメータがあります。

Identity FederationがSPとして機能する場合、フェデレーションSSOを開始するためのURLは次のとおりです。

http://public-oam-host:public-oam-port/oamfed/sp/initiatesso

問合せパラメータは次のとおりです。

  • providerid: フェデレーションSSOを実行するIdPパートナの名前、またはフェデレーションSSOを実行するIdPパートナの発行者ID/プロバイダID。(必須)

  • returnurl: フェデレーションSSOの成功後ユーザーがリダイレクトされるURL(オプション)

37.5.3 属性コンシューミング・サービス

OAMフェデレーション・サービスは、標準のSAML2vベースのインタフェースおよび要素をサポートするために拡張されています。

この節では、以下のトピックについて説明します。

37.5.3.1 属性コンシューミング・サービスの要素

属性コンシューミング・サービスには次の3つの要素が含まれます: AttributeConsumingServiceAttributeConsumingServiceIndexおよびNameQualifier

AttributeConsumingService

AttributeConsumingService要素は、SPメタデータに含まれています。この要素には、次のフィールドが含まれています。

  • ServiceName

  • ServiceDescription

  • index

  • isDefault

  • RequestedAttributeには、次のフィールドが含まれています。
    • acsIndex

    • rqstAttrName

      ノート:

      rqstAttrNameフィールドは、namefiscal numberemailなど、任意のユーザー定義値にできます。
    • rqstAttrNameFormat

    • rqstAttrFriendlyName

    • rqstAttrIsRequired

SPメタデータの例:

<md:AttributeConsumingService index="1" isDefault="false">
	<md:ServiceName xml:lang="en_US">serviceName1</md:ServiceName> 
	<md:ServiceDescription xml:lang="en_US">serviceDesc1</md:ServiceDescription> 
	<md:RequestedAttribute FriendlyName="friendlyName1" Name="email" NameFormat="sample:urn:format" isRequired="true"/>
</md:AttributeConsumingService>
 
<md:AttributeConsumingService index="1" isDefault="true"> 
	<md:ServiceName xml:lang="eng">Updated-Service-Name1</md:ServiceName>
	<md:ServiceDescription xml:lang="eng">updatedServiceDesc</md:ServiceDescription>
	<md:RequestedAttribute FriendlyName="friendlyName1" Name="email" NameFormat="sample:urn:format" isRequired="true"/>
	<md:RequestedAttribute FriendlyName="" Name="empNum" NameFormat="empFormat1" isRequired="false"/>
	<md:RequestedAttribute FriendlyName="fname" Name="empFirstName" NameFormat="firstnameformat1" isRequired="true"/> 
</md:AttributeConsumingService>

AttributeConsumingService

AttributeConsumingServiceIndex要素は、SAML 2.0認証リクエストに含まれています。ランタイムSSOで、AttributeConsumingServiceIndexauthnrequestに表示されるよう、SPで開始されたURLでattributeconsumingserviceindexパラメータを渡します。

たとえば、http://sp-host:sp-managed-port/oamfed/sp/initiatesso?providerid=http://idp-host:idp-managed-port/oam/fed&returnurl=http://sp-host:webgate-port/cgi-bin/headers.cgi&attributeconsumingserviceindex=1となります。

認証リクエストの例:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
	<samlp:AuthnRequest xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:enc="http://www.w3.org/2001/04/xmlenc#" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:x500="urn:oasis:names:tc:SAML:2.0:profiles:attribute:X500" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" AttributeConsumingServiceIndex="1" ID="id-atMY1jR9Vh7PBcWSjdqmyxIc1JNMSFD-zQ1d7lf8" Version="2.0" IssueInstant="2016-09-15T22:32:37Z" Destination="http://slc05ynv.us.oracle.com:21328/oamfed/idp/samlv20">
		<saml:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">http://slc06fcv.us.oracle.com:23768/oam/fed</saml:Issuer>
		<samlp:NameIDPolicy AllowCreate="true"/>
	</samlp:AuthnRequest>	

NameQualifier

NameQualifier要素は、<samlp:issuer>タグ内に含まれています。

次に例を示します。

<saml:Issuer NameQualifier=" http://spid-sp.it"
Format=" urn:oasis:names:tc:SAML:2.0:nameid format:entity"> SPID-sp-test </saml:Issuer>

デフォルトでは、NameQualifierはfalseに設定されています。WLSTコマンドを使用して、oam-config.xmlファイル内でNameQualifiertrueに設定できます。WLSTコマンドの詳細は、WebLogic Server WLSTコマンド・リファレンスを参照してください。

次の表では、WLSTコマンドを使用してNameQualifier要素を有効または無効にする方法を示します。

アクション WLSTコマンド例
パートナ・レベルでNameQualifierを有効にします。
updatePartnerProperty(partnerName="idp-partner",partnerType="IDP",propName="samlrequestissuernamequalifier",propValue="http://sample.sp.it",type="string")
パートナ・プロファイル・レベルでNameQualifierを有効にします。
putStringProperty("/fedpartnerprofiles/saml20-idp-partner-profile/samlrequestissuernamequalifier","http://profile-sample.it")
グローバル・レベルでNameQualifierを有効にします。
putStringProperty("/spglobal/samlrequestissuernamequalifier","http://spglobal.it")
パートナ・レベルでNameQualifierを無効にします。
deletePartnerProperty(partnerName="idp-partner",partnerType="IDP",propName="samlrequestissuernamequalifier")
パートナ・プロファイル・レベルでNameQualifierを無効にします。
deleteStringProperty("/fedpartnerprofiles/saml20-idp-partner-profile/samlrequestissuernamequalifier")
グローバル・レベルでNameQualifierを無効にします。
deleteStringProperty("/spglobal/samlrequestissuernamequalifier")

37.5.3.2 属性コンシューミング・サービスのWLSTコマンド

属性コンシューミング・サービスは、10個のWebLogic Scripting Tool (WLST)コマンドでサポートされています。

詳細は、次の各項を参照してください。

37.5.3.2.1 getDefaultACS

このコマンドは、デフォルトの属性コンシューミング・サービスを取得します。

説明

getDefaultACSコマンドは、デフォルトの属性コンシューミング・サービスを取得します。

構文

getDefaultACS()

この例では、getDefaultACSコマンドの使用方法を示します。

getDefaultACS()

37.5.3.2.2 getAllRqstAttrsForACS

このコマンドは、指定された属性コンシューミング・サービスacsIndexの下のリクエストされた属性のリストを取得します。

説明

getAllRqstAttrsForACSコマンドは、指定された属性コンシューミング・サービスacsIndexの下のリクエストされた属性のリストを取得します。

構文

getAllRqstAttrsForACS(acsIndex) 
引数 定義
acsIndex [必須] 属性コンシューミング・サービスのインデックス。

この例では、getAllRqstAttrsForACS(acsIndex)コマンドの使用方法を示します。

getAllRqstAttrsForACS(1)

37.5.3.2.3 getAllACS

このコマンドは、構成されているすべての属性コンシューミング・サービスのリストを取得します。

説明

getAllACSコマンドは、構成されているすべての属性コンシューミング・サービスのリストを取得します。

構文

getAllACS()

この例では、getAllACS()コマンドの使用方法を示します。
getAllACS()

37.5.3.2.4 getACS

このコマンドは、指定された属性コンシューミング・サービスacsIndexを取得します。

説明

getACSコマンドは、指定された属性コンシューミング・サービスacsIndexを取得します。

構文

getACS(acsIndex)
引数 定義
acsIndex [必須] 属性コンシューミング・サービスのインデックス。

この例では、getACS(acsIndex)コマンドの使用方法を示します。
getACS(1)

37.5.3.2.5 addACS

このコマンドは、acsIndexserviceNameattributeConsumingIsDefaultrqstAttrNamerqstAttrNameFormatrqstAttrFriendlyNamerqstAttrIsRequiredおよびserviceDescriptionを使用して属性コンシューミング・サービスの新規エントリを作成します。

説明

このコマンドは、acsIndexserviceNameattributeConsumingIsDefaultrqstAttrNamerqstAttrNameFormatrqstAttrFriendlyNamerqstAttrIsRequiredおよびserviceDescriptionを使用して属性コンシューミング・サービスの新規エントリを作成します。

属性コンシューミング・サービスの作成時には、少なくとも1つのリクエストされた属性について詳細を提供する必要があります。<xml:lang>パラメータは、サーバー・ロケールで自動的に更新されます。

ノート:

GETおよびDELETE WLSTコマンドを実行するには、acsIndexを使用してaddACSを作成する必要があります。

構文

addACS(acsIndex, serviceName, rqstAttrName, rqstAttrNameFormat, rqstAttrFriendlyName="", rqstAttrIsRequired="false", serviceDescription="", attributeConsumingIsDefault="false")
引数 定義
acsIndex [必須] 属性コンシューミング・サービスのインデックスを指定します。
serviceName [必須] サービスの名前を指定します。
rqstAttrName [必須] リクエストされた属性の名前を指定します。
rqstAttrNameFormat [必須] リクエストされた属性の形式を指定します。
rqstAttrFriendlyName [オプション] 属性コンシューミング・サービスのフレンドリ名を指定します。
rqstAttrIsRequired [オプション] リクエストされた属性が必要かどうかを決定します。有効は値は、trueおよびfalseです。
serviceDescription [オプション] サービスの説明を指定します。デフォルト値は「 」です。
attributeConsumingIsDefault [オプション] デフォルトの属性コンシューミング・サービスを設定するには、この値を受け入れます。デフォルト値はfalseです。

この例では、addACSコマンドの使用方法を示します。

addACS(1, "Updated-Service-Name1", "email", "sample:urn:format", rqstAttrFriendlyName="", rqstAttrIsRequired="false", serviceDescription="updatedServiceDesc", attributeConsumingIsDefault="true")

37.5.3.2.6 addRqstAttrToACS

このコマンドは、指定された属性コンシューミング・サービスacsIndexのリストの下のrqstAttrNamerqstAttrNameFormatrqstAttrFriendlyNameおよびrqstAttrIsRequiredなど、リクエストされた新規属性を追加します。

説明

addRqstAttrToACSコマンドは、指定された属性コンシューミング・サービスacsIndexのリストの下のrqstAttrNamerqstAttrNameFormatrqstAttrFriendlyNameおよびrqstAttrIsRequiredなど、リクエストされた新規属性を追加します。

構文

addRqstAttrToACS(acsIndex, rqstAttrName, rqstAttrNameFormat, rqstAttrFriendlyName=None, rqstAttrIsRequired="false"): 
引数 定義
acsIndex [必須] 属性コンシューミング・サービスのインデックスを指定します。
rqstAttrName [必須] リクエストされた属性の名前を指定します。
rqstAttrNameFormat [必須] リクエストされた属性の形式を指定します。
rqstAttrFriendlyName [オプション] 属性コンシューミング・サービスのフレンドリ名を指定します。
rqstAttrIsRequired [オプション] リクエストされた属性が必要かどうかを決定します。有効は値は、trueおよびfalseです。

この例では、addRqstAttrToACSコマンドの使用方法を示します。

addRqstAttrToACS(1, "empNumber", "empFormat1", rqstAttrFriendlyName=None, rqstAttrIsRequired="false"): 

37.5.3.2.7 updateACS

このコマンドは、指定された属性コンシューミング・サービスoldACSIndexの任意またはすべてのフィールドを更新します。

説明

updateACSコマンドは、指定された属性コンシューミング・サービスoldACSIndexの任意またはすべてのフィールド(つまり、newServiceNamenewServiceDescriptionnewAttributeLangnewIsDefaultおよびnewACSIndex)を更新します。

構文

updateACS(oldACSIndex, newServiceName=None, newServiceDescription=None, newAttributeLang=None, newIsDefault=None, newACSIndex=None)
引数 定義
oldACSIndex [必須] 既存の属性コンシューミング・サービス・インデックスの名前を指定します。
newServiceName [オプション] 属性コンシューミング・サービスの更新した名前を指定します。
newServiceDescription [オプション] 属性コンシューミング・サービスの更新した説明を指定します。
newAttributeLang [オプション] 属性コンシューミング・サービスの名前および説明のための、更新したxml:langを指定します。
newIsDefault [オプション] 属性コンシューミング・サービスに新しいデフォルト値を設定するには、trueまたはfalseなどの値を受け入れます。有効は値は、trueおよびfalseです。
newACSIndex [オプション] 新しい属性コンシューミング・サービス・インデックスの名前を指定します。

この例では、updateACSコマンドの使用方法を示します。

ノート:

ACSを正常に更新するには、acsIndexとともに少なくとも1つのオプション・パラメータが必要です。
  • newServiceNameフィールドのみを更新するには、次のコマンドを使用します。
    updateACS(1, newServiceName="SampleAttributeName");
  • newServiceNameisdefaultを両方とも更新するには、次のコマンドを使用します。
    updateACS(1, newServiceName="SampleAttributeName", newIsDefault="true");

37.5.3.2.8 updateRqstAttrForACS

このコマンドは、指定された属性コンシューミング・サービスacsIndexの下の指定されたリクエスト済属性oldRqstAttrNameのすべてのフィールドを更新します。

説明

updateRqstAttrForACSコマンドは、指定された属性コンシューミング・サービスacsIndexの下の指定されたリクエスト済属性oldRqstAttrNameのすべてのフィールドを更新します。

構文

updateRqstAttrForACS(acsIndex, oldRqstAttrName, newRqstAttrName=None, newRqstAttrFriendlyName=None, newRqstAttrNameFormat=None, newRqstAttrIsRequired=None)
引数 定義
acsIndex [必須] 属性コンシューミング・サービスのインデックスを指定します。
oldRqstAttrName [必須] フィールドを更新する、既存のリクエストされた属性の名前を指定します。
newRqstAttrName [オプション] リクエストされた属性の更新した名前を指定します。
newRqstAttrFriendlyName [オプション] リクエストされた属性の更新したフレンドリ名を指定します。
newRqstAttrNameFormat [オプション] リクエストされた属性の名前の更新した形式を指定します。
newRqstAttrIsRequired [オプション] リクエストされた属性が属性コンシューミング・サービスから必要となるかどうかを決定します。有効は値は、trueおよびfalseです。

この例では、updateRqstAttrForACSコマンドの使用方法を示します。

ノート:

指定されたリクエスト済属性を正常に更新するには、acsIndexとともに少なくとも1つのオプション・パラメータが必要です。
  • newRqstAttrNameのみを更新するには、次のコマンドを使用します。
    updateRqstAttrForACS(acsIndex, oldRqstAttrName, newRqstAttrName="SAMPLE_RQST_ATTR");
  • リクエストされた属性のnewRqstAttrNameおよびnewRqstAttrNameFormatを更新するには、次のコマンドを使用します。
    updateRqstAttrForACS(acsIndex, oldRqstAttrName, newRqstAttrName="SAMPLE_RQST_ATTR", newRqstAttrNameFormat="urn:oasis:sample");

37.5.3.2.9 deleteACS

このコマンドは、指定された属性コンシューミング・サービスacsIndexを削除します。

説明

deleteACSコマンドは、指定された属性コンシューミング・サービスacsIndexを削除します。

構文

deleteACS(acsIndex)
引数 定義
acsIndex [必須] 属性コンシューミング・サービスのインデックスを指定します。

この例では、deleteACSコマンドの使用方法を示します。
deleteACS(1)

37.5.3.2.10 deleteRqstAttrForACS

このコマンドは、リクエストされた属性rqstAttrNameを、指定された属性コンシューミング・サービスacsIndexから削除します。

説明

deleteRqstAttrForACSコマンドは、リクエストされた属性rqstAttrNameを、指定された属性コンシューミング・サービスacsIndexから削除します。

構文

deleteRqstAttrForACS(acsIndex, rqstAttrName)
引数 定義
acsIndex [必須] 属性コンシューミング・サービスのインデックスを指定します。
rqstAttrName [必須] リクエストされた属性の名前を指定します。

この例では、deleteRqstAttrForACSコマンドの使用方法を示します。
deleteRqstAttrForACS(1, rqstAttrName="empFirstName")