Provisionamento do Usuário do JIT no OAM e no SP

Este artigo discute como adicionar o provisionamento de usuários ao OAM/SP, que permite ao servidor criar um registro de usuário rapidamente durante o SSO de Federação, se o usuário ainda não tiver uma conta.

Durante uma operação SSO de Federação, o OAM/SP valida a resposta SSO de entrada (SAML ou OpenID) e tenta mapeá-la para um registro de usuário LDAP local com base nas informações contidas na resposta SSO (geralmente atributos do usuário):

O OAM/SP valida a resposta do SSO, processa os atributos usando regras definidas no Perfil de Atributo IdP para o parceiro IdP e, se necessário, chama o módulo Provisionamento do Usuário configurado no OAM/SP:

Após a chamada do módulo de Provisionamento do Usuário (padrão ou personalizado), o servidor cria uma sessão para o usuário. As operações de SSO da Federação subsequente para o mesmo usuário resultam no mapeamento de OAM/SP da resposta de SSO para esse registro LDAP recém-criado.

Módulo de Provisionamento de Usuário Incorporado

O módulo de Provisionamento de Usuário incorporado permite que um registro de usuário seja criado no diretório LDAP quando o mapeamento falha:

Observação Importante: O algoritmo acima é um tanto complexo, mas permite um administrador

Ativando o Provisionamento de Usuários no OAM/SP

Execute as seguintes etapas para ativar/desativar o Provisionamento do Usuário no OAM/SP:

  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()

  4. Atualize a propriedade userprovisioningenabled para:

  5. Sair do ambiente WLST: exit()

Configuração de teste

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

Durante um SSO de Federação SAML 2.0 com o parceiro IdP remoto, a Resposta SAML XML com a Asserção enviada de volta pelo IdP seria:

<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</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>

O resultado do processamento da Asserção SAML 2.0 por OAM/SP mostra os atributos transformados, bem como o NameID

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

Testes

Os casos de teste mostram configurações diferentes para o módulo Provisionamento do Usuário, com o elemento do usuário não existente no OAM/SP antes de cada teste:

Caso de Uso 1:

Caso de Uso 2:

Caso de Uso 3:

Caso de Uso 4:

Caso de Uso 5:

Após cada operação SSO da Federação, imprima o registro do usuário LDAP do usuário criado e depois exclui esse registro antes do próximo teste.

Observação importante: O Perfil de Atributo IdP deve mapear os nomes de Atributo SAML de entrada para os nomes de atributo usados no diretório LDAP. É por isso que em nosso Perfil de Atributo IdP de teste, fname é mapeado para givenname. O plug-in incorporado Provisionamento do usuário obtém os nomes de atributo da lista de atributos processados e os adiciona como estão ao registro do usuário LDAP (se configurado para isso): não há mapeamento de nome de atributo adicional.

Caso de Uso 1

Nesse caso de uso, a configuração é tal que:

Após o SSO da Federação, o registro do usuário para o alice foi criado:

dn: uid=alice,ou=users,dc=us,dc=oracle,dc=com
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: top
uid: alice
cn: alice
sn: alice

O registro do usuário LDAP tem as seguintes características:

Caso de Uso 2

Nesse caso de uso, a configuração é tal que:

Após o SSO da Federação, o registro do usuário para o alice foi criado:

dn: uid=alice,ou=users,dc=us,dc=oracle,dc=com
mail: alice@oracle.com
objectClass: person
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: top
uid: alice
cn: alice
sn: alice

O registro do usuário LDAP tem as seguintes características:

Caso de Uso 3

Nesse caso de uso, a configuração é tal que:

Para isso, faça o seguinte:

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

  2. Navegue até Gerenciador de Acesso, Plug-ins

  3. Selecione o FedUserProvisioningPlugin

  4. No campo KEY_USER_RECORD_ATTRIBUTE_LIST, digite givenname, sn e envie um e-mail como uma lista separada por vírgulas sem espaços: givenname,sn,mail

  5. Clique em Salvar

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

Após o SSO da Federação, o registro do usuário para o alice é criado:

dn: uid=alice,ou=users,dc=us,dc=oracle,dc=com
mail: alice@oracle.com
givenName: Alice
objectClass: person
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: top
uid: alice
cn: alice
sn: alice
sn: Appleton

O registro do usuário LDAP tem as seguintes características:

Caso de Uso 4

Nesse caso de uso, a configuração é tal que:

Para isso, faça o seguinte:

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

  2. Navegue até Gerenciador de Acesso, Plug-ins

  3. Selecione o FedUserProvisioningPlugin

  4. Defina o campo KEY_USER_RECORD_ATTRIBUTE_LIST como valor em branco

  5. Defina o campo KEY_USERID_ATTRIBUTE_NAME como givenname

  6. Clique em Salvar

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

Após o SSO da Federação, o registro do usuário para o alice é criado:

dn: uid=Alice,ou=users,dc=us,dc=oracle,dc=com
mail: alice@oracle.com
objectClass: person
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: top
uid: Alice
cn: Alice
sn: Alice

O registro do usuário LDAP tem as seguintes características:

Caso de Uso 5

Nesse caso de uso, a configuração é tal que:

Para isso, faça o seguinte:

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

  2. Navegue até Gerenciador de Acesso, Plug-ins

  3. Selecione o FedUserProvisioningPlugin

  4. Defina o campo KEY_USER_RECORD_ATTRIBUTE_LIST como (lista separada por vírgulas sem espaços): givenname,sn

  5. Defina o campo KEY_USERID_ATTRIBUTE_NAME como fed.nameidvalue, que é o nome do atributo para o valor NameID

  6. Clique em Salvar

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

Após o SSO da Federação, o registro do usuário para o alice é criado:

dn: uid=alice,ou=users,dc=us,dc=oracle,dc=com
mail: alice@oracle.com
givenName: Alice
objectClass: person
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: top
uid: alice
cn: alice
sn: alice
sn: Appleton

O registro do usuário LDAP tem as seguintes características:

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.