Federa Google Cloud con Active Directory: configura el inicio de sesión único

En este artículo, se muestra cómo configurar el inicio de sesión único entre el entorno de Active Directory y la cuenta de Cloud Identity o G Suite mediante los Servicios de federación de Active Directory de Microsoft (AD FS) y federación de SAML.

En este artículo, se supone que comprendes cómo se puede extender la administración de identidades de Active Directory a Google Cloud y que ya configuraste el aprovisionamiento de usuarios. También se supone que tienes un servidor de AD FS 4.0 que se ejecuta en Windows Server 2016 o una versión posterior de Windows Server.

Para seguir esta guía, se requieren conocimientos de Active Directory Domain Services y AD FS. También necesitas un usuario en Cloud Identity o G Suite que tenga privilegios de administrador avanzado y un usuario en Active Directory que tenga acceso de administrador a tu servidor de AD FS.

Objetivos

  • Configurar un servidor de AD FS para que Cloud Identity o G Suite puedan usarlo como proveedor de identidad
  • Crear una política de emisión de notificaciones que coincida con las identidades entre Active Directory y Cloud Identity o G Suite
  • Configurar la cuenta de Cloud Identity o G Suite para que delegue la autenticación a AD FS

Costos

Si usas la edición gratuita de Cloud Identity, en este artículo no usarás componentes facturables de Google Cloud.

Antes de comenzar

  1. Verifica que el servidor de AD FS ejecute Windows Server 2016 o una versión posterior. Si bien también puedes configurar el inicio de sesión único mediante versiones anteriores de Windows Server y AD FS, los pasos de configuración necesarios pueden ser diferentes de los descritos en este artículo.
  2. Asegúrate de comprender cómo se puede extender la administración de identidades de Active Directory a Google Cloud.
  3. Configura el aprovisionamiento de usuarios entre Active Directory y Cloud Identity o G Suite.
  4. Asegúrate de que el servidor de AD FS use un certificado de capa de conexión segura (SSL) válido que los navegadores de tus usuarios corporativos reconozcan.
  5. Considera establecer AD FS en una configuración de conjunto de servidores a modo de evitar que se convierta en un punto único de fallo. Después de habilitar el inicio de sesión único, la disponibilidad de AD FS determina si los usuarios pueden acceder a Cloud Console.

Información sobre el inicio de sesión único

Mediante Cloud Directory Sync, ya automatizaste la creación y el mantenimiento de los usuarios, y vinculaste su ciclo de vida a los usuarios en Active Directory.

Aunque Cloud Directory Sync aprovisiona los detalles de las cuentas de usuario, no sincroniza las contraseñas. Siempre que un usuario necesite autenticarse en Google Cloud, la autenticación se debe delegar a Active Directory; esto se hace mediante AD FS y el protocolo de lenguaje de marcado para confirmaciones de seguridad (SAML). Esta configuración garantiza que solo Active Directory tenga acceso a las credenciales de usuario y que se apliquen todas las políticas o mecanismos de autenticación de varios factores (MFA) correspondientes. Además, establece una experiencia de inicio de sesión único entre tu entorno local y Google.

SAML 2.0 define un protocolo y un dialecto XML que puedes usar para implementar el inicio de sesión único entre dos partes, que se llaman proveedor de identidad (IdP) y el proveedor de servicios (SP):

  • El SP es la parte que debe autenticar un usuario. Debido a que no está configurado para realizar esta autenticación, el SP delega al IdP la responsabilidad de llevar a cabo la autenticación.
  • El IdP es la parte que realiza la autenticación del usuario. Identifica hechos sobre el usuario y pasa esa información de nuevo al SP. La recopilación de hechos se llama aserción.

A fin de implementar el inicio de sesión único entre Active Directory y Google, debes configurar AD FS a fin de que actúe como IdP y tu cuenta de Cloud Identity o G Suite para que actúe como SP. Con esta configuración, el acceso a Cloud Console funciona de la siguiente manera:

