Usando Atributos Fed.: Autorização OAM e Cabeçalhos HTTP

Este artigo descreve como os atributos recebidos nas mensagens SSO SAML/OpenID podem ser usados nas Políticas de Autorização do OAM e como eles podem ser fornecidos para aplicativos Web protegidos.

No runtime, quando o OAM/SP processa com sucesso uma mensagem de Resposta SSO SAML / OpenID, o servidor salva algumas das informações da resposta na sessão do OAM, como atributos que podem ser usados nas políticas de autorização do OAM

As informações de Resposta de SSO SAML / OpenID são salvas na sessão do OAM como atributos referenciados pelos seguintes identificadores:

Visão Geral

Um ambiente típico do OAM é composto por:

Quando um usuário autenticado solicita acesso a um recurso protegido:

As Políticas de Autorização do OAM usadas para avaliar se um usuário pode ou não acessar um recurso podem ser baseadas em várias condições:

Um administrador pode usar os dados da Federação recebidos na mensagem de SSO SAML/OpenID em uma regra de autorização, usando uma condição de atributo que avalia os atributos da Federação.

As Respostas de Autorização do OAM usadas para injetar dados na solicitação HTTP para disponibilizá-los a aplicativos Web protegidos são baseadas em

Da mesma forma que as Políticas de Autorização do OAM, um administrador pode injetar dados de federação na solicitação HTTP por meio do uso de atributos de sessão do OAM que fazem referência às entradas de federação ($session.attr.fed.partner, $session.attr.fed.attr.ATTR_NAME…)

Configuração de SSO da Federação

Use a mesma configuração da Federação SAML 2.0 que foi configurada anteriormente, em que:

Dois usuários serão usados:

Alice:

Bob:

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://acme.com /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="title" ...>
                <saml:AttributeValue
...>manager</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

Aplicativo Web Protegido

Neste exemplo, use os seguintes componentes:

Um exemplo de navegador que acessa o recurso sem ser protegido pelo OAM/WebGate resulta na seguinte exibição (no teste, o aplicativo Web será protegido conforme listado acima):

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

Condições de Autorização

O exemplo a seguir mostra como construir uma Política de Autorização usando atributos de Federação armazenados na sessão do OAM para um recurso com as seguintes restrições:

Para criar essa política de autorização, execute as seguintes etapas:

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

  2. Navegue até Access Manager, Domínios de Aplicativos

  3. Pesquise e clique no Domínio de Aplicativos do recurso

  4. Clique em Políticas de Autorização

  5. Abra a Política de Autorização que protege o recurso (Política de Recursos Protegidos neste exemplo)

  6. Clique na guia Condições

  7. Clique em Adicionar para definir uma nova condição:

    1. Nome: TitleCondition

    2. Tipo: Attribute

  8. Clique em Adicionar Selecionada

  9. Descrição da ilustração Add_Condition.jpg

  10. Selecione a condição recentemente criada

  11. Na janela Detalhes da Condição, clique em Adicionar:

    • Namespace: Session

    • Nome do Atributo: Other

    • Informe o nome do atributo: fed.title

    • Operador: Equals

    • Valor do Atributo: manager

  12. Clique em OK

  13. Descrição da ilustração Add_Attr_Condition.jpg

  14. Clique na tab Regras

  15. Remova a condição TRUE, se presente na Regra de Permissão, Condições Selecionadas

  16. Adicione TitleCondition à Permitir Regra, Condições Selecionadas

  17. Clique em Aplicar

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

Para testar, em um novo navegador, acesse o recurso protegido. Você será redirecionado para IdP.

Se você autenticar no IdP com o alice, o browser mostrará o seguinte no final do agora, mostrando o cabeçalho HTTP do Usuário Remoto definido como alice (já que o IdP forneceu o atributo de título definido como gerente e o OAM só permite acesso aos usuários com o atributo de sessão do OAM fed.title definido como gerente):

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

Se você autenticar no IdP com bob, o browser mostrará o seguinte no final do agora, mostrando um erro (já que o IdP forneceu o atributo de título definido como engenheiro e o OAM só permite acesso aos usuários com o atributo de sessão do OAM fed.title definido como gerente):

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

Injetando atributos de Fed

O exemplo a seguir mostra como injetar atributos SAML / OpenID coletados da resposta SSO como Cabeçalhos HTTP para a Web protegida com as seguintes restrições:

A configuração é feita por meio do uso de objetos Resposta de Autorização em uma definição de Política de Autorização

Para configurar essa política de autorização, execute as seguintes etapas:

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

  2. Navegue até Access Manager, Domínios de Aplicativos

  3. Pesquisar e clicar no Domínio da Aplicação do recurso

  4. Clique em Políticas de Autorização

  5. Abra a Política de Autorização que protege o recurso (Política de Recursos Protegidos neste exemplo)

  6. Clique na guia Respostas

  7. Clique em Adicionar para criar a entrada do endereço de e-mail:

    • Tipo: Header

    • Nome: emailaddress

    • Valor: $session.attr.fed.attr.email

  8. Clique em Adicionar

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

  9. Clique em Adicionar para criar a entrada com o nome:

    • Tipo: Header

    • Nome: firstname

    • Valor: $session.attr.fed.attr.firstname

  10. Clique em Adicionar

  11. Clique em Adicionar para criar a entrada para o sobrenome:

    • Tipo: Header

    • Nome: lastname

    • Valor: $session.attr.fed.attr.lastname

  12. Clique em Adicionar

  13. Clique em Aplicar

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

Para testar, em um novo navegador, acesse o recurso protegido. Você será redirecionado para IdP, em que a autenticação ocorre.

O OAM/WebGate injeta os itens de Resposta de Autorização com base nos atributos da Sessão do OAM (recebidos do IdP) e o aplicativo Web protegido os exibe (minha página de teste exibe um cabeçalho HTTP como HTTP_NAME, com NAME sendo o nome do Cabeçalho HTTP).

Descrição da ilustração Authorization_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.