Processando Atributos de Entrada com OAM e SP

Quando o OAM atua como um Provedor de Serviços, ele:

Esses atributos armazenados na sessão do OAM podem ser usados posteriormente:

Este artigo discute como o OAM atuando como um Provedor de Serviços pode ser configurado para:

Visão Geral

Mapeamento de Nome do Atributo

O principal motivo para o processamento dos atributos de entrada é mapear os nomes dos atributos da resposta SSO para nomes locais, reconhecidos por outros componentes locais. Esse recurso é útil em implantações de Federação, porque parceiros remotos diferentes às vezes usam nomes diferentes para fazer referência ao mesmo atributo.

Por exemplo, vamos assumir o seguinte caso de uso:

Processando os atributos de entrada, o OAM/SP pode mapear:

Isso permite que o consumidor dos dados enviados nas mensagens SAML/OpenID faça referência ao nome do usuário somente pelo identificador first_name:

Atributos de Solicitação

O protocolo OpenID 2.0 define uma forma de parceiros SP/RP solicitarem atributos do IdP/OP no runtime.

O OAM/SP fornece uma maneira de solicitar atributos do OP OpenID

Perfis de Atributos

Anteriormente, explicamos quais Perfis de Atributos do Ponto de Serviço estavam em IdP e como usá-los:

No OAM/SP, há um conceito semelhante para solicitar atributos e mapear nomes de atributos. O Perfil do Atributo IdP é um conjunto de regras que indica para OAM/SP:

Exemplos

O restante do artigo descreve como configurar o OAM/SP para:

Use o Aplicativo Testar SP incorporado ao OAM/SP para ver como os atributos da Resposta SSO SAML/OpenID são processados.

Mapeando Atributos de Entrada

Esta seção mostra como configurar o OAM/SP para processar atributos SAML 2.0 de entrada por meio da console de administração. O exemplo é baseado em uma Federação com um parceiro IdP SAML 2.0 remoto identificado como AcmeIdP no OAM/SP:

Para isso, crie um novo Perfil de Atributo IdP e designe-o a AcmeIdP.

Observação: Se novos parceiros IdP forem integrados posteriormente e estiverem enviando os atributos com os mesmos nomes, será possível designar o Perfil de Atributo IdP existente a esses novos parceiros.

Criando o Parceiro sem Regras de Mapeamento

Antes de configurar o OAM/SP para mapear atributos de entrada para nomes locais, execute um SSO de Federação de teste para ver como os atributos se parecem inalterados pelo OAM/SP.

Nesse caso, o parceiro IdP está vinculado a um Perfil de Atributo IdP vazio e o OAM/SP não modificará os nomes dos atributos de entrada contidos na resposta do SSO.

O parceiro IdP está configurado de forma semelhante (com idp-attribute-profile sendo o Perfil de Atributo IdP padrão, que em nosso teste está vazio):

Descrição da ilustração Create_ID_Partner.jpg

Ao usar o aplicativo Testar SP para executar uma operação SSO de Federação com AcmeIdP, o resultado da operação mostra que, para o elemento do usuário, o seguinte foi enviado na Asserção:

A Resposta SAML XML com a Asserção enviada de volta pelo IdP é:

<samlp:Response ..>
    <saml:Issuer ...>http://acme.com/idp</saml:Issuer>
    <samlp:Status>
        <samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
    </samlp:Status>
    <saml:Assertion ...>
        <saml:Issuer ...>http://adc00peq.us.oracle.com:7499/fed/idp</saml:Issuer>
        <dsig:Signature ...>
        ...
        </dsig:Signature>
        <saml:Subject>
            <saml:NameID ...>alice</saml:NameID>
            ...
        </saml:Subject>         <saml:Conditions ...>
         ...
        </saml:Conditions>         <saml:AuthnStatement ...>
        ...
        </saml:AuthnStatement>
        <saml:AttributeStatement ...>
            <saml:Attribute Name="email" ...>
                <saml:AttributeValue ...>alice@oracle.com</saml:AttributeValue>
            </saml:Attribute>
            <saml:Attribute Name="surname" ...>
                <saml:AttributeValue ...>Appleton</saml:AttributeValue>
            </saml:Attribute>
            <saml:Attribute Name="fname" ...>
                <saml:AttributeValue ...>Alice</saml:AttributeValue>
            </saml:Attribute>
        </saml:AttributeStatement>
    </saml:Assertion>
</samlp:Response>

