Federação entre dois Domains Oracle Cloud usando o SCIM

Olá a todos

No artigo de hoje irei realizar a configuração de uma federação entre dois Dominios em Oracle Cloud usando o SCIM.

Nesse cenário temos um domínio principal com algumas contas de usuário e precisamos que os usuários sejam sincronizados e autenticados através de um Domínio já existente.

Para esse artigo, temos o seguinte escopo de organização

Tenancy Principal (Origem dos usuários) : weltonjesus2022, para melhor entendimento no artigo iremos chamar ele de T-Origem

Tenancy Secundário (Destino dos usuários): wrmedici198316, para melhor entendimento no artigo iremos chamar ele de T-Destino

Para essa configuração iremos ter os seguintes pontos importantes:

  • Iremos utilizar a sincronização autoritativa (ele irá sincronizar todos os usuários e Grupos do T-Origem para o T-Destino)
  • Se você possuir grupos no destino com o mesmo nome da origem os usuários serão inseridos para esse grupo, por exemplo: Se você tiver um usuário no grupo Administrators na origem ele será sincronizado e inserido para o grupo Administrators no destino.
  • As sincronizações serão realizadas baseadas em um agendamento durante a configuração do provisionamento.
  • Todas as alterações na origem serão sincronizadas para o destino no agendamento, ou seja, atributos, ativação ou desativação de novos usuários serão sincronizadas.
  • Caso você não queira que os usuários recebam a notificação de criação de conta nos tenancys destino, recomenda-se desativar as notificações de criação de novo usuário antes de realizar a primeira sincronização, você encontra essa opção em (Notifications > End User Notifications) desative a notificação: Welcome

Com todas as informações base já realizadas vamos partir para a mão na massa.

Passo 1: Crie uma aplicação do tipo Confidencial (Confidencial Application) no tenancy de origem (T-Origem)

Navegue até seu domínio, depois clique em Integrated Applications

Dê um nome para sua aplicação e clique em Next, as demais informações abaixo você não precisa preencher

Na próxima tela selecione a opção Configure this application as a client now, será aberta algumas opções

Selecione a opção Client Credentials

Desça até o final da tela e selecione a opção Add App Roles e selecione o User Administrator como role

Na próxima tela deixe como está por padrão e clique em Finish

No próximo passo ative sua aplicação

Com isso temos a aplicação no T-Origem configurada.

Passo 2: Crie uma aplicação do tipo SCIM Generica (Generic-Scim Application) no tenancy de destino (T-Destino)

No tenancy de destino T-Destino, navegue até Integrated Applications e clique em Add Application

Inicie o App Catalog e busque por GenericScim – Client Credentials

Dê um nome para aplicação e clique em Next

Na próxima etapa clique em Enable Provisioning, isso irá habilitar as opções de provisionamento de usuários e grupos.

Na proxima tela será necessário realizar algumas configurações.

  • Host Name: Vá até seu Tenancy de Origem, navegue até a raiz do Domain e colete a URL presente em domain URL

Com ela coletada, remova o https e o final após :443 de maneira que ela fique da seguinte forma: idcs-t-origem.identity.oraclecloud.com

  • Base URI: /admin/v1
  • Client ID e Client Secret: Colete essa informação na aplicação criada no Passo 1 no tenancy de origem T-Origem, ela fica presente logo quando você acessa a aplicação
  • Scope: urn:opc:idm:__myscopes__
  • Authentication Server Url: A mesma url coletada para o Host name mas adicione /oauth2/v1/token para que fique dessa forma como exemplo: https://idcs-t-origem.identity.oraclecloud.com/oauth2/v1/token

A saida deve ser algo igual a isso:

Você pode testar a conexão e deve receber um retorno de OK

Continue descendo as configurações e habilite a opção Authoritative sync

Depois habiliete a sincronização em Enable synchronization e defina um agendamento, no meu caso eu selecionei 1 hora de sincronização, ou seja, a cada 1 hora ele irá fazer de forma automática toda a sincronização. Clique em Save

Por enquanto iremos deixar a aplicação desativada para que seja finalizado primeiro o processo de Federação.

Passo 3: Criando a federação entre os 2 tenancys

Essa etapa será trabalhada com acesso simultâneo entre os 2 tenancys, iremos iniciar a configuração de forma paralela e dados criados entre os 2 tenancys serão utilizados simultaneamente.

Você verá que um processo de criação irá iniciar em um local , irá para outro e depois retornar.

Para auxiliar antes de cada execução irei colocar o local de execução para que você consiga se identificar, isso será colocado como T-Origem ou T-Destino sempre com um destaque.

T-Origem

O primeiro paso para fazer a federção é coletar o Metadados do tenancy de origem T-Origem para que consigamos criar a federação no destino.

