Como federar o Google Cloud com o Active Directory: configurar o Logon único

Este artigo mostra como configurar o Logon único entre o ambiente do Active Directory e a conta do Cloud Identity ou do Google Workspace usando os Serviços de federação do Active Directory (AD FS) da Microsoft e a federação SAML.

O artigo pressupõe que você entenda como o gerenciamento de identidade do Active Directory pode ser estendido ao Google Cloud e já tenha configurado o aprovisionamento de usuários. O artigo também pressupõe que você tenha um servidor AD FS 4.0 em execução no Windows Server 2016 ou uma versão posterior do Windows Server.

Para seguir este guia, é necessário ter conhecimento dos serviços de domínio do Active Directory e do AD FS. Você também precisa de um usuário no Cloud Identity ou do Google Workspace que tenha privilégios de superadministrador e um usuário no Active Directory que tenha acesso administrativo ao servidor do AD FS.

Objetivos

  • Configure seu servidor AD FS para que o Cloud Identity ou o Google Workspace possa usá-lo como um provedor de identidade.
  • Crie uma política de emissão de reivindicações que corresponda às identidades entre o Active Directory e o Cloud Identity ou o Google Workspace.
  • Configure sua conta do Cloud Identity ou do Google Workspace para delegar a autenticação ao AD FS.

Custos

Se você estiver usando a edição gratuita do Cloud Identity, seguir este artigo não usará componentes faturáveis do Google Cloud.

Antes de começar

  1. Verifique se o servidor do AD FS é executado no Windows Server 2016 ou posterior. Embora você também possa configurar o Logon único usando versões anteriores do Windows Server e do AD FS, as etapas de configuração necessárias podem ser diferentes das descritas neste artigo.
  2. Entenda como o gerenciamento de identidade do Active Directory pode ser estendido para o Google Cloud.
  3. Configure o provisionamento de usuários entre o Active Directory e o Cloud Identity ou o Google Workspace.
  4. Verifique se o servidor do AD FS usa um certificado Secure Sockets Layer (SSL) válido que seja reconhecido pelos navegadores de seus usuários corporativos.
  5. Defina o AD FS em uma configuração de farm de servidores para evitar que ele se torne um ponto único de falha. Depois de ativar o Logon único, a disponibilidade do AD FS determina se os usuários podem fazer login no Console do Cloud.

Noções básicas sobre o logon único

Ao usar o Cloud Directory Sync, você já automatizou a criação e a manutenção dos usuários e vinculou o ciclo de vida deles aos usuários no Active Directory.

Embora o Cloud Directory Sync forneça detalhes da conta de usuário, ele não sincroniza senhas. Sempre que um usuário precisa se autenticar no Google Cloud, a autenticação precisa ser delegada ao Active Directory, processo realizado usando o AD FS e o protocolo Linguagem de marcação para autorização de segurança (SAML, na sigla em inglês). Essa configuração garante que somente o Active Directory tenha acesso às credenciais do usuário e aplica todas as políticas atuais e mecanismos de autenticação multifator (MFA, na sigla em inglês). Além disso, estabelece uma experiência de logon único entre o ambiente local e o Google.

O SAML 2.0 define um protocolo e um dialeto XML que pode ser usado para implementar o logon único entre duas partes, que são chamadas de provedor de identidade (IdP, na sigla em inglês) e provedor de serviços (SP, na sigla em inglês):

  • O SP é a parte que precisa autenticar um usuário. Como não está configurado para executar essa autenticação, o SP delega essa responsabilidade ao IdP.
  • O IdP é a parte que realiza a autenticação do usuário. Ele identifica fatos sobre o usuário e os transmite para o SP. A coleta de fatos é chamada de declaração.

Para implementar o Logon único entre o Active Directory e o Google, configure o AD FS para atuar como o IdP e sua conta do Cloud Identity ou do Google Workspace para atuar como o SP. Com essa configuração, o login no Console do Cloud funciona da seguinte maneira:

