33.4 Oracle Identity Federationの暗号化設定

この章では、フェデレーションSSOの交換の制御に使用するOIFの暗号化構成プロパティについて説明します。

33.4.1 ハッシュ・アルゴリズム

Oracle Identity Federation (OIF)では、SHA-1ハッシュ・アルゴリズムまたはSHA-256ハッシュ・アルゴリズムで署名されたSAMLメッセージの消費と発行がサポートされています。

OIFではデフォルトで、送信メッセージの署名にSHA-1が使用されます。メッセージの署名方法は、使用されているバインディングに応じて異なります。
  • XMLデジタル署名には、HTTP-POSTまたはアーティファクト・バインディングが使用されています。
  • 問合せ署名には、HTTPリダイレクト・バインディングが使用されています。

33.4.2 SHA-1署名付きメッセージの例

HTTPリダイレクト・バインディングを介して送信される署名付きAuthnRequestメッセージの例は次のとおりです:
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
HTTP-POSTバインディングを介して送信されるSAML 2.0アサーションの例は次のとおりです:
<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署名付きメッセージの例

HTTPリダイレクト・バインディングを介して送信される署名付きAuthnRequestメッセージの例は次のとおりです:
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
HTTP-POSTバインディングを介して送信されるSAML 2.0アサーションの例は次のとおりです:
<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の構成

Oracle Identity Federation (OIF)を次のレベルで構成すると、SAML署名にSHA-1またはSHA-256を使用できます。
  • パートナ・レベル
  • パートナ・プロファイル・レベル(このプロファイルを参照するすべてのパートナは、SHA-1/SHA-256署名のパートナ・レベルで構成されていないかぎり影響を受けます)
次のWLSTコマンドを使用して、OIFで署名を計算する方法を構成します。
  1. WLST環境を入力します。
    $IAM_ORACLE_HOME/common/bin/wlst.sh
  2. WLS管理サーバーに接続します。
    connect()
  3. ドメイン・ランタイム・ブランチに移動します。
    domainRuntime()
  4. 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")
  5. 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)
SAML 1.1 IdPパートナ・プロファイル
  • sendsignedrequestsoap: アーティファクト/SOAPバインディングを介したSAML 1.1リクエスト(true)
SAML 1.1 SPパートナ・プロファイル
  • sendsignedassertion: SAML 1.1アサーション(true)
  • sendsignedresponseassertionpost: HTTP-POSTバインディングを介したアサーションを含むSAML 1.1レスポンス(false)
  • sendsignedresponseassertionsoap: アーティファクト/SOAPバインディングを介したアサーションを含むSAML 1.1レスポンス(false)
  • sendsignedresponsesoap: アーティファクト/SOAPバインディングを介したアサーションを含まないSAML 1.1レスポンス(true)
SAML 2.0 IdPパートナ・プロファイル
  • 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)
SAML 2.0 SPパートナ・プロファイル
  • 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の構成

OIFを構成して、送信SAML 2.0 AuthnRequestに次のレベルで署名するようにすることができます:
  • グローバル・レベル
  • IdPパートナ・プロファイル・レベル
  • IdPパートナ・レベル
  • パートナ・プロファイル・レベル
  • パートナ・レベル
次のステップを実行して、ドメイン・ランタイム・ブランチにアクセスします:
  1. WLST環境を入力します。
    $IAM_ORACLE_HOME/common/bin/wlst.sh
  2. WLS管理サーバーに接続します:
    connect()
  3. ドメイン・ランタイム・ブランチに移動します:
    domainRuntime()
ドメイン・ランタイム・ブランチにアクセスしたら、次のいずれかのコマンドを実行して、送信SAML 2.0 AuthnRequestに、適切なレベルで署名するようOIFを構成します。
  • グローバル・レベルで構成する手順:
    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プロパティに基づいて設定されます。
サンプルのSAML 2.0メタデータに、これら2つの属性を示しています:
<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)
SAML 1.1 IdPパートナ・プロファイル
  • requiresignedresponseassertionpost: HTTP-POSTバインディングを介したSAML 1.1レスポンス(false)
  • requiresignedresponseassertionsoap: アーティファクト/SOAPバインディングを介したSAML 1.1レスポンス(false)
SAML 1.1 SPパートナ・プロファイル
  • requiresignedrequestsoap: アーティファクト/SOAPバインディングを介したSAML 1.1リクエスト(false)
SAML 2.0 IdPパートナ・プロファイル
  • 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)
SAML 2.0 SPパートナ・プロファイル
  • 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の構成

OIFを構成して、送信SAML 2.0 AuthnRequestに次のレベルで署名するようにすることができます:
  • グローバル・レベル
  • IdPパートナ・プロファイル・レベル
  • IdPパートナ・レベル
  • パートナ・プロファイル・レベル
  • パートナ・レベル
次のステップを実行して、ドメイン・ランタイム・ブランチにアクセスします:
  1. WLST環境を入力します。
    $IAM_ORACLE_HOME/common/bin/wlst.sh
  2. WLS管理サーバーに接続します:
    connect()
  3. ドメイン・ランタイム・ブランチに移動します:
    domainRuntime()
ドメイン・ランタイム・ブランチにアクセスしたら、次のいずれかのコマンドを実行して、送信SAML 2.0 AuthnRequestに、適切なレベルで署名するようOIFを構成します。
  • グローバル・レベルで構成する手順:
    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アサーションの構成

