Configurar Microsoft ADFS con Flex
Los Servicios de federación de Active Directory (ADFS) de Microsoft son un componente de software desarrollado por Microsoft que se puede ejecutar en sistemas operativos Windows Server. Proporciona a los usuarios acceso por inicio de sesión único a sistemas y aplicaciones situados fuera de los límites de la organización
En esta guía, se explican los pasos para configurar ADFS como proveedor de identidad (IdP) para Twilio Flex y se da por sentado que ya implementaste el rol de servidor ADFS. Puedes obtener más información sobre la implementación de una granja de servidores ADFS en la documentación de Microsoft.
Esta guía se escribió usando ADFS para Server 2019. Aunque anticipamos que estos pasos serán relativamente estables entre versiones, si encuentras algún problema, no dudes en informar a tu equipo de Twilio usando el widget de comentarios en la esquina superior derecha de la página.
Ejecución del asistente de configuración de ADFS
Si nunca se configuró ADFS en este servidor, es posible que se deba ejecutar el asistente de configuración. Esta configuración no es específica de Twilio.
1. Suponiendo que no tienes servidores, te recomendamos crear el primer servidor federado en una granja de servidores de federación.
2. En el paso siguiente, deberás especificar qué cuenta debe utilizarse durante la configuración del servidor.
3. A continuación, deberás especificar las propiedades del servicio. Puesto que los usuarios verán el nombre para mostrar al iniciar sesión, te recomendamos utilizarlo a los efectos de brindarle una marca a tu contact center de Flex para agentes y otras personas que inicien sesión en él.
4. Especifica la cuenta de usuario de dominio que desees.
5. Por último, especifica o crea una base de datos.
Todas las comprobaciones de requisitos previos se deben aprobar correctamente. Una vez hecho esto, haz clic en “Configure” (Configurar) para completar la instalación.
Configuración de Relying Party Trust
En la interfaz de ADFS, agrega una Relying Party Trust (Relación de confianza para usuario autenticado).
Asegúrate de que Claim Aware
(Compatible con notificaciones) está seleccionado.
En el siguiente paso, selecciona Enter data about the relying party manually
(Escribir manualmente los datos acerca del usuario de confianza).
Proporciona un nombre para mostrar (por ejemplo, Twilio Flex
).
No es necesario especificar un certificado, por lo que puedes saltar a la configuración de tu URL. Marca la opción Enable support for SAML 2.0 WebSSO protocol
(Habilitar compatibilidad con el protocolo SAML 2.0 WebSSO). El campo Relying party SAML 2.0 SSO service URL (URL del servicio SSO de SAML 2.0 del usuario de confianza)debe contener la siguiente dirección:
https://iam.twilio.com/v1/Accounts/ACXXXXXXXXXXXX/saml2/metadata
Reemplaza AC con tu Account SID (SID de cuenta).
On the next step, enter https://iam.twilio.com/v1/Accounts/ACXXXXXXXXXXXX/saml2
as the relying party trust identifier and click 'Add'. Be sure to replace ACXXX with your AccountSID.
Luego, haz clic en Next (Siguiente) para agregar la relación de confianza.
Por último, haz clic en Close (Cerrar) para finalizar la configuración de la relación de confianza.
Edición de la Política de emisión de notificaciones/Reglas de notificaciones
Atributos de LDAP
En el panel Actions (Acciones), elige Edit the Claim Issuance Policy (Editar la política de emisión de notificaciones). En la ventana que aparece, agrega una nueva regla.
En Claim rule template (Plantilla de regla de notificaciones), selecciona Send LDAP Attributes as Claims (Enviar atributos LDAP como notificaciones). A continuación, haz clic en Next (Siguiente).
Aparece la página Configure Rule (Configurar regla).
Ingresa un nombre para la notificación.
Para establecer los roles, se debe agregar: “agent o admin” (agente o administrador)en la opción Department (Departamento) del perfil de usuario.
Atributo de LDAP | Tipo de notificación saliente |
E‐Mail‐Addresses (Direcciones de correo electrónico) | Dirección de correo electrónico |
E‐Mail‐Addresses (Direcciones de correo electrónico) | |
Display-Name (Nombre para mostrar) | full_name |
Department (Departamento) | roles |
Si el campo Department (Departamento) ya está en uso, también se puede utilizar Group assignment (Asignación de grupo) para pasar roles. Esta configuración utilizaría Token-Groups (Grupos de tokens) en lugar de Department, de la siguiente manera:
Atributo de LDAP | Tipo de notificación saliente |
Token-Groups - Unqualified Names (Grupos de tokens: nombres no cualificados) | roles |
Estos son los campos obligatorios de Flex, pero puedes visitar la documentación de configuración de SSO de Flex para ver una lista completa de los posibles campos que se pueden agregar.
Haz clic en el botón Finish (Finalizar) cuando hayas terminado y agrega otra regla.
Transformación de notificaciones entrantes
Para esta regla, selecciona Transform an Incoming Claim
(Transforma una notificación entrante).
Configura la regla de notificación de la siguiente manera:
Campo | Valor |
Claim rule name (Nombre de la regla de notificación) | Name ID (ID de nombre) |
Incoming claim type (Tipo de notificación entrante) | Dirección de correo electrónico |
Outgoing claim type (Tipo de notificación saliente) | Name ID (ID de nombre) |
Outgoing name ID format (Formato de ID de nombre saliente) | Correo electrónico |
Por último, selecciona Pass through all claim values
(Pasar todos los valores de notificación) y, luego, Finish (Finalizar) para configurar la regla.
PowerShell
De forma predeterminada, solo se firma la aserción; sin embargo, para que funcione la integración, tanto la aserción como el mensaje deben estar firmados. Este ajuste se puede configurar a través de PowerShell.
En todos los comandos, reemplaza ACXXX
por tu Account SID (SID de cuenta).
En PowerShell con credenciales de Administrador, ejecuta el siguiente comando:
Set-AdfsRelyingPartyTrust -TargetIdentifier https://iam.twilio.com/v1/Accounts/ACXXXXXX/saml2/metadata -SamlResponseSignature MessageAndAssertion
Puedes verificar la configuración mediante el siguiente comando:
Get-AdfsRelyingPartyTrust -Identifier https://iam.twilio.com/v1/Accounts/ACXXXXX/saml2/metadata
SamlResponseSignature se establecerá en MessageAndAssertion
.
Recopilar datos de ADFS
Obtener tu certificado ADFS
Ahora necesitarás obtener algunos datos de ADFS que usarás para configurar el lado de Twilio de la integración del IdP.
En primer lugar, ve a Service (Servicio) -> Certificates (Certificados) y haz clic con el botón secundario en Token-signing certificate
(Certificado de firma de tokens). Mira el certificado. En la pestaña Details (Detalles), haz clic en Copy to File
(Copiar en archivo). Realiza la exportación como Base-64 encoded X.509 (.CER)
. Proporciona un nombre y selecciona un lugar para exportarlo. Tendrás que copiar el contenido del certificado, así que asegúrate de encontrarlo para los siguientes pasos.
Capturar la URL del proveedor de identidad
De forma predeterminada, la dirección URL del proveedor de identidad debe verse como http://<FQDN>/adfs/services/trust
, en la que FQDN es el nombre de dominio completo asociado a tu cuenta.
Para validar esto, abre el siguiente archivo XML desde el servidor ADFS: https://localhost/FederationMetadata/2007-06/FederationMetadata.xml
Observa el atributo EntityID (ID de entidad); este debería ser la dirección URL del proveedor de identidad.
Configuración de Twilio
Ahora estás listo para configurar Twilio a fin de que inicie la sesión de las personas en Flex usando ADFS. Inicia sesión en la consola de Twilio y ve a la página Flex -> Single Sign On (Inicio de sesión único).
Rellena el formulario de la siguiente manera:
Campo | Valor |
Friendly Name (Nombre descriptivo) | Un nombre de tu elección (por ejemplo, ADFS) |
X.509 Certificate (Certificado X.509) | Copia y pega el contenido del certificado X.509 que abriste anteriormente mediante una herramienta como el Bloc de notas. Es probable que esta sea una cadena larga de texto. |
Identity Provider Issuer (Emisor del proveedor de identidad) | La URL del proveedor de identidad que recibiste anteriormente; por ejemplo, http://<FQDN>/adfs/services/trust |
Single Sign-On URL (URL de inicio de sesión único) | https://<FQDN>/adfs/ls |
Default Redirect URL (URL de redirección predeterminada) | https://flex.twilio.com/<runtime-domain> . Tu dominio de tiempo de ejecución se puede encontrar en la consola de Twilio en Functions (Funciones), Assets (Activos) y otras partes de Twilio Runtime. Estará en el formato random-noun-1234 . |
Twilio SSO Url (URL de SSO de Twilio) | Selecciona Uses iam.twilio.com (Utiliza iam.twilio.com) |
Login using popup (Iniciar sesión con ventana emergente) | Esto es opcional. La integración de SSO debe funcionar con o sin esta opción activada. |
Pruebas
Si todo se configuró correctamente, ahora puedes navegar a flex.twilio.com/<runtime-domain>
y serás redirigido a la página de inicio de sesión de ADFS.
Después de hacer clic en Sign In
(Iniciar sesión), se te debería redirigir a Flex.
Solución de problemas
Para ayudar a solucionar problemas, instala la extensión SAML Tracer de Chrome. Esta herramienta analizará las respuestas de SAML para facilitar la revisión durante la resolución de problemas.
Redirección a un cuadro de diálogo de nombre de usuario/contraseña de Twilio
Este error suele producirse cuando la transformación de la notificación no se configuró correctamente. La respuesta SAML mostrará algo como esto:
</ds:X509Certificate>
</ds:X509Data>
</KeyInfo>
</ds:Signature>
<samlp:Status>
<samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Requester">
<samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:InvalidNameIDPolicy" />
</samlp:StatusCode>
</samlp:Status>
</samlp:Response>
Observa el valor InvalidNameIDPolicy
en Requester StatusCode.
Si la respuesta SAML parece válida, comprueba que el campo Identity Provider Issuer (Emisor del proveedor de identidad) en la página Flex SSO Console (Consola de Flex SSO) es correcto.
La respuesta SAML no tiene un atributo “role”
Esta respuesta se debe a que los roles no se pasan a las notificaciones. Comprueba la configuración de notificaciones en ADFS y revisa el atributo de roles.
¿Necesitas ayuda?
Todos la necesitamos a veces; la programación es difícil. Obtén ayuda ahora de nuestro equipo de soporte, o recurre a la sabiduría de la multitud visitando Stack Overflow Collective de Twilio o navegando por la etiqueta de Twilio en Stack Overflow.