Login no Console do Cloud

  1. O usuário abre o Console do Cloud com um navegador.
  2. Como o usuário ainda não foi autenticado, o Console do Cloud redireciona o navegador para o Login do Google.
  3. O usuário vê uma página de login que solicita a inserção de um endereço de e-mail.
  4. Depois que o usuário envia o endereço de e-mail, o Login do Google reconhece que o endereço de e-mail pertence a uma conta do Cloud Identity ou do Google Workspace configurada para autenticação federada usando o AD FS. Consequentemente, ele redireciona o navegador para o AD FS.
  5. Dependendo de sua configuração, o AD FS pode retornar o usuário à página de login e exigir que sejam fornecidos um nome de usuário e uma senha. Se for usada a autenticação baseada em Kerberos, o usuário será autenticado automaticamente, sem precisar digitar suas credenciais.
  6. Se o usuário precisar digitar suas credenciais, o AD FS interage com o Centro de distribuição de chaves do Active Directory usando o Kerberos para validar o nome de usuário e a senha.
  7. Depois de validar as credenciais de maneira bem-sucedida, o AD FS direciona o navegador de volta para o Login do Google.
  8. O Login do Google estabelece uma sessão e direciona o navegador de volta para o Console do Cloud, que agora concede acesso.

Como configurar o AD FS

Antes de ativar o Logon único no Cloud Identity ou no Google Workspace, configure o AD FS.

Como criar relying party trust

O AD FS exige que você crie uma relying party trust para cada SP que usará o AD FS para autenticação. Para começar, crie uma relação de confiança com o Cloud Identity ou o Google Workspace, que envolve o seguinte:

  1. Faça login no servidor do AD FS e abra o snap-in do MMC do AD FS.
  2. No menu à esquerda, clique com o botão direito do mouse na pasta Relying Party Trusts. No menu de contexto, selecione Adicionar confiança de terceira parte confiável.
  3. Na primeira página do assistente, selecione Claims aware e clique em Start.

    Assistente do objeto de confiança de terceira parte

  4. Na próxima página, selecione Enter data about the relying party manually e clique em Next.

  5. Na próxima página, insira um nome de exibição, como Cloud Identity, e clique em Próximo.

  6. Na próxima página, um certificado de criptografia de token é solicitado. Esta etapa não é necessária para se conectar à sua conta do Cloud Identity ou do Google Workspace. Portanto, clique em Próxima.

  7. Na próxima página, selecione Enable support for the SAML 2.0 WebSSO protocol e insira o URL do serviço de SSO a seguir:

    https://www.google.com/a/[DOMAIN]/acs
    

    Substitua [DOMAIN] pelo domínio principal da sua conta do Cloud Identity ou do Google Workspace e clique em Próxima.

    Habilitar suporte para o protocolo WebSSO do SAML 2.0

  8. A próxima página do assistente solicita os identificadores da relying party trust. Adicione os identificadores a seguir à lista:

    • google.com/a/[DOMAIN], substituindo [DOMAIN] pelo domínio principal da sua conta do Cloud Identity ou do Google Workspace
    • google.com

    identificadores do objeto de confiança de terceira parte confiável

    Clique em Próximo.

  9. Na próxima página, escolha uma política de acesso. A configuração da MFA está além do escopo deste artigo. Portanto, clique em Permitir todos por enquanto e em Avançar.

  10. Na página Ready to Add Trust, revise suas configurações e clique em Next.

  11. Na página final, desmarque a caixa de seleção Configure claims issuance policy e feche o assistente. Na lista de "relying party trusts", agora é possível ver uma nova entrada.

Como configurar o URL de logout

Quando você dá permissão para que os usuários usem o logon único em vários aplicativos, é importante permitir que eles se desconectem de vários aplicativos:

  1. No console de gerenciamento do AD FS, em Relying Party Trusts, clique com o botão direito do mouse no trust que você acabou de criar e clique em Properties.
  2. Na guia Endpoints, clique em Add SAML.
  3. Na caixa de diálogo Add an Endpoint, defina as seguintes configurações:

    1. Endpoint type: SAML Logout
    2. Vinculação: POST
    3. URL de confiança : https://[ADFS]/adfs/ls/?wa=wsignout1.0

      Substitua [ADFS] pelo nome de domínio totalmente qualificado do servidor do AD FS.

      Adicionar um endpoint

  4. Clique em OK.

  5. Clique em OK para fechar a caixa de diálogo.

