Como integrar Cisco ISE con FreeIPA o cualquier otro sistema LDAP

Me gusta Cisco ISE, creo que es una solución madura desde la version 2.3 hacia arriba (espero que el Smart Licensing no complique las cosas en el futuro), especialmente cuando se usa con External Identity Sources para autenticar usuarios y endpoints (AKA servidores radius/ldap no-cisco). La ruta mas fácil -y mi mas absoluta recomendación- es usar Microsoft Active Directory (AD), Cisco ISE no es para nada un producto barato que cualquier empresa pueda costear, por lo que si pudiste invertir en un nodo ISE es muy probable que tengas el dinero para implementar Active Directory. AD también es una solución muy madura y EL estándar de-facto para prácticamente cualquier otra solución enterprise que necesite SSO o autenticación centralizada, y hacer una guía sobre como configurar esa integración no tendría sentido, seria un tutorial sobre como RTFM.

Pero hay mas territorio en LDAP fuera de AD, digamos que estas en una situación donde pudiste costear Cisco ISE pero tu jefatura decidió reinventar la rueda y usar otra solución basada en LDAP, probablemente FOSS, con poca adopción y documentación ya que el caso de uso es inusual. Bueno, esto me paso a mí hace un tiempo así que aquí les va un tutorial rápido para integrar Cisco ISE con FreeIPA como External Identity Source.

Primero, ingresa a Identity Management>External Identity Sources, y crea un nuevo LDAP source, preguntara por el nombre y luego pedirá detalles extra.

En la pestaña General, en Schema elegir Custom y luego se expandirá el set de atributos LDAP como se muestra en la imagen anterior. Elegir la opción “Group objects Contain Reference To Subjects” y elegir en el menu que los subjets (usuarios) en grupos están guardados usando “Distinguished Name”. Para todo el resto usar los siguientes parámetros:

  • Subject Objectclass: inetOrgPerson
  • Subject Name Attribute: uid
  • Group Name Attribute: cn
  • Group Objectclass: groupOfNames
  • Group Map Attribute: member

En la pestaña Connection, ingresar la IP address o hostname de tu host FreeIPA (o cualquier otro sistema LDAP si no te fuiste muy FOSS con tu decision) y el puerto a usar para autenticación. En este caso yo use el puerto 636 para LDAPS (seguro), pero también puedes usar el puerto por defecto 398. Si estas usando LDAPS ademas de elegir el puerto 636, “authenticated access” y “enable secure authentication” también tienes que subir al nodo ISE tu LDAP root CA con antelación, que en mi captura se muestra solo como “IPA”. 

Como se pueden dar cuenta a diferencia de la integración con AD aquí las cosas no son tan sencillas, en la caja Admin DN hay que identificar todo el path para el usuario que usaras para autenticar ademas de la password. Abajo encontraran un string que funciona para FreeIPA pero puede que tengan que modificarlo dependiendo de los atributos LDAP usados en sus sistemas, y dependiendo de cuan dentro del árbol LDAP esta el usuario; mi usuario en este ejemplo se llama “svc_cisco_ise”.

1
uid=svc_cisco_ise,cn=users,cn=accounts,dc=your_domain,dc=your_TLD

En el string anterior reemplacen (o agreguen) CNs dependiendo como este estructurado su arbol LDAP, y reemplacen los DCs for sus dominios y TLD (e.g. dc=tcpip,dc=me). En este paso hay mucho de prueba y error cuando se trabaja con un sistema LDAP no-AD.

Finalmente en la pestaña Directory Organization hay que especificar el path correcto para que ISE pueda consultar los sujetos (usuarios) y los grupos. Nuevamente necesitan un string similar al del Admin DN, abajo les dejo una configuración básica funcional para FreeIPA.

1
2
cn=users,cn=accounts,dc=your_domain,dc=your_TLD
cn=groups,cn=accounts,dc=your_domain,dc=your_TLD

Dejen el resto por defecto, usen el test connection y la opción de test user en el menu principal de los External Identity Sources, si lo hicieron bien debieran ver el código de retorno desde FreeLDAP o el sistema LDAP que estén usando para esta integración. 

Con total honestidad, seguir este camino es doloroso, evítenlo si es posible, el caso de uso es muy raro, usen Active Directory y ahórrense el dolor de cabeza.

Agregar un comentario

Su dirección de correo no se hará público. Los campos requeridos están marcados *

This site uses Akismet to reduce spam. Learn how your comment data is processed.