El siguiente manual tiene como objetivo la autentificación de usuarios en el sistema operativo Linux Ubuntu (en nuestro caso la distribución Kubuntu 22.04) contra el servicio Gsuite LDAP de Google bajo el manual publicado por Google.
Este manual es una traducción y adaptación del articulo (https://helpcenter.itopia.com/en/articles/2394004-configuring-google-cloud-identity-ldap-on-ubuntu-16-04-for-user-logins) creado por Craig Medland y partes de las imágenes son también de dicho articulo
Para poder uatilizar este manual se necesita:
- Ordenador con sistema operativo ubuntu o derivados aunque seguramente funcione en otros Linux
- Gsuite de google con acceso a la consola de administracion.
Parte 1: crear un cliente LDAP en la consola de administración de G Suite
Inicie sesión en su consola de administración de G Suite y desde la página «Inicio» navegue hasta «Aplicaciones» y luego «LDAP».
En la página de aplicaciones LDAP, haga clic en el botón «AÑADIR CLIENTE»
Ingrese el “Nombre del cliente LDAP” y una “Descripción” y haga clic en “CONTINUAR”
En Permisos de acceso, tendrá 3 configuraciones:
- Verificar las credenciales de usuario
- Leer la información del usuario
- Leer información del grupo.
Aquí puede especificar que el cliente LDAP acceda a todo el dominio o a determinados grupos organizativos que puede configurar en su cuenta de G Suite. En este ejemplo, elegimos la opción Todo el dominio, pero puede elegir la opción que se aplica a su caso de uso que es modificable después en dicho servicio…
La verificación de las credenciales de los usuarios en este manual esta puesta como DOMINIO ENTERO que significa que todos los usuarios se nuestro gsuite se podrán loguear pero no es lo normal, pues generalmente en la otra opción tenemos SELECCIONAR UNIDADES ORGANIZATIVAS y en este caso podemos indicar una o varias unidades organizativas, grupos y demás, que es lo normal para tener mejor el control.
En la sección «Leer información del grupo», cambie la opción a Activado y haga clic en el botón «AÑADIR CLIENTE LDAP» para crear el cliente.
Algunos clientes LDAP, como SSSD, realizan una búsqueda de grupo para obtener información sobre la pertenencia a un grupo de un usuario durante la autenticación. Para asegurarse de que la autenticación funcione para dichos clientes LDAP, deberá activar «Leer información del grupo».
Espere unos momentos hasta que se agregue el cliente LDAP. Una vez hecho esto, se le presentará un certificado SSL de Google que necesitará para conectarse a los servicios LDAP.
Haga clic en «Descargar certificado» y luego en «CONTINUAR A DETALLES DEL CLIENTE»
En la página de clientes LDAP, haga clic en Estado del servicio para acceder a la página Estado.
Nota: La página de detalles del cliente LDAP es donde puede editar el cliente, modificar los permisos de acceso, volver a descargar el certificado SSL y crear credenciales de acceso si es necesario.
En la página de estado, seleccione «ON para todos» y haga clic en «GUARDAR»
Después de hacer clic en GUARDAR, el estado cambiará a ACTIVADO para todos
La configuración de la consola de administración de GSuite ahora está completa.
Parte 2: Configuración de SSSD en Ubuntu
Desde el terminal de nuestra sesión de administrador de Ubuntu vamos a instalar los paquetes necesarios y las configuraciones para que podamos conectarlos a nuestro servicio de ldap Google para la autentificación:
sudo apt-get update
sudo apt-get install -y sssd sssd-tools
Después de la instalación vamos a crear el archivo sssd.conf para ello tecleamos:
sudo nano /etc/sssd/sssd.conf
En el cual deberemos incluir lo siguiente:
[sssd]
services = nss, pam
domains = TUDOMINIO.COM[domain/TUDOMINIO.COM]
cache_credentials = true
ldap_tls_cert = /var/NOMBRECERTIFICADOGOOGLE.crt
ldap_tls_key = /var/NOMBRECERTIFICADOGOOGLE.key
ldap_uri = ldaps://ldap.google.com:636
ldap_search_base = dc=DOMINIO,dc=COM
id_provider = ldap
auth_provider = ldap
ldap_schema = rfc2307bis
ldap_user_uuid = entryUUID
ldap_groups_use_matching_rule_in_chain = true
ldap_initgroups_use_matching_rule_in_chain = true
enumerate = false
En dichas líneas modificaras TUDOMINIO.COM para colocar el dominio correcto asi como en dc=DOMINIO el dominio correspondiente, si por ejemplo tienes un dominio pepito.dominio.com deberás colocar dc=pepito,dc=dominio,dc=com
Donde pone NOMBRECERTIFICADOGOOGLE hay que colocar los nombres de los dos ficheros que bajamos anteriormente y decir donde los tenemos, podemos ponerlos donde queramos, en esta ocasión están en /var/ si los colocas en otro lugar poner la ruta… suponemos para este manual que están en VAR
COPIAR CERTIFICADOS
Por tanto copiar los CERTIFICADOS descargados de google tanto el .crt y .key y copiarlos en /var/, ademas aplicarles permisos
sudo chown root:root /etc/sssd/sssd.conf
sudo chmod 600 /etc/sssd/sssd.conf
Reiniciamos el servicio sssd
sudo service sssd restart
CREAR EL HOME CUANDO SE LOGUEE
Cuando nos loguemos NECESITAMOS que se genere un home para dicho usuario si no dará el error de que no tiene home para iniciarse, para ello ejecutamos el siguiente comando:
sudo pam-auth-update
y nos saldrá la siguiente pantalla donde debemos aplicar la opción marcada:
De esta forma ya estaría y simplemente reiniciamos y ya podremos loguearnos con los usuarios que hayamos deseado permitirlo.
Para comprobarlo podéis escribir el comando:
sudo service sssd status
y os tendría que dar todo correcto.
NOTA DE ERROR: en versiones anteriores al ubuntu 22.04 puede daros error en el servicio de TLS ya que no es soportado por lo tanto simplemente hay que añadir al fichero sssd.conf la linea:
ldap_tls_cipher_suite = NORMAL:!VERS-TLS1.3