Como configurar o mapeamento de declarações

Depois que o AD FS autentica um usuário, ele emite uma declaração SAML. Esta declaração serve como prova do sucesso da autenticação. A declaração precisa identificar quem foi autenticado, que é a finalidade da declaração NameID.

Para ativar o Login do Google para associar o NameID a um usuário, o NameID precisa conter o endereço de e-mail principal desse usuário. Dependendo de como você está mapeando usuários entre o Active Directory e o Cloud Identity ou o Google Workspace, o NameID precisa conter o UPN ou o endereço de e-mail do usuário do Active Directory, com substituições de domínio aplicadas conforme necessário.

UPN

  1. No console de gerenciamento do AD FS, em Relying Party Trusts, clique com o botão direito do mouse no trust recém-criado e clique em Edit Claim Issuance Policy.
  2. Na caixa de diálogo, clique em Add Rule.
  3. Selecione Enviar atributos LDAP como declarações e clique em Próximo.
  4. Na próxima página, aplique as configurações a seguir:
    1. Nome da regra de declaração: E-mail do mapa e ID do nome
    2. Repositório de atributos: Active Directory
  5. Adicione uma linha à lista de mapeamentos de atributos LDAP:
    1. Atributo LDAP: User-Principal-Name
    2. Tipo de declaração de saída: Name ID
  6. Clique em Concluir e em OK.