Acceso a Cloud Console.

  1. El usuario abre Cloud Console mediante un navegador.
  2. Debido a que el usuario aún no se autenticó, Cloud Console redirecciona el navegador al Acceso con Google.
  3. El usuario ve una página de acceso en la que debe ingresar una dirección de correo electrónico.
  4. Después de que el usuario envía la dirección de correo electrónico, el Acceso con Google reconoce que la dirección pertenece a una cuenta de Cloud Identity o G Suite que se configuró para la autenticación federada mediante AD FS. En consecuencia, redirecciona el navegador a AD FS.
  5. Según cómo se configure AD FS, este puede hacer volver al usuario a la página de acceso y pedirle que proporcione un nombre de usuario y una contraseña. Si se usa una autenticación basada en Kerberos, el usuario se autentica de forma automática sin tener que ingresar credenciales.
  6. Si el usuario tiene que ingresar credenciales, AD FS interactúa con el centro de distribución de claves de Active Directory mediante Kerberos para validar el nombre de usuario y la contraseña.
  7. Después de validar de forma correcta las credenciales, AD FS redirecciona el navegador al Acceso con Google.
  8. El Acceso con Google establece una sesión y envía el navegador a Cloud Console, que ahora otorga acceso.

Configura AD FS

Antes de habilitar el inicio de sesión único en Cloud Identity o G Suite, primero debes configurar AD FS.

Crea una relación de confianza con la parte autenticada

AD FS necesita que crees una relación de confianza con la parte autenticada por cada SP que se supone que use AD FS para la autenticación. Debes comenzar con la creación de una relación de confianza con la parte autenticada de Cloud Identity o G Suite, que incluye los siguientes pasos:

  1. Accede al servidor de AD FS y abre los complementos MMC de AD FS.
  2. En el menú a la izquierda, haz clic derecho sobre la carpeta Relación de confianza con la parte autenticada. En el menú contextual, selecciona Agregar relación de confianza con la parte autenticada.
  3. En la primera página del asistente, selecciona Compatible con notificaciones (Claims aware) y haz clic en Comenzar (Start).

    Asistente para agregar veracidad del usuario de confianza

  4. En la página siguiente, selecciona Escribir manualmente los datos sobre el usuario de confianza y haz clic en Siguiente.

  5. En la página siguiente, ingresa un nombre para mostrar como Cloud Identity y haz clic en Siguiente.

  6. En la siguiente página, se te solicita un certificado de encriptación de token. Este paso no es necesario para conectarse con la cuenta de Cloud Identity o G Suite, por lo que debes hacer clic en Siguiente.

  7. En la siguiente página, selecciona Habilitar compatibilidad con el protocolo SAML 2.0 WebSSO (Enable support for the SAML 2.0 WebSSO protocol) y, luego, ingresa la siguiente URL de servicio de SSO:

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

    Reemplaza [DOMAIN] por el dominio principal de la cuenta de Cloud Identity o G Suite y haz clic en Siguiente (Next).

    Habilita la compatibilidad con el protocolo SAML 2.0 WebSSO.

  8. En la siguiente página del asistente, se te solicitan los identificadores de relación de confianza con la parte autenticada. Agrega los siguientes identificadores a la lista:

    • google.com/a/[DOMAIN], y reemplaza [DOMAIN] por el dominio principal de tu cuenta de Cloud Identity o G Suite.
    • google.com

    Identificadores de relación de confianza con la parte autenticada

    Haz clic en Siguiente (Next).

  9. En la siguiente página, elige una política de acceso. La configuración de MFA no se incluye en este artículo, por eso, por ahora, haz clic en Permitir a todos y, luego, en Siguiente.

  10. En la página Listo para agregar confianza, revisa tu configuración y, luego, haz clic en Siguiente.

  11. En la página final, limpia la casilla de verificación Configurar política emisión de reclamos y cierra el asistente. En la lista de relación de confianza con la parte autenticada, ahora verás una entrada nueva.

Configura la URL de cierre de sesión

