Inicio de sesión único de Keycloak

Last reviewed 2025-01-13 UTC

En esta guía, se muestra cómo configurar el inicio de sesión único (SSO) entre Keycloak y tu cuenta de Cloud Identity o de Google Workspace mediante Federación de SAML. En el documento, se supone que instalaste y usas Keycloak.

  • Configura tu servidor de Keycloak, de manera que se pueda utilizar Cloud Identity o Google Workspace como un proveedor de identidad (IdP).
  • Configura tu cuenta de Cloud Identity o de Google Workspace a fin de que use Keycloak para SSO.

Antes de comenzar

  1. Si no tienes una cuenta de Cloud Identity, regístrate para obtener una.
  2. Asegúrate de que tu cuenta de Cloud Identity tenga privilegios de administrador avanzado.
  3. Si tu servidor de Keycloak se usa a fin de administrar más de un dominio, decide qué dominio quieres usar para la federación.
  4. Asegúrate de tener acceso de administrador al dominio seleccionado.

Crea un perfil de SAML

Para configurar el inicio de sesión único con Keycloak, primero debes crear un perfil de SAML en tu cuenta de Cloud Identity o Google Workspace. El perfil de SAML contiene la configuración relacionada con tu servidor de Keycloak, incluida su URL y su certificado de firma.

Más adelante, asignarás el perfil de SAML a ciertos grupos o unidades organizativas.

Para crear un perfil de SAML nuevo en tu cuenta de Cloud Identity o Google Workspace, haz lo siguiente:

  1. En la Consola del administrador, ve a Seguridad > Autenticación > SSO con IdP de terceros.

    Ir al SSO con IdP de terceros

  2. Haz clic en Perfiles de SSO de terceros > Agregar perfil de SAML.

  3. En la página SAML SSO profile, ingresa la siguiente configuración:

    En todas las URL, reemplaza lo siguiente:

    • KEYCLOAK: El nombre de dominio completamente calificado de tu servidor Keycloak
    • REALM: El nombre del dominio seleccionado

    Aún no subas un certificado de verificación.

  4. Haz clic en Guardar.

    La página Perfil de SSO de SAML que aparece contiene dos URLs:

    • ID de entidad
    • URL de ACS

    Necesitarás estas URLs en la siguiente sección cuando configures Keycloak.

Configura Keycloak

Para configurar tu servidor de Keycloak, crea un cliente.

Crea un cliente

Crea un nuevo cliente de SAML en Keycloak:

  1. Accede a Keycloak y abre la consola de administración.
  2. Selecciona el dominio que deseas usar para la federación.
  3. En el menú, selecciona Clients.
  4. Haz clic en Crear cliente.
  5. Establece la siguiente configuración para el cliente:

    • Tipo de cliente: SAML
    • ID de cliente: Es la URL de la entidad de tu perfil de SSO.
    • Nombre: Google Cloud
    • ID de cliente: Es la URL de la entidad de tu perfil de SSO.
    • Client Protocol: saml
    • Client SAML Endpoint: Deja este campo en blanco.
  6. Haz clic en Guardar.

  7. Para especificar los detalles del cliente, establece la siguiente configuración:

    En la pestaña Configuración, haz lo siguiente:

    • URI de redireccionamiento válidos: URL de ACS de tu perfil de SSO
    • Name ID Format: email
    • Force Name ID Format: on
    • Firmar documentos: off
    • Sign Assertions: on

    En la pestaña Keys, haz lo siguiente:

    • Client Signature Required: off
    • Nombre: Un nombre como Google Cloud
    • Sign Assertions: on
    • Client Signature Required: off
    • Force Name ID Format: on
    • Name ID Format: email
    • URI de redireccionamiento válidos: URL de ACS de tu perfil de SSO

    Mantén los valores predeterminados para el resto de las opciones de configuración.

  8. Haz clic en Guardar.

Exporta el certificado de firma

Después de que Keycloak autentica a un usuario, pasa una aserción SAML a Cloud Identity o a Google Workspace. Para habilitar Cloud Identity y Google Workspace a fin de verificar la integridad y la autenticidad de esa aserción, Keycloak firma la aserción con una clave de firma de token especial y proporciona un certificado que habilita Cloud Identity o Google Workspace para verificar la firma.