A página Testar SP mostra como o OAM/SP processou os atributos. Como não há regras de mapeamento, os nomes dos atributos foram deixados inalterados.

Descrição da ilustração Federation_SSO.jpg

Criando Regras de Mapeamento

Para criar um novo Perfil de Atributo IdP, execute as seguintes etapas:

  1. Vá para a Console de Administração do OAM: http(s)://oam-admin-host:oam-admin-port/oamconsole

  2. Navegue até Federação de Identidades, Administração do Provedor de Serviços

  3. Clique na guia Perfis de Atributo do Provedor de Identidades

  4. Clique no botão Criar Perfil de Atributo IdP

Descrição da ilustração Create_Mapping_Rules.jpg

Configure as informações básicas sobre o novo Perfil do Atributo IdP:

Observação sobre Ignorar Atributos Não Mapeados: Se marcada, o OAM/SP descarta todos os atributos na resposta SAML/OpenID não definidos neste Perfil de Atributo.

Observação sobre o Perfil de Atributo de Parceiro IdP Padrão: se marcada, esse será o Perfil de Atributo IdP pré-atribuído quando um novo Parceiro IdP for criado por meio da IU

Descrição da ilustração Create_Attr_Profile.jpg

Adicione os mapeamentos necessários. Execute as seguintes operações para adicionar o mapeamento firstname:

Execute as seguintes operações para adicionar o mapeamento de sobrenome:

O Perfil do Atributo IdP agora foi configurado para mapear os atributos fname e surname para nomes locais de parceiros IdP vinculados a esse perfil.

Observação: Não precisamos criar um mapeamento para e-mail, pois

Descrição da ilustração IdP_Attr_Profile.jpg

O Parceiro IdP deve ser atualizado para usar o novo Perfil de Atributo IdP:

  1. Vá para a Console de Administração do OAM: http(s)://oam-admin-host:oam-admin-port/oamconsole

  2. Navegue até Federação de Identidades, Administração do Provedor de Serviços

  3. Clique em Pesquisar Parceiros do Provedor de Identidades

  4. Abra o Parceiro IdP desejado

  5. Na seção Mapeamento do Atributo, selecione o Perfil do Atributo IdP recém-criado como o Perfil do Atributo

  6. Clique em Salvar

Descrição da ilustração Update_IdP_Attr_Profile.jpg

Teste

Estamos usando o aplicativo Testar SP novamente para executar uma operação SSO de Federação com o OAM usando o novo Perfil de Atributo IdP.

A Resposta SAML XML com a Asserção enviada de volta pelo IdP ainda é a mesma:

<samlp:Response ..>
    <saml:Issuer ...>http://acme.com/idp</saml:Issuer>
    <samlp:Status>
        <samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
    </samlp:Status>
    <saml:Assertion ...>
        <saml:Issuer ...>http://adc00peq.us.oracle.com:7499/fed/idp</saml:Issuer>
        <dsig:Signature ...>
        ...
        </dsig:Signature>
        <saml:Subject>
            <saml:NameID ...>alice</saml:NameID>
            ...
        </saml:Subject>         <saml:Conditions ...>
         ...
        </saml:Conditions>         <saml:AuthnStatement ...>
        ...
        </saml:AuthnStatement>
        <saml:AttributeStatement ...>
            <saml:Attribute Name="email" ...>
                <saml:AttributeValue ...alice@oracle.com</saml:AttributeValue>
            </saml:Attribute>
            <saml:Attribute Name="surname" ...>
                <saml:AttributeValue ...>Appleton</saml:AttributeValue>
            </saml:Attribute>
            <saml:Attribute Name="fname" ...>
                <saml:AttributeValue ...>Alice</saml:AttributeValue>
            </saml:Attribute>
        </saml:AttributeStatement>
    </saml:Assertion>
</samlp:Response>

A página Testar SP mostra resultados diferentes, pois o OAM/SP processou os atributos de acordo com as regras em que:

Descrição da ilustração Test_Federation_SSO.jpg

Atributos de Solicitação

Esta seção mostra como configurar o OAM/SP para solicitar atributos de um IdP no runtime usando os comandos WLST do OAM. O exemplo é baseado em uma Federação com um parceiro IdP/OP remoto OpenID 2.0 e o OAM/SP está configurado para:

Solicite os seguintes atributos:

