Configurar SSO en Salesforce utilizando Microsoft AD FS como proveedor de identidad
Permita que sus usuarios inicien sesión en Salesforce desde entornos de Microsoft utilizando Microsoft Active Directory Federation Services (AD FS) 2.0. Microsoft AD FS funciona como proveedor de identidad para el inicio de sesión único.
Ediciones necesarias
| Disponible en: Lightning Experience y Salesforce Classic |
| Disponible en: Enterprise Edition, Performance Edition, Unlimited Edition y Developer Edition |
Microsoft AD FS 2.0 es compatible con el protocolo SAML 2.0. Cuando se configura AD FS 2.0 como proveedor de identidad de Salesforce, los usuarios pueden iniciar sesión en Salesforce mediante inicio de sesión único (SSO).
El extremo UserInfo de AD FS devuelve únicamente la reclamación de asunto según se especifica en los estándares de OpenID. No proporciona reclamaciones adicionales solicitadas a través del extremo UserInfo. Si necesita reclamaciones adicionales en el token de Id., utilice un token de Id. personalizado.
Al configurar AD FS 2.0 para la utilización en Salesforce, se recomienda seleccionar la opción Redirigir HTTP en la configuración de inicio de sesión único de Salesforce, en El proveedor de servicio ha iniciado el enlace de solicitud. Este ajuste mejora la interoperabilidad con los dispositivos iOS.Requisitos
Para configurar AD FS 2.0 como proveedor de identidad de Salesforce, necesitará lo siguiente:
- Microsoft Windows Server 2008 R2, versión Enterprise o Datacenter. Si está configurando un entorno para una evaluación, puede descargar una versión de prueba desde el Centro de descargas de Microsoft.
- Microsoft Active Directory Federation Services 2.0.
Nota Windows Server 2008 R2 incluye AD FS 1.0, que no admite SAML 2.0. Por este motivo, descargue el paquete AD FS 2.0 ‘release to web’ (RTW). - Una organización de Salesforce. Puede probarlo con un entorno de Developer Edition.
Descripción general
SAML 2.0 define funciones para las partes que intervienen en el inicio de sesión único. Un usuario se autentica en el proveedor de identidad (IdP), que en este caso es AD FS 2.0. A continuación, el usuario puede acceder a un recurso en uno o varios proveedores de servicios (SP) sin tener que iniciar sesión en cada proveedor de servicios. El SP (también conocido como “usuario de confianza”) es, en este ejemplo, una organización de Salesforce.
Este diagrama muestra el proceso de un inicio de sesión en Salesforce iniciado por el IdP.
- El usuario se autentica en el servidor AD FS utilizando la autenticación integrada de Windows (tokens Kerberos a través de HTTP) y solicita iniciar sesión en Salesforce. (1)
- AD FS devuelve una aserción ASML al navegador del usuario. (2)
- El navegador envía la aserción a Salesforce, que permite el inicio de sesión del usuario. (3)
A continuación se describen los pasos de alto nivel para la creación de una implementación de prueba.
- Instale Microsoft AD FS 2.0.
- Configure AD FS y su entorno de Salesforce.
- Pruebe la configuración.
- Solucione los problemas de implementación según sea necesario.
Instalación del software
- Comience por instalar Windows Server 2008 R2.
Nota El servidor de AD FS debe ser miembro de un dominio de Active Directory. Si va a crear una configuración de prueba para su evaluación, el servidor de AD FS puede ser el controlador de dominio. Sin embargo, esta configuración no es una configuración de producción recomendada. - Cree un nombre DNS descriptivo para AD FS como, por ejemplo, adfs.zonadeprueba.local y configúrelo para que apunte a su servidor de AD FS 2.0.
- Descargue e instale AD FS 2.0. Este paso también instalará otros componentes de Windows necesarios, como, por ejemplo, IIS.
- En el Administrador de IIS, cree un certificado SSL para el nombre DNS descriptivo. Si dispone del kit de recursos IIS 6.0, puede utilizar SelfSSL para crear un certificado autofirmado.
- Siga los pasos del asistente para la configuración del servidor de AD FS.
- Cree un servicio de federación.
- Seleccione Servidor independiente.
- Seleccione el certificado que creó para el nombre DNS descriptivo.
- Si se produce un error cuando el instalador registra el nombre de entidad de seguridad de servicio (SPN), cree manualmente un SPN Kerberos para el nombre DNS. El SPN permite que la autenticación integrada de Windows entre el navegador y la instancia de IIS de AD FS funcione correctamente.
1 setspn -a HOST/adfs.testzone.local testzone\ADFSSVR012 setspn -a HOST/adfs testzone\ADFSSVR01Para obtener más información acerca de los SPN Kerberos, consulte SPN Kerberos y Active Directory desde un punto de vista más sencillo.
Configuración de Salesforce
Para crear una federación entre dos partes, debe establecer una relación de confianza mediante el intercambio de metadatos. Los metadatos de la instancia de AD FS 2.0 se ingresan en la configuración de Salesforce. Los metadatos de Salesforce se descargan como archivo XML que AD FS 2.0 puede utilizar.
Configuración de SAML 2.0
En el complemento AD FS 2.0 MMC, seleccione el nodo de certificados y haga doble clic en el certificado de firma de token para visualizarlo. Haga clic en la ficha Detalles y, a continuación, seleccione Copiar a archivo. Guarde el certificado en formato DER.
En el servidor de AD FS, navegue a la URL de metadatos de federación ubicada en el MMC de AD FS en Servicio | Extremos | Metadatos | Tipo:Metadatos de federación . En el ejemplo, la URL es https://adfs.testzone.local/FederationMetadata/2007-06/FederationMetadata.xml.
Copie el valor del atributo entityID. En el ejemplo, es http://adfs.testzone.local.
En Salesforce, desde Configuración, ingrese Inicio de sesión único en el cuadro Búsqueda rápida y seleccione Configuración de inicio de sesión único. Seleccione SAML activado y haga clic en la opción para crear una configuración de SSO SAML.
Configure los ajustes que se indican a continuación.
- Nombre: ingrese un nombre para la configuración de SSO SAML.
- Versión de SAML: este ajuste está configurado con el valor 2.0.
- Emisor: pegue el valor de entityID aquí.
- Certificado de proveedor de identidad: navegue hasta el certificado de firma de token que exportó anteriormente y selecciónelo.
- Certificado de firma de solicitud: seleccione el certificado autofirmado que creó anteriormente. (Consulte el procedimiento de generación de un certificado autofirmado.)
- Método de firma de solicitud: configure este ajuste con el valor RSA-SHA-1.
- Tipo de identidad de SAML: para iniciar la sesión de un usuario, puede compara la coincidencia con el nombre de usuario de Salesforce o con el id. de federación. Si se comprara la coincidencia con el id. de federación, este debe especificarse en el perfil de todos los usuarios. Para la realización de pruebas, seleccione el id. de federación. Si los usuarios utilizan sus direcciones de email como nombre de usuario de Salesforce, una implementación de producción podría cambiar a la comparación de coincidencia con el nombre de usuario.
- Ubicación de entidad de SAML: para iniciar la sesión del usuario, puede utilizar el NameID de la aserción SAML u otro atributo. Puede utilizar el atributo NameID, ya que AD FS rellena el atributo NameID en la aserción SAML.
- El proveedor de servicio ha iniciado el enlace de solicitud: se recomienda seleccionar la opción Redirigir HTTP.
- URL de inicio de sesión de proveedor de identidad: ingrese la URL del extremo SAML de AD FS al que Salesforce envía las solicitudes SAML de inicio de sesión iniciado por el SP.
Nota Incluya la barra al final de la URL.Puede encontrar la URL en el MMC de AD FS en Extremos | Emisión de token | Tipo:SAML 2.0/WS-Federation . En el ejemplo, la URL es https://adfs.testzone.local/adfs/ls/.
- URL de fin de sesión personalizada: puede configurar la URL a la que se remite el usuario tras cerrar la sesión, como, por ejemplo, http://intranet.mycompany.com/.
- Id. de la entidad: este ajuste especifica el modo en que el IdP de AD FS identifica el SP de Salesforce. Para activar el inicio de sesión único iniciado por el SP, ingrese el id. de entidad de Mi dominio.
Guarde los ajustes y descargue el archivo XML de metadatos.
Configuración de AD FS 2.0
Ahora que dispone de los metadatos de Salesforce, cree la parte de AD FS de la relación de confianza. Abra el complemento AD FS 2.0 MMC y agregue una nueva “relación de confianza para usuario autenticado.”
- Seleccionar fuente de datos: importe los datos de un usuario de confianza desde un archivo. Navegue hasta el archivo XML que descargó de Salesforce.
- Especificar nombre para mostrar: asigne al usuario de confianza un nombre para mostrar, como, por ejemplo, Prueba de Salesforce.
- Elegir reglas de autorización de emisión: permite a todos los usuarios el acceso a dicho usuario de confianza.
- Abrir cuadro de diálogo Editar reglas de notificación: seleccione esta opción.
En el editor de reglas de notificación, haga clic en la ficha Reglas de transformación de emisión. Agregue una regla utilizando la opción Plantilla de regla de notificación configurada con el valor Enviar atributos LDAP como notificaciones.
- Nombre de regla de notificación: para entornos de prueba, configure el atributo nombre principal de usuario como NameID y asigne a la regla el nombre Enviar UPN como NameID. En entornos de producción, suele enviarse la dirección de email del usuario o el id. de empleado. Es importante utilizar un atributo con un valor que no cambie con el tiempo, ya que los cambios invalidan la función de SSO para dicho usuario.
- Atributo LDAP: seleccione nombre principal de usuario.
- Tipo de notificación saliente: seleccione Id. de nombre.
Inicio de sesión iniciado por el SP
Con un proceso de inicio de sesión iniciado por el SP, se suele configurar un vínculo en la intranet de la compañía que utilizan los usuarios para obtener acceso a Salesforce. El inicio de sesión iniciado por el SP se produce cuando un usuario hace clic en un vínculo directo a Salesforce.
Si configuró un id. de entidad de Mi dominio en la configuración SAML de Salesforce (por ejemplo, https://testinfo-developer-edition.my.salesforce.com), los usuarios podrán ir a las URL de dicho dominio. A continuación se redirigen a AD FS para la autenticación.
Cuando un Id. de entidad de Mi dominio está configurado en los parámetros de SAML de Salesforce (por ejemplo, https://testinfo-developer-edition.my.salesforce.com), los usuarios podrán ir a las URL de dicho dominio. A continuación se redirigen a AD FS para la autenticación.
Para que el inicio de sesión iniciado por el SP funcione, establezca el parámetro del algoritmo de hash seguro de AD FS en SHA-1. Salesforce utiliza SHA-1 al firmar solicitudes SAML y AD FS utiliza, de manera predeterminada, SHA-256.
El parámetro SHA se configura en las propiedades de confianza de AD FS del usuario de confianza de Salesforce en la ficha Avanzado.
Si no se configura este parámetro, obtendrá un mensaje en el registro de eventos de AD FS.
Event ID: 378SAML request is not signed with expected signature algorithm. SAML request is signed with signature algorithm http://www.w3.org/2001/04/xmldsig-more#rsa-sha256 . Expected signature algorithm is http://www.w3.org/2000/09/xmldsig#rsa-sha1Pruebas
Ahora es posible configurar el id. de federación de un usuario de Salesforce a la UPN de la cuenta de usuario de AD y probar el proceso de inicio de sesión.

Para el inicio de sesión iniciado por el SP, suponiendo que se configuró un id. de entidad de Mi dominio, navegue directamente a la URL. Por ejemplo, https://testinfo-developer-edition.my.salesforce.com.
Para el inicio de sesión iniciado por el IdP, utilice la URL de inicio de sesión de AD FS y especifique el parámetro loginToRp como id. de entidad de SAML de Salesforce, por ejemplo https://adfs.testzone.local/adfs/ls/idpinitiatedsignon.aspx?loginToRp=https://saml.salesforce.com.
En ambos casos, el navegador seguirá una cadena de redirecciones e iniciará sesión en su aplicación en Salesforce. Si obtiene un error de inicio de sesión de Salesforce, utilice la herramienta de validación de aserción SAML de la página de configuración de SSO de Salesforce. Esta herramienta muestra los resultados del último inicio de sesión SAML con error.

Ï
Si obtiene un error de AD FS, consulte los registros de AD FS en Server Manager\Diagnostics\Applications y Services Logs\AD FS 2.0\Admin. Encontrará también una buena publicación de blog de MSDN acerca del diagnóstico de AD FS 2.0.
Si configuró un id. de entidad de Mi dominio, el inicio de sesión iniciado por el SP funcionará con Deep Links. Cree un favorito para un vínculo en Salesforce y, a continuación, cierre la sesión. Actualice el navegador y seleccione el favorito. Se le redirige a su IdP, autenticado y, a continuación, se le redirigirá nuevamente al vínculo marcado como favorito.
Solución de problemas comunes
- El id. de federación distingue entre mayúsculas y minúsculas.
Si la entidad federada es su dirección de email de la organización, debe ingresarla exactamente igual que la envió AD FS. De lo contrario, Salesforce no podrá encontrar ningún usuario que coincida.
No puede programar una regla de notificación personalizada para normalizar el caso del atributo de LDAP antes del envío, ya que el lenguaje de las notificaciones solo permite el reemplazo de expresiones regulares básicas.
- La aserción ha caducado.
Las aserciones con una marca de hora con más de 5 minutos de antigüedad se rechazarán.
Nota Salesforce permite 3 minutos de desfase de reloj. Por ello, pueden haber transcurrido hasta 8 minutos desde la indicación horaria de una aserción o que falten 3 minutos. Del mismo modo, una aserción caduca según especifica el periodo de validez, que puede ser inferior a 5 minutos.Asegúrese de que el reloj del sistema de su servidor de AD FS esté sincronizado con una fuente de Internet de confianza mediante el protocolo de tiempo de la red (NTP).
- No puede iniciar sesión en Salesforce.
En caso de que un error impida iniciar sesión en Salesforce mediante SSO, podrá iniciar sesión utilizando su nombre de usuario y su contraseña. Anexe ?login a la URL de inicio de sesión, como por ejemplo, https://login.salesforce.com/?login. Tras iniciar sesión, podrá desactivar la función SSO si es necesario mientras resuelve el problema.

