Acceso de apps a CRM a través de ADFS

Uno de los puntos fuertes de CRM es su acceso a datos y metadatos a través de su servicio web.

Para los que se pregunten si podemos acceder a este servicio web en sistemas accesibles desde internet a través de IFD, la respuesta es sí.

El SDK de CRM 2011 ofrece varios ejemplos de como realizar esta conexión.

Este ejemplo es válido para instalaciones de CRM 2011 publicadas por IFD (Internet Facing Deployment), y también para CRM Online.

Sin embargo, hemos observado algunos casos en los que estos ejemplos fallaban (y en general también fallaba cualquier otro tipo de acceso desde una aplicación .net cuando se usa autenticación por Claims (ADFS)).

Tras invesitigar, descubrimos que existe un bug cuando ADFS se instala sobre un Windows Server 2012 que hace que CRM no sea capaz de configurar correctamente uno de los service endpoints de ADFS que hacen que la conexión no se realice de manera satisfactoria.

Cuando eso ocurre, es probable que recibamos en pantalla un error de este tipo:

The authentication endpoint Username was not found on the configured Secure Token Service!

Afortunadamente, la solución es fácil. Por otra parte, puesto que la solución implica modificar a mano la base de datos, y esto representa una acción no soportada por Microsoft, en este blog vamos a describir como detectar si os halláis ante el problema, y en caso afirmativo os pediremos abrir una incidencia de soporte para que nuestros técnicos puedan ayudaros a solucionar el problema.

Lo primero que hemos de hacer es abrir SQL Management Studio donde se encuentren las bases de datos de nuestro CRM. Una vez conectados, ejecutaremos la siguiente query:

USE MSCRM_CONFIG

GO

select ActiveMexEndopoint from FederationProvider

Si este dato está vacío, probablemente no hayáis configurado correctamente Claims e IFD en esta instalación de CRM. Remitíos a la documentación existente para completar dicha configuración.

Si el dato se muestra correctamente, anotaremos el valor obtenido, y lo compararemos con el que se puede observar en la consola de configuración de ADFS.

En la consola de configuración de AD FS, vamos a Service – Endpoints

image

Y en la parte inferior de la lista observaremos la entrada correspondiente a WS-MEX.

image

Si estas rutas no concuerdan, estaréis ante el problema descrito arriba, y rogamos que nos lo hagáis saber a través de una incidencia de soporte, la cual será gratuita por tratarse de un bug reconocido.

Por Luis Mazarío