Cuando habilitas a los usuarios a usar inicio de sesión único en varias aplicaciones, es importante permitirles salir de varias aplicaciones:

  1. En la Consola del administrador de AD FS, en Relación de confianza con la parte autenticada, haz clic derecho en la relación de confianza que recién creaste y en Propiedades.
  2. En la pestaña Extremos (Endpoints), haz clic en Agregar SAML (Add SAML).
  3. En el cuadro de diálogo Agregar un extremo (Add an Endpoint), establece esta configuración:

    1. Tipo de extremo (Endpoint type): Cierre de sesión de SAML (SAML Logout)
    2. Vinculación (Binding): POST
    3. URL de confianza (Trusted URL): https://[ADFS]/adfs/ls/?wa=wsignout1.0

      Reemplaza [ADFS] por el nombre de dominio completamente calificado del servidor de AD FS.

      Agrega un extremo

  4. Haz clic en Aceptar (OK).

  5. Haz clic en Aceptar para cerrar el cuadro de diálogo.

Configura la asignación de reclamaciones

Después de que AD FS autentica a un usuario, emite una aserción de SAML. Esta aserción sirve como prueba de que la autenticación se realizó de forma correcta. La aserción debe identificar quién se autenticó, que es el propósito del reclamo de NameID.

Para permitir que el Acceso con Google asocia el NameID con un usuario, el NameID debe contener la dirección de correo electrónico principal de ese usuario. Según cómo asignes usuarios entre Active Directory y Cloud Identity o G Suite, el NameID debe contener el UPN o la dirección de correo electrónico del usuario de Active Directory, con las sustituciones de dominio aplicadas según sea necesario.

UPN

  1. En la Consola del administrador de AD FS, en Relación de confianza con parte autenticada, haz clic con el botón derecho en la relación de confianza nueva y haz clic en Editar política de emisión de reclamo.
  2. En el cuadro de diálogo, haz clic en Agregar regla.
  3. Selecciona Enviar atributos LDAP como notificaciones y haz clic en Siguiente.
  4. En la página siguiente, aplica la configuración que se indica a continuación:
    1. Nombre de la regla de notificación: Asignar ID de nombre y correo electrónico
    2. Almacén de atributos: Active Directory
  5. Agrega una fila a la lista de asignaciones de atributos de LDAP:
    1. Atributo de LDAP: User-Principal-Name
    2. Tipo de reclamación saliente: Name ID
  6. Haz clic en Finalizar y, luego, en Aceptar.

UPN: Sustitución de dominio

  1. En la Consola del administrador de AD FS, en relación de confianza con parte autenticada, haz clic con el botón derecho en la relación de confianza nueva y haz clic en Editar política de emisión de reclamo.
  2. En el cuadro de diálogo, haz clic en Agregar regla.
  3. Selecciona Enviar reclamos con una regla personalizada y haz clic en Siguiente.
  4. En la página siguiente, aplica la configuración que se indica debajo:

    1. Reclamar nombre de la regla: Cargar UPN
    2. Regla personalizada:

      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);
      

      Esta regla carga el nombre principal del usuario (UPN) del usuario asociado de Active Directory y lo guarda en un reclamo temporal.

  5. Haz clic en Finalizar.

  6. Haz clic en Agregar regla para crear una segunda regla.

  7. Selecciona Enviar reclamos con una regla personalizada y haz clic en Siguiente.

  8. En la página siguiente, aplica la configuración que se indica debajo:

    1. Reclamar nombre de la regla: Transformar UPN
    2. Regla 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 regla abre el reclamo temporal que contiene el UPN y reemplaza el dominio de sufijo de UPN por [DOMAIN]. El reclamo resultante se emitirá al Acceso con Google y se usará para asociar al usuario con su usuario en Cloud Identity o G Suite.

      Asegúrate de reemplazar [DOMAIN] por el dominio principal de tu cuenta de Cloud Identity o G Suite.

  9. Haz clic en Finalizar y, luego, en Aceptar.

    Según el UPN original, tal vez tengas que aplicar sustituciones distintas. De ser así, debes crear reglas adicionales, una por cada sustitución posible, y usar condiciones para definir qué reglas se aplican y cuándo. Por ejemplo, con la siguiente regla, se reemplaza el dominio de UPN por corp.example.com, pero solo si el dominio original era 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"));
    

    Si tienes que aplicar sustituciones diferentes, debes ejecutar por separado la configuración de Cloud Directory Sync, una por sustitución.

