Logon único

Last reviewed 2023-02-27 UTC

É possível configurar a conta do Cloud Identity ou do Google Workspace para usar o Logon único (SSO). Ao ativar o SSO, os usuários não são solicitados a inserir uma senha quando tentam acessar os serviços do Google. Em vez disso, eles são redirecionados para um provedor de identidade externo (IdP, na sigla em inglês) para autenticação.

O uso do SSO oferece diversas vantagens:

  • Você oferece uma experiência melhor aos usuários porque eles podem usar as credenciais atuais para autenticar e não precisam inserir as credenciais com frequência.
  • Você garante que o IdP atual continue sendo o sistema de registro para autenticar usuários.
  • Não é necessário sincronizar senhas com o Cloud Identity ou o Google Workspace.

Para usar o SSO, um usuário precisa ter uma conta de usuário no Cloud Identity ou Google Workspace e uma identidade correspondente no IdP externo. Por isso, o SSO é muito usado em combinação com uma fonte autorizada externa que provisiona automaticamente os usuários ao Cloud Identity ou ao Google Workspace.

Processo de logon único

O Cloud Identity e o Google Workspace são compatíveis com a Linguagem de marcação para autorização de segurança (SAML, na sigla em inglês) 2.0 no logon único. O SAML é um padrão aberto para a troca de dados de autenticação e autorização entre um IdP SAML e provedores de serviços SAML. Quando você usa o SSO para o Cloud Identity ou o Google Workspace, seu IdP externo é o IdP SAML, e o Google é o provedor de serviços SAML.

O Google implementa a vinculação do POST HTTP SAML 2.0. Essa vinculação especifica como as informações de autenticação são trocadas entre o IdP SAML e o provedor de serviços SAML. O diagrama a seguir ilustra um exemplo de como esse processo funciona quando você usa o SSO para acessar o console do Google Cloud.