ドメイン・ランタイム・ブランチにアクセスしたら、次のいずれかのコマンドを実行して、受信SAML 1.1アサーションに適切なレベルで署名するよう、あるいは署名しないようOIFを構成します。
  • グローバル・レベルで構成する手順:
    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アサーションの構成

ドメイン・ランタイム・ブランチにアクセスしたら、次のいずれかのコマンドを実行して、受信SAML 2.0アサーションに適切なレベルで署名するよう、あるいは署名しないようOIFを構成します。
  • グローバル・レベルで構成する手順:
    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プロパティに基づいて設定されます。
サンプルのSAML 2.0メタデータに、これら2つの属性を示しています:
<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ブール・プロパティは、メッセージに証明書を追加するかどうかを示します。

OIFで送信メッセージにX.509署名証明書を送信するには、次のいずれかのコマンドを実行して、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暗号化の管理

SAML 2.0では、メッセージ内の次のデータを暗号化できます:
  • アサーション
  • NameID
  • 属性

OIFでは、暗号化するデータのタイプを管理者が指定できます。

33.4.8.1 送信SAMLメッセージを暗号化するOOTB構成

次のOOTBブール値は、どのような場合にOIFで送信SAMLメッセージを暗号化する必要があるかを示しています(trueに設定すると、OIFによりデータが暗号化されます):
  • SAML 2.0 IdPパートナ・プロファイル
  • sendencryptednameid: LogoutRequestメッセージに含まれるNameIDの暗号化が必要かどうかを示します(false)
  • SAML 2.0 SPパートナ・プロファイル
  • sendencryptedattribute: SAMLアサーションに含まれる各属性の暗号化が必要かどうかを示します(false)
  • sendencryptednameid: LogoutRequestアサーション・メッセージに含まれるNameIDの暗号化が必要かどうかを示します(false)
新しいSPパートナを作成する際は、そのパートナの構成で、OIF/IdPによるアサーションの暗号化が必要ないことを指定します:
  • パートナ・エントリのsendencryptedassertion: アサーションの暗号化が必要かどうかを示します(false)

33.4.8.2 送信アサーションの暗号化

次のステップを実行して、OAM管理コンソールから、SPパートナの送信アサーションを暗号化するようOIF/IdPを構成します:
  1. OAM管理コンソールhttps://oam-admin-host:oam-adminport/oamconsoleにログインします。
  2. 「Identity Federation」「アイデンティティ・プロバイダ管理」に移動します。
  3. SPパートナを開きます。
  4. 「詳細設定」セクションで、「アサーションの暗号化」チェック・ボックスを選択します。
  5. 「保存」をクリックします。
WLSTを使用してSPパートナを構成するには、次のステップを実行します:
  1. WLST環境を入力します。
    $IAM_ORACLE_HOME/common/bin/wlst.sh
  2. WLS管理サーバーに接続します:
    connect()
  3. ドメイン・ランタイム・ブランチに移動します:
    domainRuntime()
  4. updatePartnerProperty()コマンドを実行します:
    updatePartnerProperty("PARTNER", "sp", "sendencryptedassertion", "true/false", "boolean")

    PARTNERは、パートナ名で置き換えます。

    値をtrueまたはfalseに設定します。

    例は次のとおりです。
    updatePartnerProperty("AcmeSP", "sp", "sendencryptedassertion", "true", "boolean")
  5. WLST環境を終了します:
    exit()

33.4.8.3 NameIDおよび属性プロパティの構成

プロパティを構成するには、次のステップを実行します:
  1. WLST環境を入力します。
    $IAM_ORACLE_HOME/common/bin/wlst.sh
  2. WLS管理サーバーに接続します:
    connect()
  3. ドメイン・ランタイム・ブランチに移動します:
    domainRuntime()
  4. パートナ・プロファイル・レベルで構成するには、次のようにします:
    putBooleanProperty("/fedpartnerprofiles/PARTNER_PROFILE/PROPERTY_NAME", "true/false")

    PARTNER_PROFILEは、パートナ・プロファイル名で置き換えます。

    PROPERTY_NAMEは、設定するプロパティ名で置き換えます。

    値をtrueまたはfalseに設定します。

    例は次のとおりです。
    putBooleanProperty("/fedpartnerprofiles/saml20-sp-partner-profile/sendencryptedaSribute", "true")
  5. パートナ・レベルで構成するには、次のようにします:
    updatePartnerProperty("PARTNER", "PARTNER_TYPE", "PROPERTY_NAME", "true/false", "boolean")

    PARTNERは、パートナ名で置き換えます。

    PARTNER_TYPEを指定されたパートナのタイプ(IdPまたはSP)に置き換えます。

    PROPERTY_NAMEは、設定するプロパティ名で置き換えます。

    値をtrueまたはfalseに設定します。

    例は次のとおりです。
    updatePartnerProperty("AcmeSP", "sp", "sendencryptedaSribute", "true", "boolean")
  6. 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)に設定されます。

defaultencryptionmethodプロパティを構成するには、次のステップを実行します:
  1. 次を実行して、WLST環境に入ります:
    $IAM_ORACLE_HOME/common/bin/wlst.sh
  2. WLS管理サーバーに接続します:
    connect()
  3. ドメイン・ランタイム・ブランチに移動します:
    domainRuntime()
  4. パートナ・プロファイル・レベルで構成するには、次のようにします:
    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")
  5. パートナ・レベルで構成するには、次のようにします:
    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")
  6. WLST環境を終了します:
    exit()