UPN: substituição de domínio

  1. No console de gerenciamento do AD FS, em Relying Party Trusts, clique com o botão direito do mouse no trust recém-criado e clique em Edit Claim Issuance Policy.
  2. Na caixa de diálogo, clique em Add Rule.
  3. Selecione Send Claims Using a Custom Rule e clique em Next.
  4. Na próxima página, aplique as seguintes configurações:

    1. Claim rule name: Load UPN
    2. Custom Rule:

      c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"]
       => add(store = "Active Directory", types = ("http://temp.google.com/upn"), query = ";userPrincipalName;{0}", param = c.Value);
      

      Essa regra carrega o nome principal do usuário (UPN, em inglês) do usuário associado do Active Directory e o salva em uma declaração temporária.

  5. Clique em Finish.

  6. Clique em Add Rule para criar uma segunda regra.

  7. Selecione Send Claims Using a Custom Rule e clique em Next.

  8. Na próxima página, aplique as seguintes configurações:

    1. Claim rule name: Transform UPN
    2. Regra personalizada:

      c:[Type == "http://temp.google.com/upn"]
       => issue(Type = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", Value = RegexReplace(c.Value, "@(.*?)$", "@[DOMAIN]"));
      

      Esta regra abre a declaração temporária que contém o UPN e substitui o domínio do sufixo UPN por [DOMAIN]. A declaração resultante será emitida para o Login do Google e usada para associar o usuário ao Cloud Identity ou ao Google Workspace.

      Substitua [DOMAIN] pelo domínio principal da sua conta do Cloud Identity ou do Google Workspace.

  9. Clique em Concluir e em OK.

    Dependendo do UPN original, talvez seja necessário aplicar diferentes substituições. Nesse caso, é preciso criar mais regras, uma para cada substituição possível, e usar condições para qualificar qual regra deve ser aplicada e quando ela será usada. Por exemplo, a regra a seguir substitui o domínio UPN por corp.example.com, mas somente se o domínio original for corp.local:

    c:[Type == "http://temp.google.com/upn", value =~ "^.+@corp.local$"]
     => issue(Type = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", Value = RegexReplace(c.Value, "@(.*?)$", "corp.example.com"));
    

    Se você tiver de aplicar diferentes substituições, será preciso executar configurações separadas do Cloud Directory Sync, uma para cada.

E-mail

  1. No console de gerenciamento do AD FS, em Relying Party Trusts, clique com o botão direito do mouse no trust recém-criado e clique em Edit Claim Issuance Policy.
  2. Na caixa de diálogo, clique em Add Rule.
  3. Selecione Enviar atributos LDAP como declarações e clique em Próximo.
  4. Na próxima página, aplique as configurações a seguir:
    1. Nome da regra de declaração: E-mail do mapa e ID do nome
    2. Repositório de atributos: Active Directory
  5. Adicione uma linha à lista de mapeamentos de atributos LDAP:
    1. Atributo LDAP: E-Mail-Addresses
    2. Tipo de declaração de saída: Name ID
  6. Clique em Concluir e em OK.

E-mail: substituição de domínio

  1. No console de gerenciamento do AD FS, em Relying Party Trusts, clique com o botão direito do mouse no trust recém-criado e clique em Edit Claim Issuance Policy.
  2. Na caixa de diálogo, clique em Add Rule.
  3. Selecione Send Claims Using a Custom Rule e clique em Next.
  4. Na próxima página, aplique as seguintes configurações:

    1. Claim rule name: Load email address
    2. Custom Rule:

      c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"]
       => add(store = "Active Directory", types = ("http://temp.google.com/mail"), query = ";mail;{0}", param = c.Value);
      

      Essa regra carrega o endereço de e-mail do respectivo usuário do Active Directory e o salva em uma reivindicação temporária.

  5. Clique em Finish.

  6. Clique em Add Rule para criar uma segunda regra.

  7. Selecione Send Claims Using a Custom Rule e clique em Next.

  8. Na próxima página, aplique as seguintes configurações:

    1. Claim rule name: Transform email address
    2. Regra personalizada:

      c:[Type == "http://temp.google.com/mail"]
       => issue(Type = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", Value = RegexReplace(c.Value, "@(.*?)$", "@[DOMAIN]"));
      

      Essa regra lê a declaração temporária que contém o endereço de e-mail e substitui o domínio por [DOMAIN]. A declaração resultante será emitida para o Login do Google e usada para identificar o usuário no Cloud Identity ou no Google Workspace.

      Substitua [DOMAIN] pelo domínio principal da sua conta do Cloud Identity ou do Google Workspace.

  9. Clique em Concluir e em OK.

Como exportar o certificado de assinatura de tokens do AD FS

Quando o AD FS emite uma declaração SAML, o Login do Google precisa verificar a integridade e a autenticidade da declaração. Para essa finalidade, o SAML exige que a declaração seja assinada usando uma chave de assinatura de token especial, que é a chave privada de um par de chave pública/privada designado. A chave pública desse par é disponibilizada para os SPs na forma de um certificado de assinatura de token e permite que os SPs verifiquem a assinatura de uma declaração.

Antes de configurar sua conta do Cloud Identity ou do Google Workspace, exporte o certificado de assinatura de tokens do AD FS:

  1. No console de gerenciamento do AD FS, clique em Service > Certificates.
  2. Clique com o botão direito do mouse no certificado listado em Token-signing e clique em View Certificate.
  3. Clique na guia Details.
  4. Clique em Copy to File para abrir o Certificate Export Wizard.
  5. Clique em Next.
  6. Selecione Base-64 encoded X.509 (.CER) como o formato e clique em Next.
  7. Forneça um nome de arquivo local e clique em Next.
  8. Confirme a exportação clicando em Finish.
  9. Clique em OK para dispensar a caixa de mensagem confirmando que a exportação foi bem-sucedida.
  10. Copie o certificado exportado para o computador local.

Como configurar sua conta do Cloud Identity ou do Google Workspace

Com a configuração do AD FS concluída, agora é possível configurar o Logon único na sua conta do Cloud Identity ou do Google Workspace:

  1. No Admin Console, clique em Segurança > Configurações.
  2. Clique em Configurar Logon único (SSO) com um IdP de terceiros.
  3. Certifique-se de que Configurar Logon único de provedor de identidade de terceiros esteja ativado.
  4. Insira as configurações a seguir: Substitua [ADFS] pelo nome de domínio totalmente qualificado do servidor do AD FS em todos os URLs:
    1. URL da página de login: https://[ADFS]/adfs/ls/
    2. URL da página de logout: https://[ADFS]/adfs/ls/?wa=wsignout1.0
    3. URL para alteração de senha: https://[ADFS]/adfs/portal/updatepassword/
  5. Em Certificado de verificação, clique em Fazer upload do certificado e escolha o certificado de assinatura de tokens do AD FS que você salvou anteriormente.
  6. Clique em Salvar.
  7. Na próxima página, confirme se você quer ativar o logon único e clique em Entendo e concordo.
  8. Para sair do Admin Console, no canto superior direito, clique no avatar e clique em Sair.

Como testar o logon único

Você concluiu a configuração do Logon único no AD FS e no Cloud Identity ou no Google Workspace. Para verificar se o logon único está funcionando conforme o esperado, execute o seguinte teste:

  1. Escolha um usuário do Active Directory que tenha sido provisionado anteriormente para o Cloud Identity ou o Google Workspace e que não tenha privilégios de superadministrador atribuídos. Os usuários que têm privilégios de superadministrador precisam sempre fazer login usando as credenciais do Google. Portanto, eles não são adequados para testar o Logon único.
  2. Abra uma nova janela do navegador e acesse https://console.cloud.google.com/.
  3. Na página de login do Google exibida, insira o endereço de e-mail do usuário e clique em Avançar. Se você usar substituição de domínio, será preciso aplicar a substituição ao endereço de e-mail.

    Digite o endereço de e-mail do usuário.

    Você será redirecionado para o AD FS. Se você configurou o AD FS para usar a autenticação baseada em formulários, verá a página de login.

  4. Digite o UPN e a senha do usuário do Active Directory e clique em Fazer login.

    Digite o UPN e a senha do usuário do Active Directory.

  5. Após realizar a autenticação, o AD FS redireciona você de volta para o Google Identity Platform. Como esse é o primeiro login desse usuário, é solicitado que você aceite os Termos de Serviço e a Política de Privacidade do Google.

  6. Se você concordar, clique em Aceitar.

  7. Você será redirecionado para o Console do Cloud, que solicitará a confirmação das preferências e a aceitação dos Termos de Serviço do Google Cloud. Se você concordar, clique em Sim e, em seguida, clique em Concordar e continuar.

  8. No canto superior esquerdo, clique no ícone de avatar e clique em Sair.

    Você será redirecionado para uma página do AD FS confirmando que foi desconectado.

Se você tiver problemas para fazer o login, habilitar o registro de depuração do AD FS no servidor do AD FS pode ajudar a diagnosticar o problema. Se você estiver usando a Autenticação integrada do Windows, considere mudar temporariamente para a autenticação baseada em formulários para realizar testes com diferentes usuários com mais facilidade.

Lembre-se de que os usuários que têm privilégios de superadministrador estão isentos do Logon único. Portanto, você ainda pode usar o Admin Console para verificar ou alterar as configurações.

Limpeza

Se você não pretende manter o Logon único ativado para sua organização, siga estas etapas para desativar o Logon único no Cloud Identity ou no Google Workspace:

  1. No Admin Console, clique em Segurança > Configurações.
  2. Clique em Configurar Logon único (SSO) com um IdP de terceiros.
  3. Desmarque a caixa de seleção Configurar Logon único de provedor de identidade de terceiros.
  4. Clique em Salvar.

Para limpar a configuração no AD FS, siga estas etapas:

  1. Faça login no servidor do AD FS e abra o snap-in do MMC do AD FS.
  2. No menu à esquerda, clique com o botão direito do mouse na pasta Relying Party Trusts.
  3. Na lista de objetos de confiança de terceira parte confiável, clique com o botão direito do mouse em Cloud Identity e depois clique em Excluir.
  4. Confirme a exclusão clicando em Sim.

A seguir