Ahora, exportarás el certificado de firma desde Keycloak:

  1. En el menú, selecciona Realm settings.
  2. Selecciona la pestaña Keys.
  3. Busca la fila para Algoritmo: RS256. Si hay más de una fila, usa la que tenga Uso: SIG. Luego, selecciona Certificado.

    Aparecerá un diálogo que contiene un certificado codificado en base64.

  4. Copia el valor del certificado codificado en base64 en el portapapeles.

Antes de que puedas usar el certificado de firma, debes convertirlo al formato PEM mediante la adición de un encabezado y un pie de página.

  1. Abre un editor de texto, como el Bloc de notas o vim.
  2. Pega el siguiente encabezado seguido de un salto de línea:

    -----BEGIN CERTIFICATE-----
    
  3. Pega el certificado codificado en base64 desde el portapapeles.

  4. Agrega una línea nueva y pega el siguiente pie de página:

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

    Después del cambio, el archivo se verá de la siguiente manera:

    -----BEGIN CERTIFICATE-----
    MIICmzCCAYMCBgF7v8/V1TANBgkq...
    -----END CERTIFICATE-----
    
  5. Guarda el archivo en una ubicación temporal en tu computadora.

Completa el perfil de SAML

Usa el certificado de firma para completar la configuración de tu perfil de SAML:

  1. Regresa a la Consola del administrador y ve a Seguridad > Autenticación > SSO con IdP de terceros.

    Ir al SSO con IdP de terceros

  2. Abre el perfil de SAML Keycloak que creaste antes.

  3. Haz clic en la sección Detalles de la IDP para editar la configuración.

  4. Haz clic en Upload certificate y elige el certificado de firma de token que descargaste antes.

  5. Haz clic en Guardar.

Tu perfil de SAML está completo, pero aún debes asignarlo.

Asigna el perfil de SAML

Selecciona los usuarios para los que se debe aplicar el nuevo perfil de SAML:

  1. En la Consola del administrador, en la página SSO con IDP de terceros, haz clic en Administrar asignaciones de perfiles de SSO > Administrar.

    Ve a Administrar asignaciones de perfiles de SSO.

  2. En el panel izquierdo, selecciona el grupo o la unidad organizativa para la que quieres aplicar el perfil de SSO. Para aplicar el perfil a todos los usuarios, selecciona la unidad organizativa raíz.

  3. En el panel derecho, selecciona Otro perfil de SSO.

  4. En el menú, selecciona el perfil de SSO de Keycloak - SAML que creaste antes.

  5. Haz clic en Guardar.

Repite los pasos para asignar el perfil de SAML a otro grupo o unidad organizativa.

Prueba el inicio de sesión único

Completaste la configuración de inicio de sesión único. Ahora puedes verificar si el SSO funciona según lo previsto.

  1. Elige un usuario de Keycloak que cumpla con los siguientes criterios:

    • El usuario tiene una dirección de correo electrónico.
    • La dirección de correo electrónico corresponde a la dirección de correo electrónico principal de un usuario existente en tu cuenta de Cloud Identity o Google Workspace.
    • El usuario de Cloud Identity no tiene privilegios de administrador avanzado.

      Las cuentas de usuario que tienen privilegios de administrador avanzado siempre deben acceder mediante credenciales de Google, por lo que no son adecuadas para probar el inicio de sesión único.

  2. Abre una nueva ventana del navegador y ve a la consola de Google Cloud.

  3. En la página de Acceso con Google, ingresa la dirección de correo electrónico de la cuenta de usuario y, luego, haz clic en Siguiente (Next).

    Página de Acceso con Google.

    Se te redireccionará a Keycloak.

  4. Ingresa tus credenciales de Keycloak y, luego, haz clic en Sign in.

    Después de realizar una autenticación exitosa, Keycloak te redirecciona a la consola de Google Cloud. Debido a que es el primer acceso de este usuario, se te pide que aceptes las Condiciones del Servicio y la Política de Privacidad de Google.

  5. Si estás de acuerdo con los términos, haz clic en Aceptar.

  6. Se te redireccionará a la consola de Google Cloud, que te pedirá que confirmes las preferencias y que aceptes las Google Cloud condiciones del servicio. Si estás de acuerdo con las Condiciones del Servicio, haz clic en y, luego, en Aceptar y continuar.

  7. Haz clic en el ícono del avatar y, luego, en Salir.

    Se te redireccionará a Keycloak.