Para isso, crie um novo Perfil de Atributo IdP e designe-o a acmeOP. Posteriormente, se novos parceiros do OP estiverem integrados, será possível designar o Perfil de Atributo IdP existente para que o OAM/SP solicite os mesmos atributos desses novos IdPs.

Suponha que você já esteja no ambiente WLST e conectado usando:

  1. Informe o ambiente WLST executando: $IAM_ORACLE_HOME/common/bin/wlst.sh

  2. Conecte-se ao servidor de Administração WLS: connect()

  3. Navegue até a ramificação Runtime do Domínio: domainRuntime()

Etapas

Para configurar o novo Perfil de Atributo IdP, execute as seguintes etapas:

  1. Criar um novo Perfil de Atributo SP createIdPPartnerAttributeProfile("openIDAttrProfile")

  2. Especifique o nome do novo Perfil de Atributo IdP

  3. Crie o mapeamento para o atributo de e-mail e solicite-o no runtime setIdPPartnerAttributeProfileEntry("openIDAttrProfile", "http://axschema.org/contact/email", "email", requestFromIdP="true")

  4. Especifique o nome do Perfil de Atributo IdP a ser modificado

  5. Especifique o nome do atributo OpenID para http://axschema.org/contact/email

  6. Especifique o nome local do atributo: email

  7. Indique que o OAM/SP deve solicitá-lo no runtime: requestFromIdP="true"

  8. Crie o mapeamento para o atributo de e-mail e solicite-o no runtime setIdPPartnerAttributeProfileEntry("openIDAttrProfile", "http://schemas.openid.net/ax/api/user_id", "userid", requestFromIdP="true")

  9. Especifique o nome do Perfil de Atributo IdP a ser modificado

  10. Especifique o nome do atributo OpenID para http://schemas.openid.net/ax/api/user_id

  11. Especifique o nome local do atributo: userid

  12. Indique que o OAM/SP deve solicitá-lo no runtime: requestFromIdP="true"

Para atualizar o parceiro IdP para usar esse Perfil de Atributo IdP, execute:

OpenID Resposta

A Resposta OpenID gerada pelo IdP remoto para alice/alice@oracle.com será:

https://acme.com/oam/server/fed/sp/sso?reEd=id-TEMxjNN7SEdYWowvioAuTAx7UPuKAUsj-NPWLSUf&openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0&openid.mode=id_res&openid.op_endpoint=http%3A%2F%2Fadc00peq.us.oracle.com%3A7499%2Ffed%2Fidp%2Fopenidv20&openid.claimed_id=http%3A%2F%2Fadc00peq.us.oracle.com%3A7499%2Ffed%2Fidp%2Fopenidv20%3Fid%3Did-YxEgHp7b49OrDy9dJP4BWrwbNUQ-&openid.identity=http%3A%2F%2Fadc00peq.us.oracle.com%3A7499%2Ffed%2Fidp%2Fopenidv20%3Fid%3Did-YxEgHp7b49OrDy9dJP4BWrwbNUQ-&openid.return_to=http%3A%2F%2Fadc00pcc.us.oracle.com%3A23002%2Foam%2Fserver%2Ffed%2Fsp%2Fsso%3FreEd%3DidTEMxjNN7SEdYWowvioAuTAx7UPuKAUsj-NPWLSUf&openid.response_nonce=2014-03-07T22%3A22%3A24Zid-8PQjU4IXHX6inl35bHEFws1Yv-8-&openid.assoc_handle=id-Iek3nx7-n2LldOPeooa4auWKC4-&openid.ns.ax=http%3A%2F%2Fopenid.net%2Fsrv%2Fax%2F1.0&openid.ax.mode=fetch_response&openid.ax.type.attr0=http%3A%2F%2Fschemas.openid.net%2Fax%2Fapi%2Fuser_id&openid.ax.value.attr0=alice&openid.ax.type.attr1=http%3A%2F%2Faxschema.org%2Fcontact%2Femail&openid.ax.value.attr1=alice%40oracle.com&openid.signed=op_endpoint%2Cclaimed_id%2Cidentity%2Creturn_to%2Cresponse_nonce%2Cassoc_handle%2Cns.ax%2Cax.mode%2Cax.type.attr0%2Caopenid.sig=JBPLV5nDISw4qeWv8Yv4iPGJ6Y8%3D

Os parâmetros de consulta de URL decodificados relacionados aos atributos são:

A página Testar SP mostra resultados diferentes, pois o OAM/SP processou os atributos de acordo com as regras em que:

Descrição da ilustração OpenID_Response.jpg

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.