¿Estás visitando desde Argentina?
Ingresá a Linware Argentina ⯈
Continuar en Linware Argentina ⯈
×
¿Qué estás buscando?
BUSCAR!
BLOG
Zimbra con inicio de sesión único mediante Google Workspaces
Publicada el 22/03/2023

En este artículo, aprenderá a configurar Zimbra en Google Workspaces. Google Workspaces actúa como proveedor de identidad (IdP) de SAML y Zimbra será un proveedor de servicios (SP) de SAML.

La tecnología utilizada en este artículo es SAML, un estándar abierto para Single Sign-On. Al usar SAML, un proveedor de identidad (IdP) se encargará de la autenticación del usuario, después de lo cual los usuarios podrán usar sus aplicaciones sin tener que iniciar sesión en cada una de ellas por separado. En SAML, estas aplicaciones se denominan proveedores de servicios (SP).

Objetivos de aprendizaje:

  • Cómo configurar Zimbra como una aplicación en Google Workspaces

requisitos previos

El dominio utilizado en Google Workspaces debe coincidir con el dominio de los usuarios en Zimbra. Entonces, si inicia sesión en Google Workspaces usando example.com, también necesitará tener un dominio example.com en Zimbra. Además, los usuarios de Zimbra no se aprovisionan automáticamente. Por lo tanto, debe crear una cuenta para cada usuario tanto en Google Workspaces como en Zimbra.

Configurar espacios de trabajo de Google

Este artículo utiliza el servidor Zimbra de ejemplo zimbra10.barrydegraaff.nl, no olvide reemplazarlo con su propio dominio de servidor Zimbra.

  1. Vaya a https://admin.google.com/ e inicie sesión con una cuenta con privilegios de superadministrador.

  2. Vaya a Menú > Aplicaciones > Web y aplicaciones móviles.

  1. Haga clic en Agregar aplicación > Agregar aplicación SAML personalizada.

Establezca un nombre y una descripción para su aplicación Zimbra y cargue un icono.

Desde esta pantalla, debe copiar/pegar y almacenar el valor de la URL de SSO y el Certificado para que pueda usarlo para configurar Zimbra en uno de los siguientes pasos. Haga clic en Continuar.

Haga clic en Finalizar. No se requiere mapeo ni membresía.

Permita que los usuarios accedan a la aplicación haciendo clic en APAGADO para todos.

Seleccione ON para todos y haga clic en GUARDAR.

Configurar Zimbra

Almacene el certificado IDP de arriba en /tmp/idpcert.pemel contenido debería verse así:

root@zimbra10:~# gato /tmp/idpcert.pemn-----INICIAR CERTIFICADO-----nMIIDdDCCAlygAwIBAgIGAYXonEdwMA0GCSqGSIb3DQEBCwUAMHsxFDASBgNVBAoTnC0dvb2dsZSBJbmMuMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MQ8wDQYDVQQDEwZHnb29nbGUxGDAWBgNVBAsTD0dvb2dsZSBGb3IgV29yazELMAkGA1UEBhMCVVMxEzARnBgNVBAgTCkNhbGlmb3JuaWEwHhcNMjMwMTI1MTEwNzEzWhcNMjgwMTI0MTEwNzEznWjB7MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEWMBQGA1UEBxMNTW91bnRhaW4gVmllndzEPMA0GA1UEAxMGR29vZ2xlMRgwFgYDVQQLEw9Hb29nbGUgRm9yIFdvcmsxCzAJnBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMIIBIjANBgkqhkiG9w0BAQEFnAAOCAQ8AMIIBCgKCAQEAmUcDm3Sg4DkoYDeBW6tEsb/tTTeRPl4Kz3M3cowNfBDynPSeyCKHocwMQjozFtvTde6FIhpBfT8DUd+4PHvUjn+aPleSWzQgtxgJMLeMrQHmMnhJ3qSprWz4mPejtSEouqmcol3KLzC+/oWcKXDVPL7e8p3L2KZ/rX57TQut0B5bqcnZe4XgNS+Sz8Qwqg0lToQqfXBUMey0Z8ZamJsP4M6U4b+z/KDLhq3c4uTsMee1khEnIU1iQlzDhncgBP69vgt+LpfuqjgK4/gESdhoAHeaVyDT2bDQvMr0fZLFXs64taqhn4i+rSox5L4U/SeIsw6tWjLMbSJvfPakROvdRLjLcowIDAQABMA0GCSqGSIb3DQEBnCwUAA4IBAQCB+O98rsQr4TyU7tbYjGgJWfsrqkUH1SLIVLsDclJkWwuG1l3izLvYnDnqQMvV5KC0xRFTCTCoxq0bFVISqMsfTK9q720nVTppPVycPP/yhes8jlu6qivXAnIwfo5YrdEBLFleipBZYkIsJhZGGxAtVc+rjsLE2/hRp+uCmGFDvd70QSGaTfENbXnlFFe6i9OEETzNKipuc9sD7VTiCmnVSUu8TDb8bq5T0G+BNLtKeUO+68diWgSjIbsnoXDV5DdclS29zuuiwz8RoOZOMC/E6mjGbEsteoJLi3PrYHaFal1n88lbBpfXdoGpns4rz8ECbwyxLL5Rh3TWbvgliRGfmEookn-----FIN DEL CERTIFICADO-----

