33.4 Oracle Identity Federationの暗号化設定
この章では、フェデレーションSSOの交換の制御に使用するOIFの暗号化構成プロパティについて説明します。
33.4.1 ハッシュ・アルゴリズム
Oracle Identity Federation (OIF)では、SHA-1ハッシュ・アルゴリズムまたはSHA-256ハッシュ・アルゴリズムで署名されたSAMLメッセージの消費と発行がサポートされています。
- XMLデジタル署名には、HTTP-POSTまたはアーティファクト・バインディングが使用されています。
- 問合せ署名には、HTTPリダイレクト・バインディングが使用されています。
33.4.2 SHA-1署名付きメッセージの例
https://acme.com/idp/saml20?SAMLRequest=hVPLbtswEPwVgT1LpB6tY8JyoNZ1q9ZujVgJ3N4Yio5ZSKTMpaz470v5ESQB4gA8LWZ2ZnaXo%2BvHuvJ2woDUKkVhQJAnFNelVA8pui2m%2FhXywDJVskorkaK9AHQ9HgGrq4Zmrd2oG7FtBVjPNVJAS5COuLG2oRh3XRd0caDNA44IIZgMsUP1kA%%2B%2FruIoOPN0IOU8aba1MxeDtpXXKj1AeoOxUq7R%2BMX0py%2Fko5iQiKsWd3rj%2FAzyfPN%2FnJd88lCV5Lv37URBuFrGzWTVVaWRgAgL6sq3X0xgln3NaxpBcLjo%2BrLzzH%2BDw%3D%3D&RelayState=id-AkgTE5PMRAZTaKRcZHT-2rIse-oPhCxyI00Xycbf&SigAlg=hSp%3A%2F%2Fwww.w3.org%2F2000%2F09%2Fxmldsig%23rsa-sha1&Signature=rjZFsFuaFKv77JbspdDwT2wGV366iL3zvWc%2B1aybu%2FW%2BpFwLOfTJBtVsKfwJre1nGCU5SEvFD%2FBBURkxOG1KhR3k%2FrOw%2Bj7g7RlHfSaHKaAO3p6aAGQYPCpz%2Fd0%2BKArDAL%2FDNoH46G6Pnf7VWSb6a2COUiTV6118KaPbexrnJtE
<samlp:Response ...<samlp:Response ...>
<saml:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">...
</saml:Issuer>
<samlp:Status><samlp:StatusCode
Value="urn:oasis:names:tc:SAML:2.0:status:Success"/></samlp:Status>
<saml:Assertion ID="id-BgLUimKUWYyS3JQbf2geeP9EwS-eGKxOPTuPvxgJ" ...>
<saml:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">...
</saml:Issuer>
<dsig:Signature>
<dsig:SignedInfo>
<dsig:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-excc14n#"/>
<dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsasha1"/>
<dsig:Reference URI="#id-BgLUimKUWYyS3JQbf2geeP9EwS-eGKxOPTuPvxgJ">
<dsig:Transforms>
<dsig:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#envelopedsignature"/>
<dsig:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<dsig:DigestValue>uS85cIFf4z9KcHH/z60fNRPLoyo=</dsig:DigestValue>
</dsig:Reference>
</dsig:SignedInfo>
<dsig:SignatureValue>NiTyPtOEjyG...SpVjbhKxY=</dsig:SignatureValue>
</dsig:Signature>
<saml:Subject>
...
</saml:Subject>
<saml:Conditions ...>
...
</saml:Conditions>
<saml:AuthnStatement ...>
...
</saml:AuthnStatement>
</saml:Assertion>
</samlp:Response>
33.4.3 SHA-256署名付きメッセージの例
https://acme.com/idp/saml20?SAMLRequest=hVNdb9owFP0rkfec%2BCbAVixClY2hIdGWDui6vhnbFEuOndoOKfv1c%2Fio2kqlkp%2BuzrnnnHuvB5fPpYq2wjppdI7SBFAkNDNc6sccLRfj%2BAJFzlPNqTJa5GgnHLocDhwtVUWK2m%2F0b%2FFUC%2Bej0Eg7wp0MxI33FcG4aZqk6STGPuIMADD0c%2F%2FFLDswb9bFN2dNp61G584V4vJ3o4PJUi7MYTXWaRd0vtKoP%2BAolHYsdTU71nHbJQzgEo8JbULASlTImGmJN%2B6%2FT5eC44lr3A7%2F20G6HAzZC9lo7GxJfXng7aVEGq9h4ZD8dLv0PCNNGPvpLMOQIYNLVv9AX4lebrZ69B1MpoZJdnuUxtpkr63UVKpCs6tcA5FhVKmRelayState=id-BiQreMi9cMY3oFI9PKMNKtuOjpuFS2PrW4R8KKvd&SigAlg=hSp%3A%2F%2Fwww.w3.org%2F2001%2F04%2Fxmldsig-more%23rsa-sha256&Signature=PvyMUD%2FKXnCc0drlN1pvoK171znJkajEHLgtzE4I7YFQIvP4wp3M%2FV7y08x0Qkv0jwo9K4VBG%2BQUBFtXr41ZDp%2BHOb7GlmaY973n7X2UDlbUbVlrJX%2FqS1GyyNY6MSMcO5K0J7VJcQXf8CvGEcVHr%2FZhPjihnAO2vi%2Bej3fbfgo%3D
<samlp:Response ...<samlp:Response ...>
<saml:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">...
</saml:Issuer>
<samlp:Status><samlp:StatusCode
Value="urn:oasis:names:tc:SAML:2.0:status:Success"/></samlp:Status>
<saml:Assertion ID="id-5B4KZ-PeUzikxtC-Cr9g6uFQ-muwj3ZmC4PUW4wT" ...>
<saml:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">...
</saml:Issuer>
<dsig:Signature>
<dsig:SignedInfo>
<dsig:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-excc14n#"/>
<dsig:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsasha256"/>
<dsig:Reference URI="#id-5B4KZ-PeUzikxtC-Cr9g6uFQ-muwj3ZmC4PUW4wT">
<dsig:Transforms>
<dsig:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#envelopedsignature"/>
<dsig:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
<dsig:DigestValue>Ppx/...L9ooHtsvgxvI=</dsig:DigestValue>
</dsig:Reference>
</dsig:SignedInfo>
<dsig:SignatureValue>G6yppQXy...SzHz2oa+zA=</dsig:SignatureValue>
</dsig:Signature>
<saml:Subject>
...
</saml:Subject>
<saml:Conditions ...>
...
</saml:Conditions>
<saml:AuthnStatement ...>
...
</saml:AuthnStatement>
</saml:Assertion>
</samlp:Response>
33.4.4 SHA-1またはSHA-256ハッシュ・アルゴリズムを使用するためのOIFの構成
- パートナ・レベル
- パートナ・プロファイル・レベル(このプロファイルを参照するすべてのパートナは、SHA-1/SHA-256署名のパートナ・レベルで構成されていないかぎり影響を受けます)
- WLST環境を入力します。
$IAM_ORACLE_HOME/common/bin/wlst.sh
- WLS管理サーバーに接続します。
connect()
- ドメイン・ランタイム・ブランチに移動します。
domainRuntime()
configureFedDigitalSignature()
コマンドを実行します。configureFedDigitalSignature(partner="", partnerProfile="", partnerType="", default="false", algorithm="SHA-256", displayOnly="false", delete="false")
次のパラメータを設定できます。partner
: 特定のパートナを構成しますpartnerProfile
: 特定のパートナ・プロファイルを構成しますpartnerType
: パートナ/パートナ・プロファイルのタイプ(idpまたはsp)を示しますalgorithm
: 使用するハッシュ・アルゴリズム(SHA-1またはSHA-256)を示しますdisplayOnly
: このパートナ/パートナ・プロファイルを設定するかわりに、コマンドでこのパートナ/パートナ・プロファイルの設定を表示するかどうかを示します。trueに設定すると、このコマンドによる構成(trueまたはfalse)の変更は行われませんdelete
: このパートナ/パートナ・プロファイルを設定するかわりに、コマンドでこのパートナ/パートナ・プロファイルの設定を削除するかどうかを示します。trueに設定すると、このコマンドにより構成が削除され、親構成(パートナ・プロファイルまたはグローバルのtrueあるいはfalse)が使用されます
例は次のとおりです。configureFedDigitalSignature(partner="AcmeIdP", partnerType="idp", algorithm="SHA-256")
- WLST環境を終了します。
exit()
33.4.5 送信メッセージの署名
- 送信SAMLメッセージの即時利用可能な(OOTB)ブール設定
- SAML 2.0 AuthnRequest (異なるレベル)
- SP/IPパートナ・プロファイルで定義されたプロパティ
33.4.5.1 送信SAMLメッセージのOOTB構成
次に示すのは、即時利用可能(OOTB)なブール設定で、どのような場合にOIFが送信SAMLメッセージに署名する必要があるかを示しています(trueに設定すると、OIFによる送信メッセージへの署名が行われます)。
saml20sendsignedauthnrequest
: SAML 2.0 AuthnRequest (true)
sendsignedrequestsoap
: アーティファクト/SOAPバインディングを介したSAML 1.1リクエスト(true)
sendsignedassertion
: SAML 1.1アサーション(true)sendsignedresponseassertionpost
: HTTP-POSTバインディングを介したアサーションを含むSAML 1.1レスポンス(false)sendsignedresponseassertionsoap
: アーティファクト/SOAPバインディングを介したアサーションを含むSAML 1.1レスポンス(false)sendsignedresponsesoap
: アーティファクト/SOAPバインディングを介したアサーションを含まないSAML 1.1レスポンス(true)
sendsignedrequestpost
: HTTP-POSTバインディングを介したSAML 2.0リクエスト(true)sendsignedrequestquery
: HTTPリダイレクト・バインディングを介したSAML 2.0リクエスト(true)sendsignedrequestsoap
: アーティファクト/SOAPバインディングを介したSAML 2.0リクエスト(true)sendsignedresponsepost
: HTTP-POSTバインディングを介したアサーションを含まないSAML 2.0レスポンス(true)sendsignedresponsequery
: HTTPリダイレクト・バインディングを介したアサーションを含まないSAML 2.0レスポンス(true)sendsignedresponsesoap
: アーティファクト/SOAPバインディングを介したアサーションを含まないSAML 2.0レスポンス(true)
sendsignedassertion
: SAML 2.0アサーション(true)sendsignedrequestpost
: HTTP-POSTバインディングを介したSAML 2.0リクエスト(true)sendsignedrequestquery
: HTTPリダイレクト・バインディングを介したSAML 2.0リクエスト(true)sendsignedrequestsoap
: アーティファクト/SOAPバインディングを介したSAML 2.0リクエスト(true)sendsignedresponseassertionpost
: HTTP-POSTバインディングを介したアサーションを含むSAML 2.0レスポンス(false)sendsignedresponseassertionsoap
: アーティファクト/SOAPバインディングを介したアサーションを含むSAML 2.0レスポンス(false)sendsignedresponsepost
: HTTP-POSTバインディングを介したアサーションを含まないSAML 2.0レスポンス(true)sendsignedresponsequery
: HTTPリダイレクト・バインディングを介したアサーションを含まないSAML 2.0レスポンス(true)sendsignedresponsesoap
: アーティファクト/SOAPバインディングを介したアサーションを含まないSAML 2.0レスポンス(true)
33.4.5.2 SAML 2.0 AuthnRequestの構成
- グローバル・レベル
- IdPパートナ・プロファイル・レベル
- IdPパートナ・レベル
- パートナ・プロファイル・レベル
- パートナ・レベル
- WLST環境を入力します。
$IAM_ORACLE_HOME/common/bin/wlst.sh
- WLS管理サーバーに接続します:
connect()
- ドメイン・ランタイム・ブランチに移動します:
domainRuntime()
- グローバル・レベルで構成する手順:
putBooleanProperty("/spglobal/saml20sendsignedauthnrequest", "true/false")
値をtrueに設定すると、OIFが送信AuthnRequestに署名します。
例は次のとおりです。putBooleanProperty("/spglobal/saml20sendsignedauthnrequest", "true")
- パートナ・プロファイル・レベルでSAML 2.0 IdPを構成する手順:
putBooleanProperty("/fedpartnerprofiles/PARTNER_PROFILE/sendsignedauthnrequest", "true/false")
PARTNER_PROFILE
は、SAML 2.0 IdPパートナ・プロファイル名で置き換えます。値をtrueに設定すると、OIFが送信AuthnRequestに署名します。
例は次のとおりです。putBooleanProperty("/fedpartnerprofiles/saml20-idp-partner-profile/sendsignedauthnrequest", "true")
- SAML 2.0をIdPパートナ・レベルで構成する手順:
updatePartnerProperty("PARTNER", "idp", "sendsignedauthnrequest", "true/false", "boolean")
PARTNER
は、SAML 2.0 IdPパートナ名で置き換えます。値をtrueに設定すると、OIFが送信AuthnRequestに署名します。
例は次のとおりです。updatePartnerProperty("AcmeIdP", "idp", "sendsignedauthnrequest", "false", "boolean")
- パートナ・プロファイル・レベルで構成する手順:
putBooleanProperty("/fedpartnerprofiles/PARTNER_PROFILE/PROPERTY_NAME", "true/false")
PARTNER_PROFILE
は、パートナ・プロファイル名で置き換えます。PROPERTY_NAME
をプロパティの名前で置き換えて、値をtrueまたはfalseに設定します。例は次のとおりです。putBooleanProperty("/fedpartnerprofiles/saml20-idp-partner-profile/sendsignedrequestquery", "true")
- パートナ・レベルで構成する手順:
updatePartnerProperty("PARTNER", "PARTNER_TYPE", "PROPERTY_NAME","true/false", "boolean")
PARTNER
は、パートナ名で置き換えます。PARTNER_TYPE
を指定されたパートナのタイプ(IdPまたはSP)に置き換えます。PROPERTY_NAME
をプロパティの名前で置き換えて、値をtrueまたはfalseに設定します。例は次のとおりです。updatePartnerProperty("AcmeSP", "sp", "sendsignedrequestquery", "true","boolean")
33.4.5.3 SAML 2.0メタデータの変更
saml20sendsignedauthnrequest
プロパティを変更すると、OIFで生成されたSAML 2.0メタデータの次の属性が変更されます。
-
SPSSODescriptor
要素のAuthnRequestsSigned
属性は、saml20sendsignedauthnrequest
プロパティに基づいて設定されます。
<md:EntityDescriptor ...>
<dsig:Signature>
...
</dsig:Signature>
<md:IDPSSODescriptor WantAuthnRequestsSigned="false" ...>
...
</md:IDPSSODescriptor>
<md:SPSSODescriptor AuthnRequestsSigned="true" WantAssertionsSigned="true"
...>
</md:SPSSODescriptor>
</md:EntityDescriptor>
33.4.6 受信メッセージの署名
- 受信SAMLメッセージのOOTBブール設定
- SAML 2.0 AuthnRequest (異なるレベル)
- SAML 1.1アサーション(異なるレベル)
- SAML 2.0アサーション(異なるレベル)
- SP/IPパートナ・プロファイルで定義されたプロパティ
33.4.6.1 受信SAMLメッセージのOOTBブール設定
次に示すのは、即時利用可能(OOTB)なブール設定で、どのような場合にOIFで受信SAMLメッセージが必要になるかを示しています(trueに設定すると、OIFで受信メッセージが必要になります)。
saml20requiresignedauthnrequest
: SAML 2.0 AuthnRequest (false)saml11requiresignedassertion
: レスポンス・メッセージに含まれるSAML 1.1アサーション(true)saml20requiresignedassertion
: レスポンス・メッセージに含まれるSAML 2.0アサーション(true)
requiresignedresponseassertionpost
: HTTP-POSTバインディングを介したSAML 1.1レスポンス(false)requiresignedresponseassertionsoap
: アーティファクト/SOAPバインディングを介したSAML 1.1レスポンス(false)
requiresignedrequestsoap
: アーティファクト/SOAPバインディングを介したSAML 1.1リクエスト(false)
requiresignedrequestpost
: HTTP-POSTバインディングを介したSAML 2.0リクエスト(false)requiresignedrequestquery
: HTTPリダイレクト・バインディングを介したSAML 2.0リクエスト(false)requiresignedrequestsoap
: アーティファクト/SOAPバインディングを介したSAML 2.0リクエスト(false)requiresignedresponseassertionpost
: HTTP-POSTバインディングを介したアサーションを含むSAML 2.0レスポンス(false)requiresignedresponseassertionsoap
: アーティファクト/SOAPバインディングを介したアサーションを含むSAML 2.0レスポンス(false)requiresignedresponsepost
: HTTP-POSTバインディングを介したアサーションを含まないSAML 2.0レスポンス(false)requiresignedresponsequery
: HTTPリダイレクト・バインディングを介したアサーションを含まないSAML 2.0レスポンス(false)requiresignedresponsesoap
: アーティファクト/SOAPバインディングを介したアサーションを含まないSAML 2.0レスポンス(false)
requiresignedrequestpost
: HTTP-POSTバインディングを介したSAML 2.0リクエスト(false)requiresignedrequestquery
: HTTPリダイレクト・バインディングを介したSAML 2.0リクエスト(false)requiresignedrequestsoap
: アーティファクト/SOAPバインディングを介したSAML 2.0リクエスト(false)requiresignedresponsepost
: HTTP-POSTバインディングを介したアサーションを含まないSAML 2.0レスポンス(false)requiresignedresponsequery
: HTTPリダイレクト・バインディングを介したアサーションを含まないSAML 2.0レスポンス(false)requiresignedresponsesoap
: アーティファクト/SOAPバインディングを介したアサーションを含まないSAML 2.0レスポンス(false)
ノート:
受信メッセージが署名されていると、そのタイプのメッセージの署名が必要ない場合でも、OIFではメッセージの検証が行われ、署名検証に失敗するとエラーが返されます。33.4.6.2 SAML 2.0 AuthnRequestの構成
- グローバル・レベル
- IdPパートナ・プロファイル・レベル
- IdPパートナ・レベル
- パートナ・プロファイル・レベル
- パートナ・レベル
- WLST環境を入力します。
$IAM_ORACLE_HOME/common/bin/wlst.sh
- WLS管理サーバーに接続します:
connect()
- ドメイン・ランタイム・ブランチに移動します:
domainRuntime()
- グローバル・レベルで構成する手順:
putBooleanProperty("/spglobal/saml20sendsignedauthnrequest", "true/false")
値をtrueに設定すると、OIFが送信AuthnRequestに署名します。
例は次のとおりです。putBooleanProperty("/spglobal/saml20sendsignedauthnrequest", "true")
- パートナ・プロファイル・レベルでSAML 2.0 IdPを構成する手順:
putBooleanProperty("/fedpartnerprofiles/PARTNER_PROFILE/sendsignedauthnrequest", "true/false")
PARTNER_PROFILE
は、SAML 2.0 IdPパートナ・プロファイル名で置き換えます。値をtrueに設定すると、OIFが送信AuthnRequestに署名します。
例は次のとおりです。putBooleanProperty("/fedpartnerprofiles/saml20-idp-partner-profile/sendsignedauthnrequest", "true")
- SAML 2.0をIdPパートナ・レベルで構成する手順:
updatePartnerProperty("PARTNER", "idp", "sendsignedauthnrequest", "true/false", "boolean")
PARTNER
は、SAML 2.0 IdPパートナ名で置き換えます。値をtrueに設定すると、OIFが送信AuthnRequestに署名します。
例は次のとおりです。updatePartnerProperty("AcmeIdP", "idp", "sendsignedauthnrequest", "false", "boolean")
- パートナ・プロファイル・レベルで構成する手順:
putBooleanProperty("/fedpartnerprofiles/PARTNER_PROFILE/PROPERTY_NAME", "true/false")
PARTNER_PROFILE
は、パートナ・プロファイル名で置き換えます。PROPERTY_NAME
をプロパティの名前で置き換えて、値をtrueまたはfalseに設定します。例は次のとおりです。putBooleanProperty("/fedpartnerprofiles/saml20-idp-partner-profile/sendsignedrequestquery", "true")
- パートナ・レベルで構成する手順:
updatePartnerProperty("PARTNER", "PARTNER_TYPE", "PROPERTY_NAME","true/false", "boolean")
PARTNER
は、パートナ名で置き換えます。PARTNER_TYPE
を指定されたパートナのタイプ(IdPまたはSP)に置き換えます。PROPERTY_NAME
をプロパティの名前で置き換えて、値をtrueまたはfalseに設定します。例は次のとおりです。updatePartnerProperty("AcmeSP", "sp", "sendsignedrequestquery", "true","boolean")
33.4.6.3 受信メッセージのSAML 1.1アサーションの構成
- グローバル・レベルで構成する手順:
putBooleanProperty("/spglobal/saml11requiresignedassertion", "true/false")
値をtrueに設定すると、OIFは、受信SAML 1.1アサーションへの署名を必要とします。
例は次のとおりです。putBooleanProperty("/spglobal/saml11requiresignedassertion", "true")
- SAML 1.1 IdPパートナ・プロファイル・レベルで構成する手順:
putBooleanProperty("/fedpartnerprofiles/PARTNER_PROFILE/requiresignedassertion", "true/false")
PARTNER_PROFILE
は、SAML 1.1 IdPパートナ・プロファイル名で置き換えます。値をtrueに設定すると、OIFは、受信SAML 1.1アサーションへの署名を必要とします。
例は次のとおりです。putBooleanProperty("/fedpartnerprofiles/saml11-idp-partner-profile/requiresignedassertion", "true")
- SAML 1.1 IdPパートナ・レベルで構成する手順:
updatePartnerProperty("PARTNER", "idp", "requiresignedassertion", "true/false", "boolean")
PARTNER
は、SAML 1.1 IdPパートナ名で置き換えます。値をtrueに設定すると、OIFは、受信SAML 1.1アサーションへの署名を必要とします。
例は次のとおりです。updatePartnerProperty("AcmeSP", "sp", "requiresignedassertion", "false", "boolean")
33.4.6.4 受信メッセージのSAML 2.0アサーションの構成
- グローバル・レベルで構成する手順:
putBooleanProperty("/spglobal/saml20requiresignedassertion", "true/false")
値をtrueに設定すると、OIFは、受信SAML 2.0アサーションへの署名を必要とします。
例は次のとおりです。putBooleanProperty("/spglobal/saml20requiresignedassertion", "true")
- SAML 2.0 IdPパートナ・プロファイル・レベルで構成する手順:
putBooleanProperty("/fedpartnerprofiles/PARTNER_PROFILE/requiresignedassertion", "true/false")
PARTNER_PROFILE
は、SAML 2.0 IdPパートナ・プロファイル名で置き換えます。値をtrueに設定すると、OIFは、受信SAML 2.0アサーションへの署名を必要とします。
例は次のとおりです。putBooleanProperty("/fedpartnerprofiles/saml20-idp-partner-profile/requiresignedassertion", "true")
- SAML 2.0 IdPパートナ・レベルで構成する手順:
updatePartnerProperty("PARTNER", "idp", "requiresignedassertion", "true/false", "boolean")
PARTNER
は、SAML 2.0 IdPパートナ名で置き換えます。値をtrueに設定すると、OIFは、受信SAML 2.0アサーションへの署名を必要とします。
例は次のとおりです。updatePartnerProperty("AcmeSP", "sp", "requiresignedassertion", "false", "boolean")
33.4.6.5 受信メッセージのSAML 2.0メタデータの変更
saml20requiresignedauthnrequest
またはsaml20requiresignedassertion
プロパティを変更すると、OIFで生成されたSAML 2.0メタデータの次の属性が変更されます。
IDPSSODescriptor
要素のWantAuthnRequestsSigned
属性は、saml20requiresignedauthnrequest
プロパティに基づいて設定されます。SPSSODescriptor
要素のWantAssertionsSigned
属性は、saml20requiresignedassertion
プロパティに基づいて設定されます。
<md:EntityDescriptor ...>
<dsig:Signature>
...
</dsig:Signature>
<md:IDPSSODescriptor WantAuthnRequestsSigned="false" ...>
...
</md:IDPSSODescriptor>
<md:SPSSODescriptor AuthnRequestsSigned="true" WantAssertionsSigned="true"
...>
</md:SPSSODescriptor>
</md:EntityDescriptor>
33.4.7 送信メッセージのX.509証明書の構成
OIFは、HTTP-POSTまたはSOAPバインディングを介して送信される送信XML SAMLメッセージに、X.509署名証明書を送信するよう構成できます。
includecertinsignature
ブール・プロパティは、メッセージに証明書を追加するかどうかを示します。
includecertinsignature
ブール・プロパティを設定します。
- パートナ・プロファイル・レベルで構成する手順:
putBooleanProperty("/fedpartnerprofiles/PARTNER_PROFILE/includecertinsignature", "true/false")
PARTNER_PROFILE
は、パートナ・プロファイル名で置き換えます。値をtrueまたはfalseに設定します。
例は次のとおりです。putBooleanProperty("/fedpartnerprofiles/saml20-sp-partner-profile/includecertinsignature", "true")
- パートナ・レベルで構成する手順:
updatePartnerProperty("PARTNER", "PARTNER_TYPE", "includecertinsignature", "true/false", "boolean")
PARTNER
は、パートナ名で置き換えます。PARTNER_TYPE
を指定されたパートナのタイプ(IdPまたはSP)に置き換えます。値をtrueまたはfalseに設定します。
例は次のとおりです。updatePartnerProperty("AcmeSP", "sp", "includecertinsignature", "true", "boolean")
33.4.8 SAML 2.0暗号化の管理
- アサーション
- NameID
- 属性
OIFでは、暗号化するデータのタイプを管理者が指定できます。
33.4.8.1 送信SAMLメッセージを暗号化するOOTB構成
- SAML 2.0 IdPパートナ・プロファイル
sendencryptednameid
:LogoutRequest
メッセージに含まれるNameID
の暗号化が必要かどうかを示します(false)- SAML 2.0 SPパートナ・プロファイル
sendencryptedattribute
: SAMLアサーションに含まれる各属性の暗号化が必要かどうかを示します(false)sendencryptednameid
:LogoutRequest
アサーション・メッセージに含まれるNameID
の暗号化が必要かどうかを示します(false)
- パートナ・エントリの
sendencryptedassertion
: アサーションの暗号化が必要かどうかを示します(false)
33.4.8.2 送信アサーションの暗号化
- OAM管理コンソール
https://oam-admin-host:oam-adminport/oamconsole
にログインします。 - 「Identity Federation」、「アイデンティティ・プロバイダ管理」に移動します。
- SPパートナを開きます。
- 「詳細設定」セクションで、
「アサーションの暗号化」
チェック・ボックスを選択します。 - 「保存」をクリックします。
- WLST環境を入力します。
$IAM_ORACLE_HOME/common/bin/wlst.sh
- WLS管理サーバーに接続します:
connect()
- ドメイン・ランタイム・ブランチに移動します:
domainRuntime()
updatePartnerProperty()
コマンドを実行します:updatePartnerProperty("PARTNER", "sp", "sendencryptedassertion", "true/false", "boolean")
PARTNER
は、パートナ名で置き換えます。値をtrueまたはfalseに設定します。
例は次のとおりです。updatePartnerProperty("AcmeSP", "sp", "sendencryptedassertion", "true", "boolean")
- WLST環境を終了します:
exit()
33.4.8.3 NameIDおよび属性プロパティの構成
- WLST環境を入力します。
$IAM_ORACLE_HOME/common/bin/wlst.sh
- WLS管理サーバーに接続します:
connect()
- ドメイン・ランタイム・ブランチに移動します:
domainRuntime()
- パートナ・プロファイル・レベルで構成するには、次のようにします:
putBooleanProperty("/fedpartnerprofiles/PARTNER_PROFILE/PROPERTY_NAME", "true/false")
PARTNER_PROFILE
は、パートナ・プロファイル名で置き換えます。PROPERTY_NAMEは、設定するプロパティ名で置き換えます。
値をtrueまたはfalseに設定します。
例は次のとおりです。putBooleanProperty("/fedpartnerprofiles/saml20-sp-partner-profile/sendencryptedaSribute", "true")
- パートナ・レベルで構成するには、次のようにします:
updatePartnerProperty("PARTNER", "PARTNER_TYPE", "PROPERTY_NAME", "true/false", "boolean")
PARTNER
は、パートナ名で置き換えます。PARTNER_TYPE
を指定されたパートナのタイプ(IdPまたはSP)に置き換えます。PROPERTY_NAME
は、設定するプロパティ名で置き換えます。値をtrueまたはfalseに設定します。
例は次のとおりです。updatePartnerProperty("AcmeSP", "sp", "sendencryptedaSribute", "true", "boolean")
- WLST環境を終了します:
exit()
33.4.9 暗号化アルゴリズム
defaultencryptionmethod
文字列プロパティを次のいずれかの値に設定することで、暗号化アルゴリズムを定義できます:
http://www.w3.org/2001/04/xmlenc#aes128-cbc
(AES-128 CBCの場合)http://www.w3.org/2001/04/xmlenc#aes192-cbc
(AES-192 CBCの場合)http://www.w3.org/2001/04/xmlenc#aes256-cbc
(AES-256 CBCの場合)http://www.w3.org/2001/04/xmlenc#tripledes-cbc
(3DES CBCの場合)
デフォルトでは、このプロパティは、http://www.w3.org/2001/04/xmlenc#aes128-cbc
(AES-128 CBC)に設定されます。
- 次を実行して、WLST環境に入ります:
$IAM_ORACLE_HOME/common/bin/wlst.sh
- WLS管理サーバーに接続します:
connect()
- ドメイン・ランタイム・ブランチに移動します:
domainRuntime()
- パートナ・プロファイル・レベルで構成するには、次のようにします:
putStringProperty("/fedpartnerprofiles/PARTNER_PROFILE/defaultencryptionmethod", "ALGORITHM")
PARTNER_PROFILE
は、パートナ・プロファイル名で置き換えます。ALGORITHM
は、前述のアルゴリズム値のいずれかに置き換えます。例は次のとおりです。putStringProperty("/fedpartnerprofiles/saml20-sp-partner-profile/defaultencryptionmethod", "http://www.w3.org/2001/04/xmlenc#tripledes-cbc")
- パートナ・レベルで構成するには、次のようにします:
updatePartnerProperty("PARTNER", "PARTNER_TYPE", "defaultencryptionmethod", "ALGORITHM", "string")
PARTNER
は、パートナ名で置き換えます。PARTNER_TYPE
を指定されたパートナのタイプ(IdPまたはSP)に置き換えます。ALGORITHM
は、前述のアルゴリズム値のいずれかに置き換えます。例は次のとおりです。updatePartnerProperty("AcmeSP", "sp", "defaultencryptionmethod", "http://www.w3.org/2001/04/xmlenc#tripledes-cbc", "string")
- WLST環境を終了します:
exit()