Criando Parceiros SP SAML 2.0 no OAM e IdP
Este artigo discute os vários tipos de informações que é necessário saber para configurar um acordo de Federação entre o OAM atuando como um SAML 2.0 IdP e um Parceiro SP SAML 2.0 remoto, incluindo:
-
Configure um Parceiro SP SAML 2.0 remoto com Metadados SAML 2.0
-
Configure um Parceiro SP SAML 2.0 remoto sem Metadados SAML 2.0
O artigo descreve como executar as tarefas acima na IU ou por meio do uso dos comandos WLST do OAM.
Estabelecendo Confiança Federada
Estabelecer a Confiança entre parceiros da Federação é um pré-requisito antes de poder executar qualquer operação SSO da Federação entre os servidores da Federação.
O estabelecimento de confiança envolve a troca de informações de certificado, se o protocolo usado depender de certificados PKI X.509 para proteger trocas de mensagens, bem como os locais/URLs dos serviços que implementam o protocolo de federação.
SAML 2.0 com Metadados
Console de Administração do OAM
Para criar um novo Parceiro SP SAML 2.0 com Metadados, 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.
-
Clique no botão Criar Parceiro do Provedor de Serviços.
-
Na tela Criar:
-
Informe um nome para o parceiro.
-
Selecione SAML 2.0 como o Protocolo.
-
Clique em Carregar Metadados e faça upload do arquivo de Metadados SAML 2.0 para o SP.
-
Selecione o formato
NameID
a ser definido na Asserção SAML 2.0 (por exemplo, formato de Endereço de E-mailNameID
).
-
-
Informe como o valor
NameID
a ser definido:-
Se você selecionar Atributo de Armazenamento de ID do Usuário, isso significa que o valor
NameID
a ser definido como o Atributo LDAP especificado no campo ao lado da lista suspensa. -
Se você selecionar Expressão, isso significa que o valor
NameID
a ser definido com base na expressão especificada no campo ao lado da lista drop-down.
-
-
Selecione o Perfil do Atributo que será usado para preencher a Asserção SAML com atributos.
-
Clique em Salvar.
Descrição da ilustração Service_provider_partner_Screen.jpg
Depois que o parceiro é criado, a tela Editar Parceiro é mostrada com:
-
As configurações definidas na tela anterior podem ser modificadas
-
Uma seção Definições Avançadas exibida:
-
Ativar Log-out Global, indicando se o OAM deve ou não executar a troca de Log-out do SAML 2.0 com o parceiro como parte do processo de log-out.
-
Asserção de Criptografia: Se a Asserção enviada pelo
IdP
tiver que ser criptografada usando o certificado de criptografia do SP (observação: o SP deve suportar asserções criptografadas e o certificado de criptografia do SP deve estar presente nos Metadados do SP SAML 2.0). -
Binding de Resposta de SSO: Como a Asserção deverá ser enviada ao SP, se o SP não solicitar nenhum binding específico.
Observação: A subseção "Mapeamento do Usuário de Consulta de Atributo" só é relevante para o fluxo de Solicitação/Autoridade de Atributo SAML, quando a troca de Consulta de Atributo SAML é exercida. Este fluxo não faz parte do fluxo de SSO da Federação.
Descrição da ilustração Edit_Partner_Screen.jpg
WLST
Para criar um novo Parceiro SP SAML 2.0 com Metadados usando os comandos WLST do OAM, 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()
. -
Crie um Parceiro SP SAML 2.0 com Metadados que serão chamados de
acmeSP
no OAM:addSAML20SPFederationPartner("acmeSP", "/tmp/acme-sp-metadata-saml20.xml")
. -
Por padrão, o novo parceiro SP é configurado para:
-
Usar Endereço de E-mail como formato
NameID
-
O usuário usa o atributo de usuário LDAP de e-mail como o valor
NameID
-
Não criptografar a Asserção
-
Usar HTTP-POST como o Bind de Resposta SSO Padrão
-
-
Saia do ambiente WLST:
exit()
.
SAML 2.0 sem Metadados
Console de Administração do OAM
Para criar um novo Parceiro SP SAML 2.0 sem Metadados, execute as seguintes etapas (certifique-se primeiro de ter todos os dados do parceiro SP, como certificados, identificadores SP e URLs):
-
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.
-
Clique no botão Criar Parceiro do Provedor de Serviços.
-
Na tela Criar:
-
Informe um nome para o parceiro.
-
Selecione SAML 2.0 como o Protocolo.
-
Selecione Informar Manualmente.
-
Informe o Emissor / ProviderID do Parceiro SP.
-
Informe o URL do Serviço do Consumidor de Asserção para esse Parceiro SP: Este é o URL para o qual o usuário é redirecionado de IdP com a Asserção SAML.
-
Se o parceiro suportar o protocolo de logout SAML 2.0:
-
Informe o URL da Solicitação de Log-out SAML 2.0 em que o parceiro pode processar uma mensagem SAML 2.0
LogoutRequest
. -
Informe o URL de Resposta de Log-out SAML 2.0 no qual o parceiro pode processar uma mensagem SAML 2.0
LogoutResponse
.
-
-
Se o Parceiro SP assinar mensagens SAML, faça upload do arquivo de Certificado de Assinatura:
-
no formato PEM (em que o arquivo contém a primeira linha --BEGIN CERTIFICATE--, o certificado no formato codificado em Base64 e, em seguida, a última linha como --END CERTIFICATE--)
-
ou em formato DER onde o certificado é armazenado na codificação binária
-
-
Se a Asserção SAML precisar ser criptografada e o SP tiver um Certificado de Criptografia, faça upload do arquivo:
-
no formato PEM (em que o arquivo contém a primeira linha --BEGIN CERTIFICATE--, o certificado no formato codificado em Base64 e, em seguida, a última linha como --END CERTIFICATE--)
-
ou em formato DER onde o certificado é armazenado na codificação binária
-
-
-
Informe como o valor NameID a ser definido:
-
Se você selecionar Atributo de Armazenamento de ID do Usuário, isso significa que o valor
NameID
a ser definido como o Atributo LDAP especificado no campo ao lado da lista suspensa. -
Se você selecionar Expressão, isso significa que o valor
NameID
a ser definido com base na expressão especificada no campo ao lado da lista drop-down.
-
-
Selecione o Perfil do Atributo que é usado para preencher a Asserção SAML com atributos.
-
Clique em Salvar.
Descrição da ilustração Create_Service_Provider_Screen.jpg
Depois que o parceiro é criado, a tela Editar Parceiro é mostrada com:
-
As configurações definidas na tela anterior podem ser modificadas
-
Uma seção Definições Avançadas exibida:
-
Ativar Log-out Global, indicando se o OAM deve ou não executar a troca de Log-out do SAML 2.0 com o parceiro como parte do processo de log-out.
-
Asserção de Criptografia: Se a Asserção enviada pelo IdP deverá ser criptografada usando o certificado de criptografia do SP. Observação: O SP deve suportar asserções criptografadas e o certificado de criptografia do SP deve estar presente nos Metadados do SP SAML 2.0).
-
Binding de Resposta de SSO: Como a Asserção deverá ser enviada ao SP, se o SP não solicitar nenhum binding específico.
-
Observação: A subseção "Mapeamento do Usuário de Consulta de Atributo" só é relevante para o fluxo de Solicitação/Autoridade de Atributo SAML, quando a troca de Consulta de Atributo SAML é exercida. Este fluxo não faz parte do fluxo de SSO da Federação.
Descrição da ilustração Edit_Partner_withAdvOption_Screen.jpg
WLST
Para criar um novo Parceiro SP SAML 2.0 sem Metadados usando os comandos WLST do OAM, execute as etapas a seguir (certifique-se primeiro de que você tenha todos os dados do parceiro SP, como certificados, identificadores SP e URLs):
-
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()
. -
Crie um Parceiro SP SAML 2.0 sem Metadados que será chamado de
acmeSP
no OAM:addSAML20SPFederationPartnerWithoutMetadata("acmeSP","https://sp.com", "https://sp.com/saml20/sso")
-
Por padrão, o novo parceiro SP é configurado para:
-
Usar Endereço de E-mail como formato
NameID
-
O usuário usa o atributo de usuário LDAP de e-mail como o valor
NameID
-
Não criptografar a Asserção
-
Não executar Log-out
-
Usar HTTP-POST como o Bind de Resposta SSO Padrão
-
Usar o Perfil do Atributo do Provedor de Serviços padrão
-
Nenhum upload de certificado para este parceiro SP
-
-
Saia do ambiente WLST:
exit()
.
Modificando Definições de Federação via WLST
Esta seção lista como alterar as configurações comuns do Parceiro SP por meio dos comandos WLST do OAM:
-
Certificado de Assinatura SAML
-
Certificado de Criptografia SAML
-
Perfil de Atributo de Parceiro SP para um Parceiro SP
-
Configurações SAML
NameID
-
Associações de Solicitação e Resposta SSO SAML
-
Asserção Criptografada SAML 2.0
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()
.
Logout do SAML 2.0
Para ativar o Logout do SAML 2.0 e especificar os URLs de logout do SAML 2.0 do parceiro SP, execute:
-
O comando
configureSAML20Logout()
:configureSAML20Logout("acmeSP", "sp","true",saml20LogoutRequestURL="https://sp.com/saml20/logoutReq",saml20LogoutResponseURL="https://sp.com/saml20/logoutResp")
-
Com
acmeSP
sendo o nome do parceiro criado anteriormente -
sp
indica o tipo de parceiro -
verdadeiro indica que o Log-out do SAML 2.0 está ativado
-
saml20LogoutRequestURL
faz referência ao ponto final do parceiro SP que pode processar uma mensagem SAML 2.0LogoutRequest
-
saml20LogoutResponseURL
faz referência ao ponto final do parceiro SP que pode processar uma mensagem SAML 2.0LogoutResponse
-
Para desativar o Logout do SAML 2.0 para o parceiro SP, execute:
-
O comando
configureSAML20Logout()
:configureSAML20Logout("acmeSP", "sp","false")
-
Com
acmeSP
sendo o nome do parceiro criado anteriormente -
sp
indica o tipo de parceiro -
falso indica que o Log-out do SAML 2.0 está ativado
-
Certificados SAML
Existem vários comandos WLST disponíveis para gerenciar certificados de assinatura e criptografia:
-
getFederationPartnerSigningCert()
que imprime o certificado de assinatura do parceiro no formato codificado em Base64:getFederationPartnerSigningCert("acmeSP","sp")
-
Com
acmeSP
sendo o nome do parceiro criado anteriormente -
sp
indica o tipo de parceiro
-
-
setFederationPartnerSigningCert()
que faz upload do arquivo do certificado de assinatura passado como um parâmetro para a configuração do Parceiro SP:setFederationPartnerSigningCert("acmeSP","sp", "/tmp/cert.file")
-
Com
acmeSP
sendo o nome do parceiro criado anteriormente -
sp
indica o tipo de parceiro -
o terceiro parâmetro indica o local no sistema de arquivos do arquivo que contém o certificado:
-
no formato PEM (em que o arquivo contém a primeira linha --BEGIN CERTIFICATE--, o certificado no formato codificado em Base64 e, em seguida, a última linha como --END CERTIFICATE--)
-
ou em formato DER onde o certificado é armazenado na codificação binária
-
-
-
deleteFederationPartnerSigningCert()
que remove o certificado de assinatura da entrada do parceiro SP:deleteFederationPartnerSigningCert("acmeSP","sp")
-
Com
acmeSP
sendo o nome do parceiro criado anteriormente -
sp
indica o tipo de parceiro -
os comandos
getFederationPartnerEncryptionCert()
,setFederationPartnerEncryptionCert()
edeleteFederationPartnerEncryptionCert()
são semelhantes aos comandos acima, exceto por gerenciarem o certificado de criptografia do parceiro:-
getFederationPartnerEncryptionCert("acmeSP","sp")
-
setFederationPartnerEncryptionCert("acmeSP","sp", "/tmp/cert.file")
-
deleteFederationPartnerEncryptionCert("acmeSP","sp")
-
-
Perfil de Atributo de Parceiro SP
Para configurar o Perfil de Atributo do Parceiro SP para um Parceiro SP específico, use os seguintes comandos:
-
Para configurar um Parceiro SP para usar um Perfil de Atributo de Parceiro SP específico, execute:
setSPPartnerAttributeProfile(partnerName, attrProfileID)
-
partnerName
é o nome que foi usado para criar o Parceiro SP -
attrProfileID
é o ID do Perfil do Atributo do Parceiro do Ponto de Serviço
-
-
Para listar os Perfis de Atributo do Parceiro SP existentes, execute:
listSPPartnerAttributeProfileIDs()
Associações de Solicitação e Resposta SSO SAML
Para configurar as associações SAML para um Parceiro SP específico, use os seguintes comandos:
-
Para configurar o parceiro SP, execute:
configureSAMLBinding(partnerName, partnerType, binding, ssoResponseBinding="httppost")
-
partnerName
é o nome que foi usado para criar o Parceiro SP -
partnerType
deve ser definido comosp
, pois o parceiro é um SP -
binding: O binding para usar
httppost
para o binding HTTPPOST, ouhttpredirect
para o bindingHTTPRedirect
, para mensagens SAML 2.0 AuthnRequest eLogoutRequest
/LogoutResponse
. Somente o SAML 2.0 -
ssoResponseBinding
: O binding a ser usado para enviar a Asserção SAML de volta ao SP;httppost
para binding HTTP-POST ou artefato para binding de Artefato
-
Definições de SAML NameID
Para configurar as definições de NameID
para um Parceiro SP SAML:
-
Use o seguinte comando:
setSPSAMLPartnerNameID(partnerName, nameIDFormat, nameIDValue="", customFormat="", nameIDValueComputed="false")
-
partnerName
é o nome que foi usado para criar o Parceiro SP -
nameIDFormat
: Os valores possíveis sãoorafed-emailaddress
paraurn:oasis:names:tc:SAML:1.1:nameidformat:emailAddress
-
orafed-x509
paraurn:oasis:names:tc:SAML:1.1:nameidformat:X509SubjectName
-
orafed-winflowsnamequaliRer
paraurn:oasis:names:tc:SAML:1.1:nameidformat:WinflowsDomainQualiRedName
-
orafed-kerberos
paraurn:oasis:names:tc:SAML:2.0:nameidformat:Kerberos
-
orafed-transient
paraurn:oasis:names:tc:SAML:2.0:nameidformat:transient
-
orafed-persistent
paraurn:oasis:names:tc:SAML:2.0:nameidformat:persistent
-
orafed-unspecified
paraurn:oasis:names:tc:SAML:1.1:nameidformat:unspecified
-
orafed-custom
para um formatoNameID
personalizado especificado no parâmetrocustomFormat
.
-
-
-
customFormat
contendo o formato a ser usado, senameIDFormat
foi definido comoorafedcustom
-
nameIDValueComputed
: Verdadeiro ou falso e indica se deve ou não gerar oNameID
com base em um hash doUserID
, se onameIDFormat
estiver definido comoorafed-persistent
(somente SAML 2.0)
Asserção Criptografada SAML 2.0
Para configurar IdP para enviar ou não asserções SAML 2.0 criptografadas, execute os seguintes comandos:
-
Para configurar IdP para criptografar a Asserção SAML 2.0 para um Parceiro SP, execute:
updatePartnerProperty(partnerName, "sp", "sendencryptedassertion", "true", "boolean") partnerName
é o nome que foi usado para criar o Parceiro SP -
Para configurar IdP para enviar uma Asserção SAML 2.0 simples (padrão) para um Parceiro SP, execute:
updatePartnerProperty(partnerName, "sp", "sendencryptedassertion", "false", "boolean")
partnerName
é o nome que foi usado para criar o Parceiro SP
Exemplos
Os comandos abaixo podem ser usados para adicionar um parceiro SP sem Metadados SAML 2.0:
addSAML20SPFederationPartnerWithoutMetadata("acmeSP","https://sp.com","https://sp.com/saml20/sso")configureSAML20Logout("acmeSP","sp","true",saml20LogoutRequestURL="https://sp.com/saml20/logoutReq",saml20LogoutResponseURL="https://sp.com/saml20/logoutResp")setFederationPartnerSigningCert("acmeSP","sp","/tmp/cert.file")setFederationPartnerEncryptionCert("acmeSP","sp","/tmp/cert.file")setSPSAMLPartnerNameID("acmeSP","orafedemailaddress",nameIDValue="$user.aZr.mail")
Os comandos abaixo podem ser usados para adicionar um parceiro SP com Metadados SAML 2.0 (neste exemplo, estamos usando o Armazenamento de Identidades do OAM padrão):
addSAML20SPFederationPartner("acmeSP", "/tmp/acme-sp-metadata-saml20.xml") setSPSAMLPartnerNameID("acmeSP","orafedemailaddress", nameIDValue="$user.attr.mail")
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.
Creating SAML 2.0 SP Partners in OAM and IdP
F60926-01
September 2022
Copyright © 2022, Oracle and/or its affiliates.