Si tienes problemas para acceder, ten en cuenta que las cuentas de usuario con privilegios de administrador avanzado pueden omitir el SSO, por lo que aún puedes usar la Consola del administrador para verificar o cambiar la configuración.

Opcional: Configura redireccionamientos para URLs de servicios específicas del dominio

Cuando vinculas a la consola de Google Cloud desde portales o documentos internos, puedes mejorar la experiencia del usuario con las URLs de servicio específicas del dominio.

A diferencia de las URLs de servicios normales, como https://console.cloud.google.com/, las URLs de servicios específicos del dominio incluyen el nombre de tu dominio principal. Los usuarios no autenticados que hacen clic en un vínculo a una URL de servicio específica del dominio se redireccionan de inmediato a Keycloak en lugar de que se les muestre primero una página de acceso de Google.

Estos son algunos ejemplos de URLs de servicios específicas del dominio:

Servicio de Google URL Logotipo
Consola de Google Cloud https://www.google.com/a/DOMAIN/ServiceLogin?continue=https://console.cloud.google.com Logotipo de Google Cloud
Documentos de Google https://docs.google.com/a/DOMAIN Logotipo de Documentos de Google
Hojas de cálculo de Google https://www.google.com/a/DOMAIN/ServiceLogin?continue=https://sheets.google.com Logotipo de Hojas de cálculo de Google
Sitios de Google https://www.google.com/a/DOMAIN/ServiceLogin?continue=https://slides.google.com Logotipo de Google Sites
Google Drive https://drive.google.com/a/DOMAIN Logotipo de Google Drive
Gmail https://mail.google.com/a/DOMAIN Logotipo de Gmail
Grupos de Google https://www.google.com/a/DOMAIN/ServiceLogin?continue=https://groups.google.com Logotipo de Grupos de Google
Google Keep https://www.google.com/a/DOMAIN/ServiceLogin?continue=https://keep.google.com Logotipo de Google Keep
Looker Studio https://www.google.com/a/DOMAIN/ServiceLogin?continue=https://lookerstudio.google.com Logotipo de Looker Studio
YouTube https://www.google.com/a/DOMAIN/ServiceLogin?continue=https://www.youtube.com/ Logotipo de YouTube

Para configurar las URLs del servicio específicas del dominio de modo que redireccionen a Keycloak, haz lo siguiente:

  1. En la Consola del administrador, en la página SSO con IdP de terceros, haz clic en URLs de servicio específicas del dominio > Editar.

    Ir a las URLs de servicio específicas del dominio

  2. Establece Redirecciona automáticamente a los usuarios a un IdP externo en el siguiente perfil de SSO como habilitado.

  3. Establece perfil de SSO en Keycloak.

  4. Haz clic en Guardar.

Opcional: Configura las verificaciones de identidad

Es posible que el Acceso con Google solicite a los usuarios una verificación adicional cuando accedan desde dispositivos desconocidos o cuando su intento de acceso parezca sospechoso por otros motivos. Estos desafíos de acceso ayudan a mejorar la seguridad, por lo que te recomendamos que los dejes habilitados.

Si consideras que los desafíos de acceso causan demasiados inconvenientes, puedes inhabilitarlos. Para ello, haz lo siguiente:

  1. En la Consola del administrador, ve a Seguridad > Autenticación > Desafíos de acceso.
  2. En el panel izquierdo, selecciona una unidad organizativa para la que quieras inhabilitar los desafíos de acceso. Para inhabilitar los desafíos de acceso para todos los usuarios, selecciona la unidad organizativa raíz.
  3. En Configuración para usuarios que acceden con otros perfiles de SSO, selecciona No solicites a los usuarios verificaciones adicionales de Google.
  4. Haz clic en Guardar.

¿Qué sigue?