Correo electrónico

  1. En la Consola del administrador de AD FS, en relación de confianza con parte autenticada, haz clic con el botón derecho en la relación de confianza nueva y haz clic en Editar política de emisión de reclamo.
  2. En el cuadro de diálogo, haz clic en Agregar regla.
  3. Selecciona Enviar atributos LDAP como notificaciones y haz clic en Siguiente.
  4. En la página siguiente, aplica la configuración que se indica a continuación:
    1. Nombre de la regla de notificación: Asignar ID de nombre y correo electrónico
    2. Almacén de atributos: Active Directory
  5. Agrega una fila a la lista de asignaciones de atributos de LDAP:
    1. Atributo de LDAP: E-Mail-Addresses
    2. Tipo de reclamación saliente: Name ID
  6. Haz clic en Finalizar y, luego, en Aceptar.

Correo electrónico: Sustitución de dominio

  1. En la Consola del administrador de AD FS, en relación de confianza con parte autenticada, haz clic con el botón derecho en la relación de confianza nueva y haz clic en Editar política de emisión de reclamo.
  2. En el cuadro de diálogo, haz clic en Agregar regla.
  3. Selecciona Enviar reclamos con una regla personalizada y haz clic en Siguiente.
  4. En la página siguiente, aplica la configuración que se indica debajo:

    1. Reclamar nombre de la regla: cargar dirección de correo electrónico
    2. Regla personalizada:

      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);
      

      Esta regla carga la dirección de correo electrónico del usuario correspondiente de Active Directory y la guarda en un reclamo temporal.

  5. Haz clic en Finalizar.

  6. Haz clic en Agregar regla para crear una segunda regla.

  7. Selecciona Enviar reclamos con una regla personalizada y haz clic en Siguiente.

  8. En la página siguiente, aplica la configuración que se indica debajo:

    1. Reclamar nombre de la regla: transformar dirección de correo electrónico
    2. Regla 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]"));
      

      Esta regla lee el reclamo temporal que contiene la dirección de correo electrónico y reemplaza el dominio por [DOMAIN]. El reclamo resultante se emitirá al Acceso con Google y se usará para identificar al usuario en Cloud Identity o G Suite.

      Asegúrate de reemplazar [DOMAIN] por el dominio principal de tu cuenta de Cloud Identity o G Suite.

  9. Haz clic en Finalizar y, luego, en Aceptar.

Exporta el certificado de firma de tokens de AD FS

Cuando AD FS emite una aserción de SAML, el Acceso con Google debe verificar la integridad y la autenticidad de la aserción. Con este propósito, SAML requiere que la aserción se firme mediante una clave de firma de tokens especial, que es la clave privada de un par de claves pública/privada designadas. La clave pública de este par está disponible para los SP como un certificado de firma de tokens y los habilita a que verifiquen la firma de una aserción.

Antes de configurar la cuenta de Cloud Identity o G Suite, debes exportar el certificado de firma de tokens de AD FS:

  1. En la consola de administración de AD FS, haz clic en Servicio > Certificados.
  2. Haz clic con el botón derecho en el certificado que está en la lista en Firma de token y haz clic en Ver certificado.
  3. Haz clic en la pestaña Detalles.
  4. Haz clic en Copiar a archivo para abrir el asistente de exportación de certificados.
  5. Haz clic en Siguiente.
  6. Selecciona Objeto binario codificado DER X.509 (.CER) como formato y haz clic en Siguiente.
  7. Proporciona un nombre de archivo local y haz clic en Siguiente.
  8. Confirma la exportación con un clic en Finalizar.
  9. Haz clic en Aceptar para descartar el cuadro de mensaje que confirma que la exportación se realizó con éxito.
  10. Copia el certificado exportado en tu computadora local.

Configura tu cuenta de Cloud Identity o G Suite

