Início de sessão único do Keycloak

Last reviewed 2025-01-13 UTC

Este guia mostra como configurar o Início de sessão único (SSO) entre o Keycloak e a sua conta do Cloud ID ou do Google Workspace através da federação SAML. O documento pressupõe que instalou e está a usar o Keycloak.

Objetivos

  • Configure o seu servidor Keycloak para que possa ser usado como um fornecedor de identidade (IdP) pelo Cloud ID ou Google Workspace.
  • Configure a sua conta do Cloud ID ou Google Workspace para que use o Keycloak para o SSO.

Antes de começar

  1. Se não tiver uma conta do Cloud Identity, inscreva-se para criar uma conta.
  2. Certifique-se de que a sua conta do Cloud ID tem privilégios de superadministrador.
  3. Se o seu servidor Keycloak for usado para gerir mais do que um domínio, decida que domínio quer usar para a federação.
  4. Certifique-se de que tem acesso de administrador ao domínio selecionado.

Crie um perfil SAML

Para configurar o Início de sessão único com o Keycloak, primeiro, crie um perfil SAML na sua conta do Cloud ID ou do Google Workspace. O perfil SAML contém as definições relacionadas com o seu servidor Keycloak, incluindo o respetivo URL e certificado de assinatura.

Posteriormente, atribui o perfil SAML a determinados grupos ou unidades organizacionais.

Para criar um novo perfil SAML na sua conta do Cloud ID ou do Google Workspace, faça o seguinte:

  1. Na consola do administrador, aceda a Segurança > Autenticação > SSO com IdP de terceiros.

    Aceda a SSO com IdP de terceiros

  2. Clique em Perfis de SSO de terceiros > Adicionar perfil de SAML.

  3. Na página Perfil de SSO de SAML, introduza as seguintes definições:

    • Nome: Keycloak
    • ID de entidade do IDP:

      Keycloak 17 ou posterior

      https://KEYCLOAK/realms/REALM
      

      Keycloak 16 ou anterior

      https://KEYCLOAK/auth/realms/REALM
      
    • URL da página de início de sessão:

      Keycloak 17 ou posterior

      https://KEYCLOAK/realms/REALM/protocol/saml
      

      Keycloak 16 ou anterior

      https://KEYCLOAK/auth/realms/REALM/protocol/saml
      
    • URL da página de fim de sessão:

      Keycloak 17 ou posterior

      https://KEYCLOAK/realms/REALM/protocol/openid-connect/logout
      

      Keycloak 16 ou anterior

      https://KEYCLOAK/auth/realms/REALM/protocol/openid-connect/logout?redirect_uri=https://KEYCLOAK/auth/realms/REALM/account/
      
    • URL para alterar a palavra-passe:

      Keycloak 17 ou posterior

      https://KEYCLOAK/realms/REALM/account
      

      Keycloak 16 ou anterior

      https://KEYCLOAK/auth/realms/REALM/account
      

    Em todos os URLs, substitua o seguinte:

    • KEYCLOAK: o nome do domínio totalmente qualificado do seu servidor Keycloak
    • REALM: o nome do reino selecionado

    Não carregue ainda um certificado de validação.

  4. Clique em Guardar.

    A página Perfil de SSO de SAML apresentada contém dois URLs:

    • ID da entidade
    • URL do ACS

    Precisa destes URLs na secção seguinte quando configurar o Keycloak.

Configure o Keycloak

Configura o servidor Keycloak criando um cliente.

Crie um cliente

Crie um novo cliente SAML no Keycloak:

  1. Inicie sessão no Keycloak e abra a consola de administração.
  2. Selecione o domínio que quer usar para a federação.
  3. No menu, selecione Clientes.
  4. Clique em Criar cliente.
  5. Configure as seguintes definições para o cliente:

    Keycloak 19 ou posterior

    • Tipo de cliente: SAML
    • ID do cliente: URL da entidade do seu perfil de SSO.
    • Nome: Google Cloud

    Keycloak 18 ou anterior

    • ID do cliente: URL da entidade do seu perfil de SSO.
    • Protocolo do cliente: saml
    • Ponto final SAML do cliente: deixe em branco
  6. Clique em Guardar.

  7. Especifique os detalhes do cliente configurando as seguintes definições:

    Keycloak 19 ou posterior

    No separador Definições:

    • URIs de redirecionamento válidos: URL de ACS do seu perfil de SSO
    • Formato do ID do nome: email
    • Forçar formato de ID de nome: ativado
    • Assinar documentos: desativado
    • Assinatura de afirmações: ativada

    No separador Chaves:

    • Assinatura do cliente obrigatória: desativada

    Keycloak 18 ou anterior

    • Nome: um nome como Google Cloud
    • Assinatura de afirmações: ativada
    • Assinatura do cliente obrigatória: desativada
    • Forçar formato de ID de nome: ativado
    • Formato do ID do nome: email
    • URIs de redirecionamento válidos: URL de ACS do seu perfil de SSO

    Mantenha os valores predefinidos para todas as outras definições.

  8. Clique em Guardar.