No tenancy de Origem (T-Origem) navegue até Integrated Applications e adicione uma nova aplicação em Add Application

Selecione a aplicação do tipo SAML

Dê um nome para a aplicação e clique em Next

Iremos chegar nessa tela, nela iremos fazer o download do Metadados iniciar a configuração também no T-Destino

T-Destino

No Tenancy de Destino, navegue até Security depois Identity Providers

Adicione um novo Identity Provider do tipo SAML

Dê um nome e clique em Next

Faça o upload do arquivo de Metadados que baixou do T-Origem nos passos anteriores

Depois que clicar em Next, deixe as configurações padrões de mapeamento e clique em Next novamente

Ele irá apresentar telas de validação, clique em Create IDP

Na proxima tela, ative seu IDP clicando em Activate e depois clique em Add to IdP Policy

Quando clicar em Add to IdP policy, você será redirecionado as politicas de IDP do seu domínio, clique na politica padrão ou que está usando atualmente

Clique em Edit IdP rule

Adicione o provider novo e clique em Save changes

Volte para o Identity provider que acabou de criar, iremos coletar agora os dados para apresentar para o T-Origem, na configuração que ficou parada.

No T-Destino, no Identity Provider que acabou de criar, clique na aba Service provider metadada

As informações dessa tela deverão ser inseridas no T-Origem

Volte para o T-Origem

T-Origem

Entity ID: Copie a informação que está no IdP do Destino no campo Provider ID

Assertion consumer URL: Colete a informação que está no IdP de Destino no campo Assertion consumer service URL

Descendo a tela, iremos preencher os campos de Logout

Single logout URL: Copie do Destino a informação que está no campo Logout service endpoint URL

Logout response URL: Copie do Destino a informação que está no campo Logout service return URL

Clique em finish

Ative a aplicação

Passo 4: Configurando o Certificado

Para que o SSO seja possível precisamos fazer o Download do Certificado no Identity Provider do Destino e Importar na Application Confidential da Origem

Para isso, acesse o Identity provider no Destino e vá até a aba Service Provider Metadada e faça download do Certificado.

Agora volte para o Tenancy de Origem T-Origem e vá até a SAML Application e clique em Edit SSO Configuration

Navegue até a opção Signin Certificate e importe seu certificado, clique em Save Changes

Passo 5: Habilitando a sincronização dos usuários.

No T-Destino navegue até o aplicação GenericScim – Client Credentials que criou no Passo 2, ela está em Integrated Applications e Inativa.

Ative a aplicação

O provisionamento foi configurado nos passos anteriores, porém é necessário realizar um import inicial dos usuários, meu escopo de usuários e grupos antes da importação é esse:

Irei rodar a primeira importação de usuários para que depois o ciclo seja feito de forma automática, volto para aplicação GenericScim – Client Credentials e acesso a guia Import

Após executar o primeiro import os usuários e grupos serão importados, e teremos mais usuários e grupos sincronizados para o destino, conforme imagem abaixo.

Passo 6: Enviando os usuários com a flag Federated para o Tenancy de Destino.

Quando realizamos a federação é importante que os usuários enviados para o tenancy de destino possuam a flag Federated como True. Isso irá evitar com que os usuários consigam fazer ações no tenancy de destino, como por exemplo fazer login sem passar pelo Tenancy de Origem.

Para atender esse requisito iremos fazer um ajuste na aplicação de destino, a Generic SCIM, iremos configurar alguns atributos de mapeamento.

Para isso navegue até a aplicação no tenancy de destino T-Destino

Ao acessar a aplicação no destino, vá até a opção Provisioning e clique em Edit Provisioning

Navegue até a opção Attribute Mapping e clique nela.

Troque para a opção Application to identity domain

Adicione uma nova linha e coloque as seguintes opções:

  • Na coluna de Account coloque: #toBoolean(“true”)
  • Na coluna de Maps to coloque: Create and Update
  • Na coluna de User selecione: Federated

Salve as configurações e force uma importação.

Se seus usuários já tiverem sido sincronizados sem o Federated habilitado ele irá atualizar as contas conforme exemplo abaixo:

Se o usuário tentar logar localmente irá receber a mensagem de erro que impede que ele faça login local.

Nota adicional: Se você quiser segregar os grupos que podem fazer SSO através da aplicação SAML da Origem, você pode ativar na aplicação SAML de Origem a opção de Enforce grants as authorization. Se ativar essa opção, somente usuários ou grupos selecionados a essa aplicação poderão fazer login.

Nota adicional 2: Por padrão o MFA também será solicitado quando o usuário logar no tenancy de destino, você pode escolher qual escopo de segurança se enquadra melhor no contexto de autenticação e desativar se necessário nas políticas de Logon do seu domínio de destino ou de origem.

Muito obrigado e qualquer dúvida estou a disposição.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *