Criar Parceiros SAML 2.0 IdP no OAM e no SP
Este artigo explica como configurar um acordo de Federação entre o OAM atuando como SAML 2.0 SP e um Parceiro SAML 2.0 IdP remoto, incluindo:
-
Configure um Parceiro SAML 2.0 IdP remoto com Metadados SAML 2.0
-
Configure um Parceiro SAML 2.0 IdP remoto sem Metadados SAML 2.0
-
Configurando o OAM/SP para mapear uma Asserção SAML de entrada para um usuário LDAP
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.
Mapeamento de Asserções
Com o OAM atuando como um Provedor de Serviços e delegando a autenticação de usuários a um IdP remoto, o administrador precisa concordar com o administrador do IdP sobre como o usuário é identificado na Asserção SAML (informações do usuário armazenadas no NameID
, ou como um Atributo SAML, ou em vários Atributos SAML..), e então o OAM/SP precisa ser configurado para mapear a Asserção SAML recebida para um registro de usuário LDAP, usando o(s) Atributo(s) NameID e/ou SAML.
O OAM requer que a Asserção de entrada seja mapeada para um registro de usuário LDAP para criar uma sessão do OAM.
O OAM/SP pode mapear uma Asserção SAML recebida para um registro de usuário LDAP via:
-
A Asserção SAML
NameID
, mapeada para um atributo no registro do usuário LDAP. Nesse caso, o OAM/SP executa uma pesquisa LDAP para um único registro de usuário LDAP cujo valor para o atributo especificado no mapeamento corresponde ao valor do SAMLNameID
. -
Um Atributo SAML da Asserção, mapeado para um atributo no registro de usuário LDAP. Nesse caso, o OAM/SP executa uma pesquisa LDAP para um único registro de usuário LDAP cujo valor para o atributo especificado no mapeamento corresponde ao valor do Atributo SAML especificado.
-
O uso de uma consulta LDAP que contém dados da Asserção SAML:
-
A consulta LDAP é especificada pelo administrador
-
Os dados da Asserção são identificados na consulta LDAP como %NAME%, sendo NAME:
-
O nome de um Atributo SAML da Asserção
-
Ou o
NameID
: Nesse caso, NAME é substituído porfed.nameidvalue
-
-
-
Exemplos de consultas LDAP são:
-
(mail=%email%)
que resulta em uma pesquisa LDAP para um único registro de usuário LDAP cujo valor para o atributo de e-mail corresponde ao valor do Atributo SAML de e-mail -
(&(givenname=%firstname%)(sn=%lastname%))
que resulta em uma pesquisa LDAP para um único registro de usuário LDAP cujos valores para o atributogivenname
e o atributosn
correspondem aos valores dos Atributos SAML de nome e sobrenome -
(&(title=manager)(uid=%fed.nameidvalue%))
que resulta em uma pesquisa LDAP para um único registro de usuário LDAP cujo valor para o atributo uid corresponde ao valor doNameID
e cujo atributo de título é igual ao gerente
-
O OAM/SP também fornece os recursos para usar um Armazenamento de Identidades específico e um DN base de pesquisa do usuário ao mapear a Asserção para um registro de usuário LDAP. É opcional e:
-
Se nenhum Armazenamento de Identidades específico for especificado nas regras de Mapeamento de Asserção, o Armazenamento de Identidades do OAM padrão será usado
-
Se nenhum DN da base de pesquisa de usuários específico for especificado nas regras de Mapeamento de Asserção, o DN da base de pesquisa de usuários configurado no Armazenamento de Identidades será usado
SAML 2.0 com Metadados
Console de Administração do OAM
Para criar um novo Parceiro SAML 2.0 IdP 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 Identidades, Administração do Provedor de Serviços
-
Clique no botão Criar Parceiro do Provedor de Identidades
-
Na tela Criar:
-
Informe um nome para o parceiro
-
Verifique se esse parceiro deve ou não ser usado como o IdP por padrão ao iniciar uma operação SSO de Federação, se nenhum parceiro IdP for especificado.
-
Selecionar SAML 2.0 como o Protocolo
-
Clique em Carregar Metadados e faça upload do arquivo de Metadados SAML 2.0 para a seção Mapeamento de Asserção IdP:
-
Como opção, defina o Armazenamento de Identidades do OAM que deve ser usado Observação: No exemplo, deixamos o campo em branco para usar o Armazenamento de Identidades do OAM padrão
-
Opcionalmente, defina o DN base de pesquisa do usuário Observação: No exemplo, deixamos o campo em branco para usar o DN base de pesquisa do usuário configurado no Armazenamento de Identidades.
-
-
Selecione como o mapeamento ocorre Observação: No exemplo, estamos mapeando a Asserção via
NameID
para o atributo de e-mail LDAP -
Selecione o Perfil do Atributo que é usado para mapear os nomes dos atributos na Asserção SAML de entrada para nomes locais.
-
-
Clique em Salvar
Descrição da ilustração Create_IDP_Partner.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: Indica se o OAM deve ou não executar a troca de Log-out SAML 2.0 com o parceiro como parte do processo de log-out.
-
Binding de Resposta HTTP POST SSO: Indica como o OAM/SP solicita o IdP para enviar a Asserção de volta ao SP. Se marcada, o OAM/SP solicita o IdP para enviar a Asserção usando a associação HTTP-POST; caso contrário, solicita a associação de Artefato.
-
Autenticação Básica HTTP: Se a associação de Artefato for usada, o OAM/SP precisará se conectar ao IdP diretamente no SOAP para recuperar a Asserção SAML. Às vezes, o IdP ativa a Autenticação Básica HTTP no canal SOAP, e o OAM/SP precisa fornecer nome de usuário/senha para o IdP (essas credenciais são acordadas entre os administradores do IdP e do SP).
-
Formato NameID da Solicitação de Autenticação: Indica se o OAM/SP deve solicitar por meio do SAML AuthnRequest um NameID específico a ser usado. Se definido como Nenhum, o OAM/SP não solicitará nada e o IdP selecionará o formato NameID acordado fora da faixa. Se você definir um valor, certifique-se de que ele corresponde ao que foi acordado entre os administradores do IdP e do SP (Pode ser deixado em branco).
-
WLST
Para criar um novo Parceiro SAML 2.0 IdP 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 SAML 2.0 IdP com Metadados chamados
acmeIdP
no OAM:addSAML20IdPFederationPartner("acmeIdP", "/tmp/acme-idp-metadata-saml20.xml")
-
Por padrão, o novo parceiro IdP é configurado para:
-
Usar o OAM Identity Store padrão
-
Usar o DN base de pesquisa do usuário do Armazenamento de Identidades (não substituído)
-
Mapear a Asserção SAML usando o
NameID
, correspondendo ao atributo de e-mail LDAP -
Definir o Formato
NameID
da Solicitação de Autenticação como Nenhum -
Usar HTTP-POST como o Bind de Resposta SSO Padrão
-
Usar o Perfil do Atributo do Provedor de Identidades padrão
-
-
Saia do ambiente WLST:
exit()
SAML 2.0 sem Metadados
Console de Administração do OAM
Para criar um novo Parceiro SAML 2.0 IdP sem Metadados, execute as seguintes etapas (certifique-se primeiro de ter todos os dados do parceiro IdP, como certificados, identificadores IdP e URLs):
-
Vá para a Console de Administração do OAM:
http(s)://oam-admin-host:oam-adminport/oamconsole
-
Navegue até Federação de Identidades, Administração do Provedor de Serviços
-
Clique no botão Criar Parceiro do Provedor de Identidades
-
Na tela Criar:
-
Informe um nome para o parceiro
-
Verifique se esse parceiro deve ou não ser usado como o IdP por padrão ao iniciar uma operação SSO de Federação, se nenhum parceiro IdP for especificado.
-
Selecionar SAML 2.0 como o Protocolo
-
Selecionar Entrada Manual
-
Informe o
Issuer
/ProviderID
do Parceiro IdP -
Se
SuccinctID
for deixado em branco, o OAM/SP o calculará digitando o ID do Provedor usando o algoritmo SHA-1 (deve ser deixado em branco) -
Informe o URL do Serviço SSO desse Parceiro IdP: Esse é o URL para o qual o usuário é redirecionado do OAM/SP com um SAML AuthnRequest para o IdP.
-
Se o parceiro suportar o protocolo de Artefato SAML 2.0, informe o URL do Serviço SOAP em que o OAM/SP se conecta para recuperar a Asserção SAML durante uma operação de Artefato SSO
-
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
-
-
Faça upload do arquivo IdP Signing Certificate:
-
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 o IdP 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
-
-
Seção Mapeamento de Asserções:
-
Como opção, defina o Armazenamento de Identidades do OAM que deve ser usado Observação: No exemplo, deixamos o campo em branco para usar o Armazenamento de Identidades do OAM padrão
-
Opcionalmente, defina o DN base de pesquisa do usuário Observação: No exemplo, deixamos o campo em branco para usar o DN base de pesquisa do usuário configurado no Armazenamento de Identidades.
-
-
Selecione como o mapeamento ocorre Observação: No exemplo, estamos mapeando a Asserção via
NameID
para o atributo de e-mail LDAP -
Selecione o Perfil do Atributo que é usado para mapear os nomes dos atributos na Asserção SAML de entrada para nomes locais.
-
-
Clique em Salvar
Descrição da ilustração Create_IDP_Provider_Partner.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: Indica se o OAM deve ou não executar a troca de Log-out SAML 2.0 com o parceiro como parte do processo de log-out.
-
Binding de Resposta HTTP POST SSO: Indica como o OAM/SP solicita o IdP para enviar a Asserção de volta ao SP. Se marcada, o OAM/SP solicita o IdP para enviar a Asserção usando a associação HTTP-POST; caso contrário, solicita a associação de Artefato.
-
Autenticação Básica HTTP: se a associação de Artefato for usada, o OAM/SP precisará se conectar ao IdP diretamente no SOAP para recuperar a Asserção SAML. Às vezes, o IdP ativa a Autenticação Básica HTTP no canal SOAP, e o OAM/SP precisa fornecer nome de usuário/senha para o IdP (essas credenciais são acordadas entre os administradores do IdP e do SP).
-
Formato NameID da Solicitação de Autenticação: Indica se o OAM/SP deve solicitar por meio do SAML AuthnRequest um NameID específico a ser usado. Se definido como Nenhum, o OAM/SP não solicitará nada e o IdP selecionará o formato NameID acordado fora da faixa. Se você definir um valor, certifique-se de que ele corresponde ao que foi acordado entre os administradores do IdP e do SP (Pode ser deixado em branco).
Descrição da ilustração Edit_Partner_withAdvOption_Screen.jpg
-
WLST
Para criar um novo Parceiro SAML 2.0 IdP sem Metadados usando os comandos WLST do OAM, execute as seguintes etapas (certifique-se primeiro de ter todos os dados do parceiro IdP, como certificados, identificadores IdP 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 o Parceiro SAML 2.0 IdP sem Metadados que chama
acmeIdP
no OAM:addSAML20IdPFederationPartnerWithoutMetadata("acmeIdP","https://acme.com/idp", "https://acme.com/saml20/sso", "https://acme.com/saml20/soap")
-
Por padrão, o novo parceiro SP é configurado para:
-
Usar o OAM Identity Store padrão
-
Usar o DN base de pesquisa do usuário do Armazenamento de Identidades (não substituído)
-
Mapear a Asserção SAML usando o
NameID
, correspondendo ao atributo de e-mail LDAP -
Definir o Formato
NameID
da Solicitação de Autenticação como Nenhum -
Usar HTTP-POST como o Bind de Resposta SSO Padrão
-
Usar o Perfil do Atributo do Provedor de Identidades padrão
-
Nenhum upload de certificado foi feito para este parceiro IdP
-
-
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:
-
Configurações de Mapeamento de Asserção SAML
-
OAM - Armazenamento de Identidades e DN Base de Pesquisa do Usuário para Log-out SAML 2.0 do Mapeamento de Asserção SAML
-
Certificado de Assinatura SAML
-
Certificado de Criptografia SAML
-
IdP Perfil de Atributo de Parceiro para um Parceiro IdP
-
Associações de Solicitação e Resposta SSO SAML
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()
Definição de Mapeamento de Asserção SAML
Para configurar definições de mapeamento para um Parceiro SAML IdP:
-
Use o seguinte comando para mapear a Asserção por meio do 1:
setIdPPartnerMappingNameID(partnerName, userstoreAttr)
-
partnerName
é o nome que foi usado para criar o Parceiro IdP -
userstoreAttr
: Atributo do usuário LDAP para corresponder ao valorNameID
.
-
-
Use o seguinte comando para mapear a Asserção por meio de um Atributo SAML: setIdPPartnerMappingAttribute(partnerName, assertionAttr, userstoreAttr)
-
partnerName
é o nome que foi usado para criar o Parceiro IdP -
assertionAttr
: Nome do Atributo SAML. -
userstoreAttr
: Atributo do usuário LDAP para corresponder ao valor do Atributo SAML.
-
-
Use o seguinte comando para mapear a Asserção por meio de uma consulta LDAP:
setIdPPartnerMappingAttributeQuery(partnerName, attrQuery)
-
partnerName
é o nome que foi usado para criar o Parceiro IdP -
attrQuery
: A consulta LDAP a ser usada (por exemplo,(&(givenname=%firstname%) (sn=%lastname%))
).
-
DN da Base do Armazenamento de Identidades e da Pesquisa de Usuários do OAM
Para configurar o OAM/SP para usar um Armazenamento de Identidades do OAM e/ou um DN Base de Pesquisa de Usuário específico ao mapear a Asserção SAML de entrada, execute o seguinte comando setPartnerIDStoreAndBaseDN()
:
-
Use o seguinte comando para definir somente o Armazenamento de Identidades do OAM:
setPartnerIDStoreAndBaseDN(partnerName,"idp", storeName="oid")
-
partnerName
é o nome que foi usado para criar o Parceiro IdP -
idp
indica o tipo de parceiro -
storeName
: faz referência ao Armazenamento de Identidades do OAM a ser usado
-
-
Use o seguinte comando para definir somente o DN Base de Pesquisa:
setPartnerIDStoreAndBaseDN(partnerName,"idp",searchBaseDN="ou=managers,dc=acme,dc=com")
-
partnerName
é o nome que foi usado para criar o Parceiro IdP -
idp
indica o tipo de parceiro -
searchBaseDN
: Indica o DN base de pesquisa a ser usado
-
-
Use o seguinte comando para definir o DN Base de Armazenamento de Identidades e Pesquisa do OAM:
setPartnerIDStoreAndBaseDN(partnerName,"idp", storeName="oid",searchBaseDN="ou=managers,dc=acme,dc=com")
-
partnerName
é o nome que foi usado para criar o Parceiro IdP -
idp
indica o tipo de parceiro -
storeName
: Faz referência ao Armazenamento de Identidades do OAM a ser usado -
searchBaseDN
: Indica o DN base de pesquisa a ser usado
-
-
Use o seguinte comando para remover o Armazenamento de Identidades do OAM e o DN Base de Pesquisa da entrada do parceiro IdP:
setPartnerIDStoreAndBaseDN(partnerName,"idp", delete="true")
-
partnerName
é o nome que foi usado para criar o Parceiro IdP -
idp
indica o tipo de parceiro
-
Logout do SAML 2.0
Para ativar o Log-out do SAML 2.0 e especificar os URLs de log-out do SAML 2.0 do parceiro IdP, execute:
-
O comando configureSAML20Logout():
configureSAML20Logout("acmeIdP", "idp","true",saml20LogoutRequestURL="https://acme.com/saml20/logoutReq",saml20LogoutResponseURL="https://acme.com /saml20/logoutResp")
-
Com
acmeIdP
sendo o nome do parceiro criado anteriormente -
idp
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 parceiroIdP
que pode processar uma mensagem SAML 2.0 LogoutRequest -
saml20LogoutResponseURL
faz referência ao ponto final do parceiroIdP
que pode processar uma mensagem SAML 2.0LogoutResponse
-
Para desativar o Logout do SAML 2.0 para o parceiro IdP, execute:
-
O comando
configureSAML20Logout()
:configureSAML20Logout("acmeIdP", "idp","false")
-
Com
acmeIdP
sendo o nome do parceiro criado anteriormente -
idp
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("acmeIdP","idp")
-
Com
acmeIdP
sendo o nome do parceiro criado anteriormente -
idp
indica o tipo de parceiro
-
-
setFederationPartnerSigningCert()
que faz upload do arquivo do certificado de assinatura passado como parâmetro para a configuração do ParceiroIdP
:setFederationPartnerSigningCert("acmeIdP","idp", "/tmp/cert.file")
-
Com
acmeIdP
sendo o nome do parceiro criado anteriormente -
idp
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 IdP:deleteFederationPartnerSigningCert("acmeIdP","idp")
-
Com
acmeIdP
sendo o nome do parceiro criado anteriormente -
idp
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("acmeIdP","idp")
-
setFederationPartnerEncryptionCert("acmeIdP","idp", "/tmp/cert.file")
-
deleteFederationPartnerEncryptionCert("acmeIdP","idp")
-
IdP Parceiro AMribute ProQl
Para configurar o Perfil de Atributo de Parceiro IdP
para um Parceiro IdP
específico, use os seguintes comandos:
Para configurar um Parceiro IdP
para usar um Perfil de Atributo de Parceiro IdP
específico, execute:
-
setIdPPartnerAttributeProfile(partnerName, attrProfileID)
-
partnerName
é o nome que foi usado para criar o Parceiro IdP -
attrProfileID
é o ID do perfil de atributo do parceiro IdP
-
-
Para listar os Perfis de Atributo de Parceiro IdP existentes, execute:
listIdPPartnerAttributeProfileIDs()
Associações de Solicitação e Resposta SSO SAML
Para configurar as associações SAML para um Parceiro IdP específico, use os seguintes comandos:
Para configurar o parceiro IdP, execute: configureSAMLBinding(partnerName, partnerType, binding, ssoResponseBinding="httppost")
-
partnerName
é o nome que foi usado para criar o Parceiro IdP -
partnerType
deve ser definido como "idp", pois o parceiro é um SP -
binding
: O binding para usarhttppost
para o bindingHTTPPOST
ouhttpredirect
para o binding HTTP-Redirect, 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 para IdP; httppost para binding HTTP-POST ou artefato para binding de Artefato
Exemplos
Os comandos abaixo podem ser usados para adicionar um parceiro IdP sem Metadados SAML 2.0:
addSAML20IdPFederationPartnerWithoutMetadata("acmeIdP","https://acme.com/idp", "https://acme.com/saml2 /sso", "https://acme.com/saml20/soap" configureSAML20Logout("acmeIdP", "idp", "true","https://acme.com/saml20/logoutReq" "https://acme.com/saml20/logoutResp" setFederationPartnerSigningCert("acmeIdP", "idp", "/tmp/acme-idp-cert.pem") setPartnerIDStoreAndBaseDN("acmeIdP", "idp", "oid") setIdPPartnerMappingNameID("acmeIdP", "mail")
Os comandos abaixo podem ser usados para adicionar um parceiro IdP com Metadados SAML 2.0 (neste exemplo, estamos usando o Armazenamento de Identidades do OAM padrão):
addSAML20IdPFederationPartner("acmeIdP", "/tmp/acme-idp-metadata-saml20.xml" setIdPPartnerMappingNameID("acmeIdP", "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.
Create SAML 2.0 IdP Partners in OAM and SP
F59901-01
September 2022
Copyright © 2022, Oracle and/or its affiliates.