Exporte o certificado de assinatura

Depois de o Keycloak autenticar um utilizador, transmite uma afirmação SAML ao Cloud Identity ou ao Google Workspace. Para permitir que o Cloud ID e o Google Workspace validem a integridade e a autenticidade dessa afirmação, o Keycloak assina a afirmação com uma chave de assinatura de tokens especial e fornece um certificado que permite ao Cloud ID ou ao Google Workspace verificar a assinatura.

Agora, exporte o certificado de assinatura do Keycloak:

  1. No menu, selecione Definições do domínio.
  2. Selecione o separador Chaves.
  3. Encontre a linha para Algoritmo: RS256. Se houver mais do que uma linha, use a que tem Usar: SIG. Em seguida, selecione Certificado.

    É apresentada uma caixa de diálogo que contém um certificado codificado em base64.

  4. Copie o valor do certificado codificado em base64 para a área de transferência.

Antes de poder usar o certificado de assinatura, tem de o converter para o formato PEM adicionando um cabeçalho e um rodapé.

  1. Abra um editor de texto, como o Bloco de notas ou o vim.
  2. Cole o seguinte cabeçalho, seguido de uma nova linha:

    -----BEGIN CERTIFICATE-----
    
  3. Cole o certificado codificado em base64 da área de transferência.

  4. Adicione uma nova linha e cole o seguinte rodapé:

    -----END CERTIFICATE-----
    

    Após a alteração, o ficheiro tem um aspeto semelhante ao seguinte:

    -----BEGIN CERTIFICATE-----
    MIICmzCCAYMCBgF7v8/V1TANBgkq...
    -----END CERTIFICATE-----
    
  5. Guarde o ficheiro numa localização temporária no computador.

Conclua o perfil SAML

Use o certificado de assinatura para concluir a configuração do seu perfil SAML:

  1. Regresse à consola do administrador e aceda a Segurança > Autenticação > SSO com IdP de terceiros.

    Aceda a SSO com IdP de terceiros

  2. Abra o perfil SAML Keycloak que criou anteriormente.

  3. Clique na secção Detalhes do IDP para editar as definições.

  4. Clique em Carregar certificado e escolha o certificado de assinatura de tokens que transferiu anteriormente.

  5. Clique em Guardar.

O seu perfil SAML está concluído, mas ainda tem de o atribuir.

Atribua o perfil SAML

Selecione os utilizadores aos quais o novo perfil SAML deve ser aplicado:

  1. Na consola do administrador, na página SSO com IdPs de terceiros, clique em Gerir atribuições de perfis de SSO > Gerir.

    Aceda a Gerir atribuições de perfis de SSO

  2. No painel do lado esquerdo, selecione o grupo ou a unidade organizacional para os quais quer aplicar o perfil de SSO. Para aplicar o perfil a todos os utilizadores, selecione a unidade organizacional de raiz.

  3. No painel do lado direito, selecione Outro perfil de SSO.

  4. No menu, selecione o Keycloak - SAML perfil de SSO que criou anteriormente.

  5. Clique em Guardar.

Repita os passos para atribuir o perfil SAML a outro grupo ou unidade organizacional.

Teste o início de sessão único

Concluiu a configuração do Início de sessão único. Agora, pode verificar se o SSO funciona conforme previsto.

  1. Escolha um utilizador do Keycloak que cumpra os seguintes critérios:

    • O utilizador tem um endereço de email.
    • O endereço de email corresponde ao endereço de email principal de um utilizador existente na sua conta do Cloud ID ou do Google Workspace.
    • O utilizador do Cloud Identity não tem privilégios de superadministrador.

      As contas de utilizador com privilégios de superadministrador têm sempre de iniciar sessão através das credenciais Google, pelo que não são adequadas para testar o início de sessão único.

  2. Abra uma nova janela do navegador e aceda à Google Cloud consola.

  3. Na página de início de sessão do Google, introduza o endereço de email da conta de utilizador e, de seguida, clique em Seguinte.

    Página de início de sessão do Google.

    É feito um redirecionamento para o Keycloak.

  4. Introduza as suas credenciais do Keycloak e, de seguida, clique em Iniciar sessão.

    Após a autenticação bem-sucedida, o Keycloak redireciona-o de volta para a Google Cloud consola. Uma vez que esta é a primeira vez que o utilizador inicia sessão, é-lhe pedido que aceite os Termos de Utilização e a Política de Privacidade da Google.

  5. Se concordar com os termos, clique em Aceitar.

  6. É redirecionado para a Google Cloud consola, que lhe pede para confirmar as preferências e aceitar os Google Cloud Termos de Utilização. Se aceitar os termos, clique em Sim e, de seguida, em Aceitar e continuar.

  7. Clique no ícone de avatar e, de seguida, clique em Terminar sessão.

    É feito um redirecionamento para o Keycloak.