Como usar o SSO para acessar o Console do Google Cloud.

  1. Aponte seu navegador para o console do Google Cloud (ou qualquer outro recurso do Google que exija autenticação).
  2. Como você ainda não está autenticado, o console do Google Cloud redireciona seu navegador para o Login do Google.
  3. O Login do Google retorna uma página de login, solicitando que você insira seu endereço de e-mail.
  4. Você insere seu endereço de e-mail e envia o formulário.
  5. O Login do Google procura a conta do Cloud Identity ou do Google Workspace associada ao seu endereço de e-mail.
  6. Como a conta do Cloud Identity ou do Google Workspace associada tem o logon único ativado, o Login do Google redireciona o navegador para o URL do IdP externo configurado. Antes de emitir o redirecionamento, ele adiciona dois parâmetros ao URL, RelayState e SAMLRequest.

    • RelayState contém um identificador que espera que o IdP externo transmita esses dados posteriormente.
    • SAMLRequest contém a solicitação de autenticação SAML, um documento XML que foi esvaziado, codificado em base64 e codificado em URL. No formato decodificado, a solicitação de autenticação SAML é semelhante a esta:

      <samlp:AuthnRequest
              ProviderName="google.com"
              IsPassive="false"
              AssertionConsumerServiceURL="https://www.google.com/a/example.com/acs"
              ...>
        <saml:Issuer xmlns:saml="...">google.com</saml:Issuer>
        <samlp:NameIDPolicy
              AllowCreate="true"
              Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"/>
      </samlp:AuthnRequest>
      

    Este exemplo de solicitação instrui o IdP externo a autenticar o usuário, cria uma asserção SAML para o público google.com e a publica no serviço de declaração de consumidor (ACS) em https://www.google.com/a/exemplo.com/acs.

    O domínio incorporado ao URL do ACS (example.com) corresponde ao domínio principal da conta do Google Workspace ou do Cloud Identity.

    Se você usar o recurso emissor específico do domínio ao configurar o SSO, o emissor será google.com/a/DOMAIN em vez de google.com, em que DOMAIN é o domínio principal da conta do Cloud Identity ou do Google Workspace.

    As etapas executadas pelo IdP externo para executar a autenticação dependem do IdP e da configuração dele. Por exemplo, talvez ele exiba uma caixa de diálogo de login ou uma solicitação de MFA ou impressão digital. Após a conclusão dessas etapas, a troca SAML continuará:

    Troca SAML usando SSO.

  7. O IdP externo retorna uma página HTML especialmente criada que faz com que o navegador envie imediatamente uma solicitação HTTP POST para o URL do ACS. Essa solicitação contém dois parâmetros:

    • RelayState, que contém o valor originalmente transmitido para o IdP na solicitação de autenticação SAML.
    • SAMLResponse, que contém a declaração SAML codificada em base64. A asserção SAML é um documento XML que declara que o IdP autenticou o usuário com sucesso. No formato decodificado, a declaração SAML é semelhante a esta:

      <samlp:Response ...>
        ...
        <Assertion x...>
          <Issuer>https://idp.example.org/</Issuer>
          <Signature ...>
            ...
          </Signature>
          <Subject>
            <NameID Format="...:nameid-format:emailAddress">bob@example.org</NameID>
            ...
          </Subject>
          <Conditions NotBefore="..." NotOnOrAfter="...">
            <AudienceRestriction>
              <Audience>google.com</Audience>
            </AudienceRestriction>
          </Conditions>
          <AttributeStatement>
            ...
          </AttributeStatement>
          <AuthnStatement AuthnInstant="..." ...>
            <AuthnContext>
              <AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:Password</AuthnContextClassRef>
            </AuthnContext>
          </AuthnStatement>
        </Assertion>
      </samlp:Response>
      

    Essa declaração de exemplo foi emitida para o público-alvo google.com, que corresponde ao emissor da solicitação de autenticação SAML, e declara que o IdP https://idp.example.org/ autenticou o usuário bob@example.org.

    A asserção SAML também contém uma assinatura digital. O IdP cria essa assinatura usando a chave privada de um certificado de assinatura. A chave privada é conhecida somente pelo IdP. A chave pública correspondente faz parte da configuração do SSO no Cloud Identity ou no Google Workspace e é compartilhada com o Login do Google.

    A declaração SAML também contém uma assinatura digital que permite que o provedor de serviços SAML verifique a autenticidade da declaração.

  8. O navegador publica a asserção SAML no endpoint de ACS do Google.

  9. O endpoint de ACS verifica a assinatura digital da asserção SAML. Essa verificação é feita para garantir que a declaração seja originada no IdP externo confiável e que não tenha sido adulterada. Supondo que a assinatura seja válida, o endpoint do ACS analisa o conteúdo da declaração, o que inclui verificar as informações do público e ler o atributo NameID.

  10. O endpoint do ACS procura sua conta de usuário fazendo a correspondência de NameID da asserção SAML com o endereço de e-mail principal do usuário. O endpoint inicia uma sessão.

  11. Com base nas informações codificadas no parâmetro RelayState, o endpoint determina o URL do recurso que você pretendia acessar anteriormente, e você é redirecionado para o console do Google Cloud.

Login iniciado pelo IdP

O processo descrito na seção anterior às vezes é chamado de logon iniciado pelo provedor de serviços porque ele começa no provedor de serviços, que no exemplo anterior é o console do Google Cloud.

O SAML também define um fluxo alternativo chamado Logon iniciado pelo IdP, que começa no IdP. O Google não oferece suporte a esse fluxo, mas é possível conseguir resultados semelhantes usando o seguinte URL para iniciar um logon iniciado pelo provedor de serviços:

https://www.google.com/a/DOMAIN/ServiceLogin?continue=https://console.cloud.google.com/

Neste exemplo, DOMAIN é o domínio principal da conta do Cloud Identity ou do Google Workspace.

