Definições de Criptografia no OAM
Este artigo aborda as várias propriedades de configuração de criptografia no OAM que são usadas para afetar as trocas de SSO da Federação, incluindo:
-
Algoritmo de hash usado para assinaturas
-
SHA-1
-
SHA-256
-
Quais mensagens SAML de saída são assinadas
-
Quais mensagens SAML de entrada precisam ser assinadas
-
Se o certificado de assinatura X.509 deve ou não ser incluído na mensagem XML assinada de saída
-
Se criptografar ou não mensagens SAML 2.0:
-
Asserção
-
NameID
-
Atributo
Algoritmos de Hash
O OAM suporta o consumo e a emissão de mensagens SAML assinadas com
-
O algoritmo de hash SHA-1
-
Ou o algoritmo de hash SHA-256
Por padrão, o OAM usa SHA-1 ao assinar mensagens de saída.
As mensagens são assinadas de maneira diferente, com base no binding que está sendo usado:
-
Assinaturas Digitais XML quando associações HTTP-POST ou Artefato são usadas
-
Consultar assinaturas quando o binding HTTP-Redirect for usado
SHA-1
Um exemplo de mensagem AuthnRequest assinada enviada por meio do binding HTTP-Redirect é:
https://acme.com/idp/saml20?SAMLRequest=hVPLbtswEPwVgT1LpB6tY8JyoNZ1q9ZujVgJ3N4Yio5ZSKTMpaz470v5ESQB4gA8LWZ2ZnaXo%2BvHuvJ2woDUKkVhQJAnFNelVA8pui2m%2FhXywDJVskorkaK9AHQ9HgGrq4Zmrd2oG7FtBVjPNVJAS5COuLG2oRh3XRd0ca%2B%2FruIoOPN0IOU8aba1MxeDtpXXKj1AeoOxUq7R%2BMX0py%2Fko5iQiKsWd3rj%2FAzyfPN%2FnJd88lCV5Lv37URBuFrGzWTVVaWRgAgL6sq3X0xgln3NaxpBcLjo%2BrLzzH%2BDw%3D%3D&RelayState=id-AkgTE5PMRAZTaKRcZHT-2rIse-oPhCxyI00Xycbf&SigAlg=http%3A%2F%2Fwww.w3.org%2F2000%2F09%2Fxmldsig%23rsa-sha1&Signature=rjZFsFuaFKv77JbspdDwT2wGV366iL3zvWc%2B1aybu%2FW%2BpFwLOfTJBtVsKfwJre1nGCU5SEvFD%2FBBURkxOG1KhR3k%2FrOw%2Bj7g7RlHfSaHKaAO3p6aAGQYPCpz%2Fd0%2BKArDAL%2FDNoH46G6Pnf7VWSb6a2COUiTV6118KaPbex
Um exemplo de uma Asserção SAML 2.0 enviada por meio da associação HTTP-POST é:
<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>
SHA-256
Um exemplo de mensagem AuthnRequest assinada enviada por meio do binding HTTP-Redirect é:
https://acme.com/idp/saml20?SAMLRequest=hVNdb9owFP0rkfec%2BCbAVixClY2hIdGWDui6vhnbFEuOndoOKfv1c%2Fio2kqlkp%2BuzrnnnHuvB5fPpYq2wjppdI7SBFAkNDNc6sccLRfj%2BAJFzlPNqTJa5GgnHLocDhwtVUWK2m%2F0b%2FFUC%2Bej0Eg7wp0MxI33FcG4%2F%2FFLDswb9bFN2dNp61G584V4vJ3o4PJUi7MYTXWaRd0vtKoP%2BAolHYsdTU71nHbJQzgEo8JbULASlTImGmJN%2B6%2FT5eC44lr3A7%2F20G6HAzZC9lo7GxJfXng7aVEGq9h4ZD8dLv0PCNNGPvpLMOQIYNLVv9AX4lebrZ69B1MpoZJdnuUxtpkrRelayState=id-BiQreMi9cMY3oFI9PKMNKtuOjpuFS2PrW4R8KKvd&SigAlg=http%3A%2F%2Fwww.w3.org%2F2001%2F04%2Fxmldsig-more%23rsa-sha256&Signature=PvyMUD%2FKXnCc0drlN1pvoK171znJkajEHLgtzE4I7YFQIvP4wp3M%2FV7y08x0Qkv0jwo9K4VBG%2BQUBFtXr41ZDp%2BHOb7GlmaY973n7X2UDlbUbVlrJX%2FqS1GyyNY6MSMcO5K0J7VJcQXf8CvGEcVHr%2FZhPjihnAO2vi%2Bej3fbfgo%3D
Um exemplo de uma Asserção SAML 2.0 enviada por meio da associação HTTP-POST é:
<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>
Comando WLST
O OAM pode ser configurado para usar SHA-1 ou SHA-256 em assinaturas SAML:
-
Em um nível de Parceiro.
-
Em um nível de Perfil do parceiro, onde todos os parceiros que fazem referência a esse perfil são afetados, a menos que tenham sido configurados em um nível de parceiro para assinaturas SHA-1/SHA-256.
O comando WLST configureFedDigitalSignature()
do OAM é usado para configurar como o OAM deve calcular uma assinatura:
-
Informe o ambiente WLST executando:
$IAM_ORACLE_HOME/common/bin/wlst.sh
. -
Conecte-se ao servidor de Administração WLS:
connect()
. -
Navegue até a ramificação Runtime do Domínio:
domainRuntime()
. -
Execute o comando
configureFedDigitalSignature()
:configureFedDigitalSignature(partner="", partnerProfile="", partnerType="",default="false", algorithm="SHA-256", displayOnly="false", delete="false")
. -
o parceiro é usado para configurar um parceiro específico
-
partnerProfile
é usado para configurar um perfil de parceiro específico -
partnerType
indica o tipo de perfil de parceiro/parceiro (idp ou sp) -
algoritmo indica qual algoritmo de hash usar (SHA-1 ou SHA-256)
-
displayOnly
indica se o comando deve ou não exibir a definição neste perfil de parceiro/parceiro, em vez de defini-la. Se definido como verdadeiro, esse comando não modifica a configuração (verdadeiro ou falso). -
delete indica se o comando deve ou não excluir a definição neste perfil de parceiro/parceiro, em vez de defini-la. Se definido como verdadeiro, esse comando excluirá a configuração e a configuração pai (perfil do parceiro ou global) será usada (verdadeiro ou falso).
- Saia do ambiente WLST:
exit()
Os seguintes parâmetros podem ser definidos:
Um exemplo é:
configureFedDigitalSignature(partner="AcmeIdP", partnerType="idp", algorithm="SHA-256")
Assinando Mensagens Enviadas
Configuração do OOTB
Abaixo estão as definições boolianas do OOTB que indicam quando o OAM precisa assinar mensagens SAML de saída (se verdadeiro, o OAM assina as mensagens de saída):
-
Nível global
- saml20sendsignedauthnrequest: SAML 2.0 AuthnRequest (verdadeiro)
-
Perfil do parceiro SAML 1.1 IdP
- sendsignedrequestsoap: Solicitação SAML 1.1 por meio da associação de Artefato/SOAP (verdadeiro)
-
Perfil do parceiro SP SAML 1.1
-
sendsignedassertion: Asserção SAML 1.1 (verdadeiro)
-
sendsignedresponseassertionpost: Resposta SAML 1.1 contendo uma Asserção sobre a associação HTTP-POST (falso)
-
sendsignedresponseassertionsoap: Resposta SAML 1.1 contendo uma Asserção sobre a associação de Artefato/SOAP (falso)
-
sendsignedresponsesoap: Resposta SAML 1.1 não contendo uma Asserção sobre a associação de Artefato/SOAP (verdadeiro)
-
-
Perfil do parceiro SAML 2.0 IdP
-
sendsignedrequestpost: Solicitação SAML 2.0 sobre o binding HTTP-POST (verdadeiro)
-
sendsignedrequestquery: Solicitação SAML 2.0 sobre o binding HTTP-Redirect (verdadeiro)
-
sendsignedrequestsoap: Solicitação SAML 2.0 sobre a associação de Artefato/SOAP (verdadeiro)
-
sendsignedresponsepost: Resposta SAML 2.0 não contendo uma Asserção sobre a associação HTTP-POST (verdadeiro)
-
sendsignedresponsequery: Resposta SAML 2.0 não contendo uma Asserção sobre a vinculação HTTP-Redirect (verdadeiro)
-
sendsignedresponsesoap: Resposta SAML 2.0 não contendo uma Asserção sobre a associação de Artefato/SOAP (verdadeiro)
-
-
Perfil do parceiro SP SAML 2.0
-
sendsignedassertion: Asserção SAML 2.0 (verdadeiro)
-
sendsignedrequestpost: Solicitação SAML 2.0 sobre o binding HTTP-POST (verdadeiro)
-
sendsignedrequestquery: Solicitação SAML 2.0 sobre o binding HTTP-Redirect (verdadeiro)
-
sendsignedrequestsoap: Solicitação SAML 2.0 sobre a associação de Artefato/SOAP (verdadeiro)
-
sendsignedresponseassertionpost: Resposta SAML 2.0 que contém uma Asserção sobre a associação HTTP-POST (falso)
-
sendsignedresponseassertionsoap: Resposta SAML 2.0 que contém uma Asserção sobre a associação de Artefato/SOAP (falso)
-
sendsignedresponsepost: Resposta SAML 2.0 não contendo uma Asserção sobre a associação HTTP-POST (verdadeiro)
-
sendsignedresponsequery: Resposta SAML 2.0 não contendo uma Asserção sobre a vinculação HTTP-Redirect (verdadeiro)
-
sendsignedresponsesoap: Resposta SAML 2.0 não contendo uma Asserção sobre a associação de Artefato/SOAP (verdadeiro)
-
Configuração
Suponha que você já esteja no ambiente WLST e conectado usando:
-
Informe o ambiente WLST executando:
$IAM_ORACLE_HOME/common/bin/wlst.sh
. -
Conecte-se ao servidor de Administração WLS:
connect()
. -
Navegue até a ramificação Runtime do Domínio:
domainRuntime()
.
SAML 2.0 AuthnRequest
Para configurar o OAM para assinar um SAML 2.0 AuthnRequest de saída, execute um dos seguintes comandos:
-
Para configurar em um nível global, execute:
putBooleanProperty("/spglobal/saml20sendsignedauthnrequest", "true/false")
-
Defina o valor como verdadeiro para que o OAM assine o AuthnRequest de saída.
-
Um exemplo é
putBooleanProperty("/spglobal/saml20sendsignedauthnrequest", "true")
-
-
Para configurar em um nível de Perfil do Parceiro SAML 2.0 IdP, execute:
putBooleanProperty("/fedpartnerprofiles/PARTNER_PROFILE/sendsignedauthnrequest", "true/false")
-
Substitua PARTNER_PROFILE por um nome de Perfil de Parceiro SAML 2.0 IdP.
-
Defina o valor como verdadeiro para que o OAM assine o AuthnRequest de saída.
-
Um exemplo é:
putBooleanProperty("/fedpartnerprofiles/saml20-idp-partner-profile/sendsignedauthnrequest", "true")
-
-
Para configurar em um nível de Parceiro SAML 2.0 IdP, execute:
updatePartnerProperty("PARTNER", "idp", "sendsignedauthnrequest", "true/false","boolean")
-
Substitua PARTNER por um nome de Parceiro SAML 2.0 IdP.
-
Defina o valor como verdadeiro para que o OAM assine o AuthnRequest de saída.
-
Um exemplo é
updatePartnerProperty("AcmeIdP", "idp", "sendsignedauthnrequest", "false","boolean")
Outras Definições
Para configurar as propriedades definidas nos Perfis de Parceiro SP/IdP acima, execute um dos seguintes comandos:
-
Para configurar em um nível de Perfil do parceiro, execute:
putBooleanProperty("/fedpartnerprofiles/PARTNER_PROFILE /PROPERTY_NAME", "true/false")
-
Substitua
PARTNER_PROFILE
por um nome de Perfil de Parceiro. -
Substitua
PROPERTY_NAME
pelo nome da propriedade a ser definida. -
Definir o valor como verdadeiro ou falso. Um exemplo é
putBooleanProperty("/fedpartnerprofiles/saml20-idp-partner-profile /sendsignedrequestquery", "true")
-
-
Para configurar em um nível de Parceiro, execute:
updatePartnerProperty("PARTNER", "PARTNER_TYPE", "PROPERTY_NAME","true/false", "boolean")
- Substitua
PARTNER
por um nome de Parceiro. - Substitua
PARTNER_TYPE
pelo tipo de Parceiro especificado (idp ou sp). - Substitua
PROPERTY_NAME
pelo nome da propriedade a ser definida. - Defina o valor como verdadeiro ou falso Um exemplo é:
updatePartnerProperty("AcmeSP", "sp", "sendsignedrequestquery", "true","boolean")
- Substitua
Metadados
A alteração da propriedade saml20sendsignedauthnrequest
em um nível global altera os Metadados SAML 2.0 gerados pelo OAM, como:
O AuthnRequestsSignedattribute
no elemento SPSSODescriptor
é definido com base em saml20sendsignedauthnrequest.
Uma amostra de Metadados SAML 2.0 mostra esses dois atributos:
<md:EntityDescriptor ...>
<dsig:Signature>
...
</dsig:Signature> <md:IDPSSODescriptor WantAuthnRequestsSigned="false" ...>
...
</md:IDPSSODescriptor>
<md:SPSSODescriptor AuthnRequestsSigned="true" WantAssertionsSigned="true"
...>
</md:SPSSODescriptor> </md:EntityDescriptor>
Exigindo que as Mensagens sejam Assinadas
Configuração do OOTB
Veja a seguir as definições boolianas do OOTB que controlam quando o OAM precisa exigir que as mensagens SAML de entrada sejam assinadas (se verdadeiro, o OAM exigirá que a mensagem de entrada seja assinada):
-
Nível global
-
saml20requiresignedauthnrequest: SAML 2.0 AuthnRequest (falso)
-
saml11requiresignedassertion: Asserção SAML 1.1 contida em uma mensagem de Resposta (verdadeiro)
-
saml20requiresignedassertion: Asserção SAML 2.0 contida em uma mensagem de Resposta (verdadeiro)
-
-
Perfil do parceiro SAML 1.1 IdP
-
requiresignedresponseassertionpost: Resposta SAML 1.1 por meio da associação HTTP-POST (falso)
-
requiresignedresponseassertionsoap: Resposta SAML 1.1 por meio da associação de Artefato/SOAP (falso)
-
-
Perfil do parceiro SP SAML 1.1
- requiresignedrequestsoap: Solicitação SAML 1.1 por meio da associação de Artefato/SOAP (falso)
-
Perfil do parceiro SAML 2.0 IdP
-
requiresignedrequestpost: Solicitação SAML 2.0 sobre o binding HTTP-POST (falso)
-
requiresignedrequestquery: Solicitação SAML 2.0 sobre o binding HTTP-Redirect (falso)
-
requiresignedrequestsoap: Solicitação SAML 2.0 sobre a associação de Artefato/SOAP (falso)
-
requiresignedresponseassertionpost: Resposta SAML 2.0 que contém uma Asserção sobre a associação HTTP-POST (falso)
-
requiresignedresponseassertionsoap: Resposta SAML 2.0 que contém uma Asserção sobre a associação de Artefato/SOAP (falso)
-
requiresignedresponsepost: Resposta SAML 2.0 não contendo uma Asserção sobre a associação HTTP-POST (falso)
-
requiresignedresponsequery: Resposta SAML 2.0 não contendo uma Asserção sobre a associação HTTP-Redirect (falso)
-
requiresignedresponsesoap: Resposta SAML 2.0 não contendo uma Asserção sobre a associação de Artefato/SOAP (falso)
-
-
Perfil do parceiro SP SAML 2.0
-
requiresignedrequestpost: Solicitação SAML 2.0 sobre o binding HTTP-POST (falso)
-
requiresignedrequestquery: Solicitação SAML 2.0 sobre o binding HTTP-Redirect (falso)
-
requiresignedrequestsoap: Solicitação SAML 2.0 sobre a associação de Artefato/SOAP (falso)
-
requiresignedresponsepost: Resposta SAML 2.0 não contendo uma Asserção sobre a associação HTTP-POST (falso)
-
requiresignedresponsequery: Resposta SAML 2.0 não contendo uma Asserção sobre a associação HTTP-Redirect (falso)
-
requiresignedresponsesoap: Resposta SAML 2.0 não contendo uma Asserção sobre a associação de Artefato/SOAP (falso)
-
Observação Importante: Se uma mensagem de entrada for assinada, o OAM a verificará e retornará um erro se a validação da assinatura falhar, mesmo que o OAM não exija que esse tipo de mensagem seja assinado.
Configuração
Suponha que você já esteja no ambiente WLST e conectado usando:
-
Informe o ambiente WLST executando:
$IAM_ORACLE_HOME/common/bin/wlst.sh
. -
Conecte-se ao servidor de Administração WLS:
connect()
. -
Navegue até a ramificação Runtime do Domínio:
domainRuntime()
.
SAML 2.0 AuthnRequest
Para configurar o OAM para exigir ou não que as mensagens AuthnRequest de entrada sejam assinadas, execute um dos seguintes comandos:
-
Para configurar em um nível global, execute:
putBooleanProperty("/idpglobal/saml20requiresignedauthnrequest", "true/false")
- Defina o valor como verdadeiro para que o OAM exija que o AuthnRequest de entrada seja assinado
Um exemplo é:putBooleanProperty("/idpglobal/saml20requiresignedauthnrequest", "true")
- Defina o valor como verdadeiro para que o OAM exija que o AuthnRequest de entrada seja assinado
-
Para configurar em um nível de Perfil do Parceiro SP SAML 2.0, execute:
putBooleanProperty("/fedpartnerprofiles/PARTNER_PROFILE /requiresignedauthnrequest", "true/false")
- Substitua PARTNER_PROFILE por um nome de Perfil do Parceiro SP SAML 2.0
- Defina o valor como verdadeiro para que o OAM exija que o AuthnRequest de entrada seja assinado. Um exemplo é:
putBooleanProperty("/fedpartnerprofiles/saml20-sp-partner-profile /requiresignedauthnrequest", "true")
-
Para configurar em um nível de Parceiro SP SAML 2.0, execute:
updatePartnerProperty("PARTNER", "sp", "requiresignedauthnrequest","true/false", "boolean")
- Substituir PARCEIRO por um nome de Parceiro SP SAML 2.0
- Defina o valor como verdadeiro para que o OAM exija que o AuthnRequest de entrada seja assinado. Um exemplo é:
updatePartnerProperty("AcmeSP", "sp", "requiresignedauthnrequest", "false","boolean")
Asserção SAML 1.1 contida em uma mensagem de Resposta
Para configurar o OAM para exigir ou não a assinatura das Asserções SAML 1.1 recebidas, execute um dos seguintes comandos:
- Para configurar em um nível global, execute:
putBooleanProperty("/spglobal/saml11requiresignedassertion", "true/false")
- Defina o valor como verdadeiro para que o OAM exija que as Asserções SAML 1.1 sejam assinadas. Um exemplo é:
putBooleanProperty("/spglobal/saml11requiresignedassertion", "true")
- Defina o valor como verdadeiro para que o OAM exija que as Asserções SAML 1.1 sejam assinadas. Um exemplo é:
- Para configurar em um nível de Perfil do Parceiro SAML 1.1 IdP, execute:
putBooleanProperty("/fedpartnerprofiles/PARTNER_PROFILE/requiresignedassertion", "true/false")
- Substitua PARTNER_PROFILE por um nome de Perfil de Parceiro SAML 1.1 IdP
- Defina o valor como verdadeiro para que o OAM exija que as Asserções SAML 1.1 sejam assinadas. Um exemplo é:
putBooleanProperty("/fedpartnerprofiles/saml11-idp-partner-profile /requiresignedassertion", "true")
- Para configurar em um nível de Parceiro SAML 1.1 IdP, execute:
updatePartnerProperty("PARTNER", "idp", "requiresignedassertion", "true/false","boolean")
- Substituir PARCEIRO por um nome de Parceiro SAML 1.1 IdP
- Defina o valor como verdadeiro para que o OAM exija que as Asserções SAML 1.1 sejam assinadas. Um exemplo é:
updatePartnerProperty("AcmeSP", "sp", "requiresignedassertion", "false","boolean")
Asserção SAML 2.0 contida em uma mensagem de Resposta
Para configurar o OAM para exigir ou não a assinatura das Asserções SAML 2.0 recebidas, execute um dos seguintes comandos:
- Para configurar em um nível global, execute:
putBooleanProperty("/spglobal/saml20requiresignedassertion", "true/false")
- Defina o valor como verdadeiro para que o OAM exija que as Asserções SAML 2.0 de entrada sejam assinadas. Um exemplo é:
putBooleanProperty("/spglobal/saml20requiresignedassertion", "true")
- Para configurar em um nível de Perfil do Parceiro SAML 2.0 IdP, execute:
putBooleanProperty("/fedpartnerprofiles/PARTNER_PROFILE/requiresignedassertion", "true/false")
- Substitua
PARTNER_PROFILE
por um nome de Perfil de Parceiro SAML 2.0 IdP - Defina o valor como verdadeiro para que o OAM exija que as Asserções SAML 2.0 de entrada sejam assinadas. Um exemplo é:
putBooleanProperty("/fedpartnerprofiles/saml20-idp-partner-profile /requiresignedassertion", "true")
- Para configurar em um nível de Parceiro SAML 2.0 IdP, execute:
updatePartnerProperty("PARTNER", "idp", "requiresignedassertion", "true/false","boolean")
- Substitua
PARTNER
por um nome de Parceiro SAML 2.0 IdP - Defina o valor como verdadeiro para que o OAM exija a assinatura das Asserções SAML 2.0 de entrada
Um exemplo é:updatePartnerProperty("AcmeSP", "sp", "requiresignedassertion", "false","boolean")
Outras Definições
Para configurar as propriedades definidas nos Perfis de Parceiro SP/IdP acima, execute um dos seguintes comandos:
- Para configurar em um nível de Perfil do parceiro, execute:
putBooleanProperty("/fedpartnerprofiles/PARTNER_PROFILE /PROPERTY_NAME", "true/false")
- Substitua
PARTNER_PROFILE
por um nome de Perfil de Parceiro - Substitua
PROPERTY_NAME
pelo nome da propriedade a ser definida - Defina o valor como verdadeiro ou falso Um exemplo é:
putBooleanProperty("/fedpartnerprofiles/saml20-idp-partner-profile /requiresignedrequestquery", "true")
- Substitua
- Para configurar em um nível de Parceiro, execute:
updatePartnerProperty("PARTNER", "PARTNER_TYPE", "PROPERTY_NAME","true/false", "boolean")
- Substitua
PARTNER
por um nome de Parceiro - Substitua
PARTNER_TYPE
pelo tipo de Parceiro especificado (idp ou sp) - Substitua
PROPERTY_NAME
pelo nome da propriedade a ser definida - Defina o valor como verdadeiro ou falso Um exemplo é:
updatePartnerProperty("AcmeSP", "sp", "requiresignedrequestquery", "true","boolean")
- Substitua
Metadados
A alteração das propriedades saml20requiresignedauthnrequest ou saml20requiresignedassertion em um nível global altera os Metadados SAML 2.0 gerados pelo OAM, como:
-
O atributo
WantAuthnRequestsSigned
no elementoIDPSSODescriptor
é definido com base em saml20requiresignedauthnrequest. -
O atributo
WantAssertionsSigned
no elementoSPSSODescriptor
é definido com base em saml20requiresignedassertion.
Uma amostra de Metadados SAML 2.0 mostra esses dois atributos:
<md:EntityDescriptor ...>
<dsig:Signature>
...
</dsig:Signature>
<md:IDPSSODescriptor WantAuthnRequestsSigned="false" ...>
...
</md:IDPSSODescriptor>
<md:SPSSODescriptor AuthnRequestsSigned="true" WantAssertionsSigned="true"
...>
</md:SPSSODescriptor> </md:EntityDescriptor>
X.509 Certificado na Mensagem
O OAM pode ser configurado para enviar o certificado de assinatura X.509 na mensagem SAML XML de saída enviada por meio das associações HTTP-POST ou SOAP.
A propriedade booliana includecertinsignature
indica se o certificado foi adicionado ou não à mensagem.
Para configurar o OAM para enviar o certificado de assinatura X.509 na mensagem de saída, execute um dos seguintes comandos para definir a propriedade booliana includecertinsignature
:
- Para configurar em um nível de Perfil do parceiro, execute:
putBooleanProperty("/fedpartnerprofiles/PARTNER_PROFILE/includecertinsignature", "true/false")
- Substitua
PARTNER_PROFILE
por um nome de Perfil de Parceiro - Defina o valor como verdadeiro ou falso Um exemplo é:
putBooleanProperty("/fedpartnerprofiles/saml20-sp-partner-profile /includecertinsignature", "true")
- Substitua
- Para configurar em um nível de Parceiro, execute:
updatePartnerProperty("PARTNER", "PARTNER_TYPE", "includecertinsignature","true/false", "boolean")
- Substitua
PARTNER
por um nome de Parceiro - Substitua
PARTNER_TYPE
pelo tipo de Parceiro especificado (idp ou sp) - Defina o valor como verdadeiro ou falso Um exemplo é:
updatePartnerProperty("AcmeSP", "sp", "includecertinsignature", "true","boolean")
- Substitua
Criptografia SAML 2.0
O protocolo SAML 2.0 define uma forma de criptografar vários dados em mensagens:
-
Asserções
-
NameIDs
-
Atributos
O OAM permite que um administrador indique quais tipos de dados devem ser criptografados.
Configuração do OOTB
Veja a seguir as definições boolianas do OOTB que indicam quando o OAM precisa criptografar mensagens SAML de saída (se verdadeiro, o OAM criptografa os dados de saída):
-
Perfil do parceiro SAML 2.0 IdP
- sendencryptednameid: Indica se NameID contido em
LogoutRequest
messagesshould
será criptografado (falso)
- sendencryptednameid: Indica se NameID contido em
-
Perfil do parceiro SP SAML 2.0
-
sendencryptedattribute: Indica se cada atributo contido em um SAML
Assertionshould
será criptografado (falso) -
sendencryptednameid: Indica se NameID contido em
LogoutRequest
,Assertionmessages
deve ser criptografado (falso)
-
Ao criar um novo Parceiro SP, a configuração desse Parceiro indica que o IdP não deve criptografar a Asserção:
- sendencryptedassertion na entrada do parceiro: Indica se as Asserções devem ser criptografadas (falso)
Asserção criptografada
Para configurar IdP para criptografar a Asserção de saída de um Parceiro SP por meio da Console de Administração do OAM, execute as seguintes etapas:
- Vá para a Console de Administração do OAM:
http(s)://oam-admin-host:oam-adminport/oamconsole
. - Navegue até Federação de Identidade, Administração do Provedor de Identidade.
- Abra o Parceiro SP.
- Na seção Avançado, marque a caixa de seleção Criptografar Asserção.
- Clique em Salvar.
Descrição da ilustração Access_Management.jpg
Para configurar o Parceiro SP via WLST, execute as seguintes etapas:
- Informe o ambiente WLST executando:
$IAM_ORACLE_HOME/common/bin/wlst.sh
. - Conecte-se ao servidor de Administração WLS:
connect()
. - Navegue até a ramificação Runtime do Domínio:
domainRuntime()
. - Execute o comando
updatePartnerProperty()
:updatePartnerProperty("PARTNER", "sp", "sendencryptedassertion", "true/false","boolean")
- Substitua PARTNER por um nome de Parceiro.
- Defina o valor como verdadeiro ou falso.
- Um exemplo é:
updatePartnerProperty("AcmeSP", "sp", "sendencryptedassertion", "true","boolean")
- Saia do ambiente WLST:
exit()
.
NameID/Atributos Criptografados
Para configurar as propriedades, siga estas etapas:
- Informe o ambiente WLST executando:
$IAM_ORACLE_HOME/common/bin/wlst.sh
. - Conecte-se ao servidor de Administração WLS:
connect()
. - Navegue até a ramificação Runtime do Domínio:
domainRuntime()
. - Execute um destes comandos:
- Para configurar em um nível de Perfil do parceiro, execute:
putBooleanProperty("/fedpartnerprofiles/PARTNER_PROFILE/PROPERTY_NAME", "true/false")
- Substitua
PARTNER_PROFILE
por um nome de Perfil de Parceiro. - Substitua
PROPERTY_NAME
pelo nome da propriedade a ser definida. - Defina o valor como verdadeiro ou falso.
- Um exemplo é:
putBooleanProperty("/fedpartnerprofiles/saml20-sp-partner-profile/sendencryptedattribute", "true")
- Substitua
- Para configurar em um nível de Parceiro, execute:
updatePartnerProperty("PARTNER", "PARTNER_TYPE", "PROPERTY_NAME","true/false", "boolean")
- Substitua
PARTNER
por um nome de Parceiro. - Substitua
PARTNER_TYPE
pelo tipo de Parceiro especificado (idp ou sp). - Substitua
PROPERTY_NAME
pelo nome da propriedade a ser definida. - Defina o valor como verdadeiro ou falso.
- Um exemplo é:
updatePartnerProperty("AcmeSP", "sp", "sendencryptedattribute", "true","boolean")
- Substitua
- Para configurar em um nível de Perfil do parceiro, execute:
- Saia do ambiente WLST:
exit()
Algoritmo de Criptografia
O algoritmo de criptografia pode ser definido no nível do Parceiro ou no nível do Perfil do Parceiro, definindo a propriedade de string defaultencryptionmethod
para um dos seguintes valores:
-
http://www.w3.org/2001/04/xmlenc#aes128-cbc para AES-128 CBC
-
http://www.w3.org/2001/04/xmlenc#aes192-cbc para AES-192 CBC
-
http://www.w3.org/2001/04/xmlenc#aes256-cbc para AES-256 CBC
-
http://www.w3.org/2001/04/xmlenc#tripledes-cbc para 3DES CBC
Por padrão, essa propriedade é definida como http://www.w3.org/2001/04/xmlenc#aes128-cbc (AES-128 CBC).
Para configurar a propriedade defaultencryptionmethod
, siga estas etapas:
-
Informe o ambiente WLST executando:
$IAM_ORACLE_HOME/common/bin/wlst.sh
. -
Conecte-se ao servidor de Administração WLS:
connect()
. -
Navegue até a ramificação Runtime do Domínio:
domainRuntime()
. -
Execute um destes comandos:
-
Para configurar em um nível de Perfil do parceiro, execute:
putStringProperty("/fedpartnerprofiles/PARTNER_PROFILE/defaultencryptionmethod", "ALGORITHM")
-
Substitua
PARTNER_PROFILE
por um nome de Perfil de Parceiro. -
Substitua
ALGORITHM
por um dos valores de algoritmo acima. -
Um exemplo é:
putStringProperty("/fedpartnerprofiles/saml20-sp-partner-profile/defaultencryptionmethod", "http://www.w3.org/2001/04/xmlenc#tripledes-cbc")
-
-
Para configurar em um nível de Parceiro, execute:
updatePartnerProperty("PARTNER", "PARTNER_TYPE","defaultencryptionmethod", "ALGORITHM", "string")
-
Substitua
PARTNER
por um nome de Parceiro. -
Substitua
PARTNER_TYPE
pelo tipo de Parceiro especificado (idp ou sp). -
Substitua
ALGORITHM
por um dos valores de algoritmo acima. -
Um exemplo é:
updatePartnerProperty("AcmeSP", "sp", "defaultencryptionmethod","http://www.w3.org/2001/04/xmlenc#tripledes-cbc", "string")
-
-
-
Saia do ambiente WLST:
exit()
Mais Recursos de Aprendizagem
Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal YouTube do Oracle Learning. Além disso, visite education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.
Para obter a documentação do produto, visite o Oracle Help Center.