Se tiver problemas ao iniciar sessão, tenha em atenção que as contas de utilizador com privilégios de superadministrador podem ignorar o SSO, pelo que ainda pode usar a consola do administrador para validar ou alterar as definições.

Opcional: configure redirecionamentos para URLs de serviço específicos do domínio

Quando cria uma associação à Google Cloud consola a partir de portais ou documentos internos, pode melhorar a experiência do utilizador através de URLs de serviços específicos do domínio.

Ao contrário dos URLs de serviços normais, como https://console.cloud.google.com/, os URLs de serviços específicos do domínio incluem o nome do seu domínio principal. Os utilizadores não autenticados que clicam num link para um URL de serviço específico do domínio são imediatamente redirecionados para o Keycloak, em vez de lhes ser apresentada primeiro uma página de início de sessão do Google.

Seguem-se alguns exemplos de URLs de serviço específicos do domínio:

Serviço Google URL Logótipo
Google Cloud consola https://www.google.com/a/DOMAIN/ServiceLogin?continue=https://console.cloud.google.com/ Logótipo do Google Cloud
Google Docs https://docs.google.com/a/DOMAIN Logótipo do Google Docs
Google Sheets https://www.google.com/a/DOMAIN/ServiceLogin?continue=https://sheets.google.com/ Logótipo do Google Sheets
Google Sites https://www.google.com/a/DOMAIN/ServiceLogin?continue=https://slides.google.com/ Logótipo do Google Sites
Google Drive https://drive.google.com/a/DOMAIN Logótipo do Google Drive
Gmail https://mail.google.com/a/DOMAIN Logótipo do Gmail
Grupos do Google https://www.google.com/a/DOMAIN/ServiceLogin?continue=https://groups.google.com/ Logótipo do Grupos do Google
Google Keep https://www.google.com/a/DOMAIN/ServiceLogin?continue=https://keep.google.com/ Logótipo do Google Keep
Looker Studio https://www.google.com/a/DOMAIN/ServiceLogin?continue=https://lookerstudio.google.com/ Logótipo do Looker Studio
YouTube https://www.google.com/a/DOMAIN/ServiceLogin?continue=https://www.youtube.com/ Logótipo do YouTube

Para configurar URLs de serviço específicos do domínio para que sejam redirecionados para o Keycloak, faça o seguinte:

  1. Na consola do administrador, na página SSO com IdPs de terceiros, clique em URLs de serviço específicos do domínio > Editar.

    Aceda aos URLs de serviço específicos do domínio

  2. Defina a opção Redirecione automaticamente os utilizadores para o IdP de terceiros no seguinte perfil de SSO como ativada.

  3. Defina o perfil de SSO como Keycloak.

  4. Clique em Guardar.

Opcional: configure desafios de início de sessão

O início de sessão na Google pode pedir aos utilizadores uma validação adicional quando iniciam sessão a partir de dispositivos desconhecidos ou quando a respetiva tentativa de início de sessão parece suspeita por outros motivos. Estes desafios de início de sessão ajudam a melhorar a segurança e recomendamos que os deixe ativados.

Se considerar que os desafios de início de sessão causam demasiada fricção, pode desativá-los fazendo o seguinte:

  1. Na consola do administrador, aceda a Segurança > Autenticação > Desafios de início de sessão.
  2. No painel do lado esquerdo, selecione uma unidade organizacional para a qual quer desativar os desafios de início de sessão. Para desativar os desafios de início de sessão para todos os utilizadores, selecione a unidade organizacional de raiz.
  3. Em Definições para utilizadores que iniciam sessão com outros perfis de SSO, selecione Não pedir validações adicionais da Google aos utilizadores.
  4. Clique em Guardar.

O que se segue?