Desde la línea de comando, cree las carpetas saml ejecutándolas como raíz:

mkdir /opt/zimbra/lib/ext/samlnmkdir /opt/zimbra/conf/saml/

Agregue el archivo /opt/zimbra/conf/saml/saml-config.propertiespara configurar SAML en Zimbra agregue los contenidos:

# Emisornsaml_sp_entity_id=https://zimbra10.barrydegraaff.nl/service/extension/samlreceivern# Receptor de inicio de sesión para el proveedor de serviciosnsaml_acs=https://zimbra10.barrydegraaff.nl/service/extension/samlreceivern# Formato de ID de nombre para que el IDP lo use en SAMLResponsensaml_name_id_format=urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddressn# Formato de fecha para el instante de emisiónnsaml_date_format_instant=aaaa-MM-dd'T'HH:mm:ss'Z'n# Punto final de inicio de sesión del proveedor de identidad para el método de redirecciónnsaml_redirect_login_destination=https://accounts.google.com/o/saml2/idp?idpid=C01kcuisf-REPLACE_THIS_VALUEn# Punto final de inicio de sesión del proveedor de identidad para el método POSTnsaml_post_login_destination=https://accounts.google.com/o/saml2/idp?idpid=C01kcuisf-REPLACE_THIS_VALUEn# punto final de cierre de sesión del proveedor de identidad para el método de redirecciónnsaml_redirect_logout_destination=n# Punto final de cierre de sesión del proveedor de identidad para el método POSTnsaml_post_logout_destination=n# Salir de la página de redireccionamiento si somos el punto final de cierre de sesión de la página de destinonsaml_landing_logout_redirect_url=/n# Deshabilitar la verificación de ruta de audienciansaml_skip_audience_restriction=verdaderon# URL para enviar al usuario con los parámetros de consulta error_code, error_msg. Resultados predeterminados en páginas de códigos de error HTTP.nsaml_error_redirect_url=n# La codificación del documento de cierre de sesión de SAML y la codificación de parámetros del receptor de inicio de sesión de SAML.nsaml_document_encoding=ASCIIn# Establézcalo en verdadero para deshabilitar la verificación de la ruta de la audiencia.nsaml_skip_audience_restriction=falson# La ubicación de redirección para enviar al usuario si su cuenta de Zimbra no está activa.nsaml_inactive_account_redirect_urln# La ubicación de redireccionamiento para enviar al usuario si el inicio de sesión del cliente web para su cuenta de Zimbra está deshabilitado.nsaml_webclient_disabled_account_redirect_url

Asegúrese de reemplazar los valores de saml_redirect_login_destinationsaml_post_login_destinationcon la URL almacenada cuando creó la aplicación en Google Workspaces.

Desde la línea de comando como usuario raíz, copie samlextn.jar y configure el certificado IDP de esta manera:

