Menu

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.

ADFS Wizard Step 1

2. En el paso siguiente, deberás especificar qué cuenta debe utilizarse durante la configuración del servidor.

ADFS Wizard Step 2

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.

ADFS  Wizard Step 3

4. Especifica la cuenta de usuario de dominio que desees.

ADFS Wizard Step 4

5. Por último, especifica o crea una base de datos.

ADFS Wizard Step 5

Todas las comprobaciones de requisitos previos se deben aprobar correctamente. Una vez hecho esto, haz clic en “Configure” (Configurar) para completar la instalación.

ADFS Wizard Step 6

Configuración de Relying Party Trust

En la interfaz de ADFS, agrega una Relying Party Trust (Relación de confianza para usuario autenticado).

Add RPT 1

Asegúrate de que Claim Aware (Compatible con notificaciones) está seleccionado.

Add RPT Step 2

En el siguiente paso, selecciona Enter data about the relying party manually (Escribir manualmente los datos acerca del usuario de confianza).

Add RPT Step 3

Proporciona un nombre para mostrar (por ejemplo, Twilio Flex).

Add RPT Step 4

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).

Add RPT Step 6 (Five skipped for simplicity)

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.

002 Add RPT Step 7
Continúa y usa “Permit everyone” (Permitir a todos) como Access Control Policy (Política de control de acceso).

Add RPT Step 8

Luego, haz clic en Next (Siguiente) para agregar la relación de confianza.

Add RPT Step 9

Por último, haz clic en Close (Cerrar) para finalizar la configuración de la relación de confianza.

Add RPT Step 10

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.

Claims Issuance Step 1

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).

Claims Issuance Step 2

Aparece la página Configure Rule (Configurar regla).

Claims Issuance Step 3

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) email
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).

Transform Incoming Claim Step 1

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

Transform Incoming Claim Step 2

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.

ADFS Certificate Details Tab

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

ADFS XML Entity ID

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).

Twilio Flex SSO Page

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.

Calificar esta página:

¿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.

Gracias por tus comentarios.

Selecciona los motivos de tus comentarios. La información adicional que nos brindas nos ayuda a mejorar nuestra documentación:

Enviando tus comentarios…
🎉 Gracias por tus comentarios.
Se produjo un error. Inténtalo de nuevo.

Gracias por tus comentarios.

thanks-feedback-gif