Autenticação multifator

Para proteger contas de usuários contra acesso não autorizado, você pode exigir que os usuários forneçam um segundo fator durante a autenticação. Há duas maneiras de implementar a autenticação multifator ao usar logon único:

  1. Se o IdP externo for compatível com a autenticação multifator, será possível fazer a autenticação multifator como parte do processo de logon baseado em SAML. Neste caso, nenhuma configuração extra é necessária no Cloud Identity ou no Google Workspace.
  2. Se o IdP não for compatível com a autenticação multifator, configure sua conta do Cloud Identity ou o Google Workspace para fazer a verificação em duas etapas imediatamente após a autenticação de um usuário com o IdP externo.

Rede

Na vinculação de redirecionamento HTTP de SAML 2.0, o IdP e o provedor de serviços não se comunicam diretamente. Em vez disso, toda a comunicação é redirecionada por meio do navegador do usuário, como mostrado no diagrama a seguir:

Comunicação redirecionada por meio do navegador do usuário.

Com essa arquitetura, não é necessário que o IdP seja exposto pela Internet ou tenha acesso à Internet, desde que os usuários possam acessá-lo pela rede corporativa.

Configuração do IdP externo

O Cloud Identity e o Google Workspace permitem configurar o Logon único usando os seguintes recursos:

  • Perfis SAML: você pode criar um perfil SAML para cada IdP que queira integrar. Para cada usuário, grupo ou unidade organizacional na sua conta do Cloud Identity ou do Google Workspace, você decide se eles precisarão usar o SSO e qual perfil SAML usarão.

  • Perfis organizacionais clássicos de SSO: é possível criar um único perfil organizacional para integrar a um único IdP. Para cada usuário, grupo ou unidade organizacional na sua conta do Cloud Identity ou do Google Workspace, você decide se eles precisarão ou não usar o SSO.

A maneira correta de configurar o IdP depende do uso de perfis SAML ou de perfis organizacionais clássicos. A tabela a seguir resume as configurações que normalmente precisam ser definidas em um IdP externo para ajudar a garantir a compatibilidade.

Configuração Configuração necessária para
perfis organizacionais clássicos
Configuração necessária para
perfis SAML
Comentários
ID de nome Endereço de e-mail principal de um usuário Endereço de e-mail principal de um usuário
Formato do código de nome urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress
o código da entidade

Se o recurso do emissor específico do domínio estiver ativado:

google.com/a/DOMAIN

Se o recurso do emissor específico do domínio estiver desativado (padrão):

google.com

Use o recurso do emissor específico do domínio se quiser integrar várias contas do Google Workspace ou do Cloud Identity ao mesmo IdP. Caso contrário, deixe o recurso desativado.

ID de entidade exclusivo do seu perfil SAML.

Dependendo da data de criação do perfil SAML, o ID da entidade usa um dos seguintes formatos:

https://accounts.google.com/samlrp/metadata?rpid=ID

https://accounts.google.com/samlrp/ID

Padrão do URL do ACS (ou URL de redirecionamento) https://www.google.com/a/* URL do ACS exclusivo do seu perfil SAML.

Dependendo da data de criação do seu perfil SAML, o URL usará um dos seguintes formatos:

https://accounts.google.com/samlrp/acs?rpid=ID

https://accounts.google.com/samlrp/ID/acs

Solicitar assinatura Desativado Desativado As solicitações de autenticação SAML emitidas pelo Login do Google nunca são assinadas
Assinatura de declaração Ativado Ativado As declarações de SAML precisam ser assinadas para permitir que o Login do Google verifique a autenticação.

Ao configurar o SSO no Admin Console, faça upload da chave pública do par de chaves de assinatura de tokens.
Criptografia de declarações Desativado Desativado
Algoritmo de assinatura RSA-SHA256 RSA-SHA256 RSA-SHA256 (às vezes abreviado como RS256)

A seguir