cp /opt/zimbra/extensions-network-extra/saml/samlextn.jar /opt/zimbra/lib/ext/saml/nsu zimbrancat /tmp/idpcert.pem |xargs -0 zmprov md barrydegraaff.nl zimbraMyoneloginSamlSigningCertn# zmprov mcf zimbraCsrfRefererCheckEnabled FALSOnzmprov mcf zimbraCsrfAllowedRefererHosts accounts.google.comn# nuevo desde 9.0.0 parche 25, debe configurar zimbraVirtualHostName:nzmprov md barrydegraaff.nl zimbraVirtualHostName zimbra10.barrydegraaff.nln/opt/zimbra/bin/zmlocalconfig -e zimbra_same_site_cookie="" #¡lea la siguiente sección!nreiniciar zmmailboxdctl

Si su IDP y Zimbra están en el mismo dominio en una implementación local. Por ejemplo, zimbra.example.com y saml-idp.example.com, puede usar la configuración de cookies de SameSite Estricta:

/opt/zimbra/bin/zmlocalconfig -e zimbra_same_site_cookie="Estricta"nreiniciar zmmailboxdctl

Si su IDP está bajo un dominio diferente en una implementación IDP de SaaS alojada. Por ejemplo, zimbra.example.com y saml.authprovider.org, probablemente deba deshabilitar la configuración de cookies de SameSite de la siguiente manera:

/opt/zimbra/bin/zmlocalconfig -e zimbra_same_site_cookie=""nreiniciar zmmailboxdctl

Iniciar sesión con SAML de prueba

Vaya a https://admin.google.com/ y haga clic en el botón TEST SAML LOGIN para la aplicación.

Haga clic en el botón PRUEBA DE INICIO DE SESIÓN SAML. Tenga en cuenta que Google puede tardar hasta 5 minutos en cargar cualquier configuración nueva de la aplicación, por lo que si ve un error de Google, intente nuevamente un poco más tarde.

Cierre de sesión único

Google Workspaces no implementa SLO.

Crear usuarios

Sus cuentas de usuario deben crearse manualmente en Zimbra y estar disponibles en su base de datos de usuarios IDP. Es importante que el atributo de correo electrónico en su IDP esté configurado exactamente igual que el nombre de la cuenta de Zimbra. O el usuario no podrá iniciar sesión. Si no funciona, ejecute un tail -f /opt/zimbra/log/*momento para realizar la solicitud de autenticación y profundice en el registro para averiguar cuál puede ser el problema. Palabras clave para grep: SAML, audiencia y aserción.

Propiedades configurables saml-config.properties

El samlextn.jar utiliza un archivo de propiedades ubicado en: ${zimbra_home}/conf/saml/saml-config.properties.

Se admiten las siguientes propiedades:

LLAVEDESCRIPCIÓNPOR DEFECTOOPCIONAL

saml_sp_entity_id

Editor

  

saml_acs

Receptor de inicio de sesión para el proveedor de servicios

  

saml_redirect_login_destination

Punto final de inicio de sesión del proveedor de identidad para el método de redireccionamiento

  

saml_redirect_logout_destination

Punto final de cierre de sesión del proveedor de identidad para el método de redireccionamiento

  

saml_post_login_destination

Punto final de inicio de sesión del proveedor de identidad para el método POST (sin usar)

 

saml_post_logout_destination

Punto final de cierre de sesión del proveedor de identidad para el método POST (sin usar)

 

saml_name_id_formato

Formato de ID de nombre para que el IDP lo use en SAMLResponse

urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified

saml_date_format_instant

Formato de fecha para el instante de emisión

yyyy-MM-dd’T’HH:mm:ss’Z'

saml_error_redirect_url

URL para enviar al usuario con error_codeparámetros error_msgde consulta. Resultados predeterminados en páginas de códigos de error HTTP.

 

saml_landing_logout_redirect_url

Cerrar sesión en la página de inicio de redireccionamiento si somos el último servicio de cierre de sesión.

/

saml_document_encoding

La codificación del documento de cierre de sesión de SAML y la codificación de parámetros del receptor de inicio de sesión de SAML.

ASCII

saml_skip_audience_restriction

Establézcalo en verdadero para deshabilitar la verificación de la ruta de la audiencia.

false

saml_inactive_account_redirect_url

La ubicación de redireccionamiento para enviar al usuario si su cuenta de Zimbra no está activa.

/service/extension/samllogout

depuración

Si tiene problemas, puede seguir los registros en Zimbra mientras inicia sesión.

En Zimbra:

cola -f /opt/zimbra/log/mailbox.log
Ir al Blog