Proceso de sincronización. Resolviendo InvalidSoftMatch en ADConnect

El objetivo que me he planteado para este artículo, es explicar a alto nivel el proceso de sincronización, y, una vez establecido el contexto, ver algunos de los errores que podríamos tener, en concreto el tipificado como InvalidSoftMatch. Pero antes de entrar en materia, me gustaría poner un poco de contexto.

¿Qué es ADConnect?

ADConnect es un elemento fundamental en implementaciones de identidad sincronizada o federada con Azure AD (AAD). Nos sirve para poder emplear las credenciales de nuestro directorio local, en servicios proporcionados por Azure AD, y, así, tener una mayor experiencia de integración.

En el core de las aplicaciones que instala, se encuentra el servicio de sincronización. Sin entrar en mucho detalle, esta herramienta, mediante el empleo de ciclos de sincronización regulares, divididos en distintas etapas (Import, Sync y Export), va a realizar una “comparativa” de los elementos que hay en local, con los de Azure, y, realizará las acciones necesarias: creación, actualización, eliminación. Esta “comparativa” la hace empleando los parámetros configurados durante la instalación de ADConnect.

¿Cómo funciona la sincronización?

El proceso de sincronización, permite  establecer una correspondencia entre los elementos que existen en local y los de Azure.  Son necesarios 2 atributos del directorio local para ello :  un atributo para el inicio de sesión, y otro, para identificarlo de forma única o ImmutableId (que permanecerá inalterable a lo largo de la vida del objeto). Los valores empleados  por defecto (aunque no los únicos), son respectivamente el UserPrincipalName y el ObjectGuid.

Durante la sincronización, los objetos son importados , convertidos a un formato  apropiado, y por último provisionados o actualizados en el destino (si hubiera modificaciones).  El objectGUID del usuario de origen es convertido a base 64 y pasará a ser el atributo ImmutableId en AzureAD.

Errores de sincronización

Si bien, en un entorno perfectamente controlado los errores de sincronización no suelen ser frecuentes, puede darse situaciones, en las que nuestro ADConnect reporte algún error al realizar alguna exportación.  Éstos podrán visualizarse en la pantalla de operaciones del administrador de sincronización, y para poder analizarlos y solventarlos, tendremos que acceder a cada uno de ellos.

Entre los errores que podemos encontrar figuran: ObjectTypeMismatch, AttributeMustBeUnique, InvalidSoftMach entre otros. Nos centraremos en el error InvalidSoftMatch.

Error InvalidSoftMatch

Este error aparece porque hay una incoherencia en el atributo ImmutableId. Si un usuario está correctamente sincronizado su UserPrincipalName y su inmutableId (en AD y AAD) deben ser el mismo. En este caso, el UserprincipalName coincide, pero no el ImmutableId, y,  por tanto, no se puede realizar una correspondencia con ese usuario. Este error puede producirse cuando un objecto de ADD ya está sincronizado, y, en el directorio de origen se elimina ese objeto y se crea otro con las mismas propiedades.  Al crear un nuevo objecto, se generará un nuevo GUID, que no coincidirá con el de AAD.

Para poder solucionar este error, debemos hacer un “Hard Match” o macheo manual, que consiste en cambiar el ImmutableId del  usuario de AAD, por el correcto del directorio local.  Previamente nos tenemos que conectar a O365 con usuario administrador global del tenant.

Como último comentario, indicar,  que si nuestro dominio está federado, necesitaremos previamente cambiar el UPN por el de un dominio no federado para machearlo, y a continuación establecer el upn correcto.

¡Hasta el próximo post! 🙂

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *