Artículo
· 9 jun, 2022 Lectura de 4 min

Autenticación de usuarios de InterSystems IRIS mediante LDAP

Hola desarrolladores,

Estoy seguro de que os habéis encontrado esta situación: necesito autenticar los usuarios - que pueden acceder a la instancia de InterSystems IRIS (for Health) o Health Connect – mediante LDAP (Active Directory u OpenLDAP). En este artículos quiero compartir con vosotros lo sencillo que es la autenticación/integración mediante LDAP. Crearemos una configuración mínima de manera a autenticar los usuarios mediante consulta a OpenLDAP.

Para ello usaremos 2 contenedores – uno con OpenLDAP y otro con InterSystems IRIS.

Empecemos con OpenLDAP. Usaremos una imagen Docker ya cargada con un dominio y datos de prueba. Podéis mirarlo en github: https://github.com/rroemhild/docker-test-openldap

Para lanzar el contenedor habrá que ejecutar los siguientes comandos:

$ docker pull rroemhild/test-openldap

$ docker run --rm -p 10389:10389 -p 10636:10636 rroemhild/test-openldap

Ahora nos toca lanzar la instancia de InterSystems IRIS. Para ello habrá que ejecutar el siguiente comando:

docker run --rm --name irisLDAP -d --publish 9091:1972 --publish 9092:52773 store/intersystems/iris-community:2021.2.0.649.0 --check-caps false

Ahora habrá que configurar InterSystems IRIS de manera a integrarse con LDAP. Antes de ello se impone dejar claro como lo vamos hacer:

  • La conexión a OpneLDAP se hará de modo no cifrado;
  • Usaremos los atributos ya definidos en OpenLDAP.

Debe quedar claro que la manera idónea de hacer esta integración seria mediante conexiones cifradas y creando nuevos grupos en OpenLDAP de manera a controlar los usuarios que se pueden conectar a la instancia de InterSystems IRIS – y en qué condiciones.

Habilitar LDAP para la instancia

Ir a: Sistema > Gestión de seguridad > Authentication/Web Session Options  - (Configuración de seguridad) y activar la autenticación LDAP.

Crear una configuración LDAP

Para una configuración mínima de LDAP vamos usar los datos disponibles en nuestro servidor LDAP (debidamente documentado en https://github.com/rroemhild/docker-test-openldap). Necesitaremos los siguientes datos:

  • Usuario LDAP para hacer las búsquedas en el directorio - "cn=admin,dc=planetexpress,dc=com"
  • Credenciales del usuario que hace las búsquedas – “GoodNewsEveryone”
  • Nombre del host LDAP - "XXX.XXX.XXX.XXX:10389"
  • DN basado en LDAP que debe utilizarse para búsquedas - "dc=planetexpress,dc=com"
  • Atributo de búsqueda único LDAP – uid (en el caso de ActiveDirectory, usaremos sAMAccountname)

 

En nuestra configuración - y por sencillez - no crearemos nuevos grupos en la AD, usaremos uno de los atributos ya existentes - 'ou'. Sin embargo, se recomienda la creación de los grupos adecuados tal y como sugiere la documentación: role requerido para el login. La configuración necesaria es la siguiente:

 

Testar la configuración LDAP

Ir a: Sistema > Gestión de seguridad > Configuraciones de seguridad LDAP/Kerberos, darle a ‘Probar autenticación LDAP’.

Teniendo en cuenta los usuarios dados de alta en la AD, habrá que elegir uno para la prueba. En nuestro caso, usaremos el usuario ‘Philip J. Fry’. Para ello usaremos:

 
Resultados de la prueba

Activar LDAP para servicios y aplicaciones

Habrá que activar los servicio que queremos autenticar mediante LDAP. En este caso, y dado que nos importa la autenticación de los usuarios al acceder al Portal (y al terminal), habremos de activar los servicios %Service_Login y %Service_Terminal.  

 De igual manera hemos de activar el LDAP en las aplicaciones que procedan. En nuestro caso, hemos de activar LDAP en /csp/sys.

Dominio de seguridad por defecto

En los casos donde haya mas de un dominio de seguridad registrado hemos de elegir el que vamos usar por defecto. Así hemos de acceder a: Sistema > Gestión de seguridad > Parámetros de seguridad del sistema  - (Configuración de seguridad)  y selecionar demonio que proceda - para nosotros sera planetexpress.com.

Crear el role de Login

La verdad, y como hemos dicho arriba, se recomienda la creación de los grupos adecuados en la AD. Por sencillez, en este articulo no lo hacemos y basamos la identificación del role del usuario en él atributo 'ou'. Aquí podemos comprobar que nuestro usuario de prueba (fry) tiene definido en su atributo 'ou' el role - Delivering Crew. Desta manera hemos de crear un nuevo role con el mismo nombre - Delivering Crew. Le asignaremos los privilégios que procedan - para nuestro ejemplo, le asignaremos el perfil de operador de interoperabilidad. 

Estos son los pasos necesarios y suficientes para integrar InterSystems IRIS con un servidor LDAP. Se recomienda la lectura detenida de la documentación aquí. 

Comentarios (0)1
Inicie sesión o regístrese para continuar