Una vez completada la configuración de AD FS, ahora puedes configurar el inicio de sesión único en tu cuenta de Cloud Identity o G Suite:

  1. En la Consola del administrador, haz clic en Seguridad > Configuración.
  2. Haz clic en Configurar el inicio de sesión único (SSO) con un IdP de terceros.
  3. Asegúrate de que la Configuración de SSO con proveedor de identidad de terceros esté habilitada.
  4. Ingresa la siguiente configuración. En todas las URL, reemplaza [ADFS] por el nombre de dominio completamente calificado del servidor de AD FS:
    1. URL de la página de acceso: https://[ADFS]/adfs/ls/
    2. URL de la página de cierre de sesión: https://[ADFS]/adfs/ls/?wa=wsignout1.0
    3. URL de cambio de contraseña: https://[ADFS]/adfs/portal/updatepassword/
  5. En Certificado de verificación haz clic en Elegir un archivo y elige el certificado de firma de tokens de AD FS que descargaste antes.
  6. Haz clic en Guardar.
  7. En la página siguiente, confirma que intentas habilitar el inicio de sesión único y haz clic en Comprendo y estoy de acuerdo.
  8. Para salir de la Consola del administrador, en la parte superior derecha, haz clic en el avatar y, luego, en Salir.

Prueba el inicio de sesión único

Ya completaste la configuración de inicio de sesión único en AD FS y Cloud Identity o G Suite. Para verificar si el inicio de sesión único funciona según lo previsto, ejecuta esta prueba:

  1. Elige un usuario de Active Directory que se haya aprovisionado antes en Cloud Identity o G Suite y que no tenga privilegios de administrador avanzado. Los usuarios que tienen privilegios de administrador avanzado siempre deben acceder mediante credenciales de Google, por lo que no son adecuados para probar el inicio de sesión único.
  2. Abre una ventana del navegador nueva y ve a https://console.cloud.google.com/.
  3. En la página de Acceso con Google que aparece, ingresa la dirección de correo electrónico del usuario y haz clic en Next (Siguiente). Si usas la sustitución de dominio, debes aplicarla a la dirección de correo electrónico.

    Ingresa la dirección de correo electrónico del usuario.

    Se te redireccionará a AD FS. Si configuraste AD FS para que use autenticación basada en formularios, ahora verás la página de acceso.

  4. Ingresa el UPN y la contraseña para el usuario de Active Directory y haz clic en Sign in (Acceder).

    Ingresa el UPN y la contraseña para el usuario de Active Directory.

  5. Después de una autenticación correcta, AD FS te redirecciona a Google Identity Platform. 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.

  6. Si estás de acuerdo con las condiciones, haz clic en Aceptar.

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

  8. Arriba a la izquierda, haz clic en el ícono del avatar y haz clic en Salir.

    Después, se te redireccionará a la página de AD FS que confirma que saliste con éxito.

Si tienes problemas para acceder, habilitar el registro de depuración de AD FS en el servidor de AD FS puede ser útil para diagnosticar el problema. Si usas la autenticación integrada de Windows, se recomienda que cambies de forma temporal a la autenticación basada en formularios para que puedas realizar pruebas con diferentes usuarios con mayor facilidad.

Ten en cuenta que los usuarios con privilegios de administrador avanzado están exentos del inicio de sesión único, por lo que aún puedes usar la Consola del administrador para verificar o cambiar la configuración.

Realiza una limpieza

Si no deseas mantener el inicio de sesión único habilitado para tu organización, sigue estos pasos a fin de inhabilitar el inicio de sesión único en Cloud Identity o G Suite:

  1. En la Consola del administrador, haz clic en Seguridad > Configuración.
  2. Haz clic en Configurar el inicio de sesión único (SSO) con un IdP de terceros.
  3. Limpia la casilla de verificación Configuración de SSO con proveedor de identidad de terceros.
  4. Haz clic en Guardar.

Para limpiar la configuración en AD FS, sigue estos pasos:

  1. Accede a tu servidor AD FS y abre las herramientas AD FS de MMC.
  2. En el menú a la izquierda, haz clic derecho sobre la carpeta Relación de confianza con la parte autenticada.
  3. En la lista de usuarios de confianza, haz clic con el botón derecho en Cloud Identity y, luego, en Borrar.
  4. Confirma la eliminación con un clic en .

Próximos pasos