Configurar IdP de Okta con Flex
Recomendamos ejecutar Flex UI 0.7.0
o superior para seguir esta guía.
¿Ya has configurado SSO con el punto final preview.twilio.com
? Aprende a actualizar tu configuración existente con la Guía de migración de SSO de Flex.
Registrar una cuenta de desarrollador en Okta
Ve a https://developer.okta.com/ y crea una cuenta de desarrollador gratuita.
Crear una aplicación en Okta
Ve a Applications (Aplicaciones) > Application (Aplicación) en la consola de administración de Okta. Dentro de tu cuenta de Okta, crea una aplicación.
- Haz clic en Applications > Applications > Create App Integration (Crear integración de aplicaciones).
- Debe aparecer una ventana modal emergente con opciones de integración. Elige SAML 2.0.
- Asigna un nombre a la aplicación. Por ejemplo, Twilio Flex. Carga un logotipo si tienes uno.
Configurar la aplicación
En la página “Create SAML Integration” (Crear integración SAML), ingresa la siguiente configuración general:
Configuración general de SAML
Configuración general y avanzada | Valores |
Single sign on URL (URL de inicio de sesión único) |
Reemplaza |
Audience URI (SP Entity ID) (URI de audiencia [ID de entidad de SP]) |
Reemplaza |
Default RelayState (RelayState predeterminado) | Déjalo en blanco. |
Name ID Format (Formato de ID de nombre) | Deja seleccionada la opción “Unspecified” (Sin especificar), a menos que estés trabajando con un formato específico. |
Application username (Nombre de usuario de la aplicación) | Puede ser un correo electrónico, un nombre de usuario de Okta o algo que sea único. |
Response (Respuesta) | Haz clic en Show Advanced Settings (Mostrar configuración avanzada) y asegúrate de que está establecida en “Signed” (Firmada). |
Assertion Signature (Firma de aserción) | Haz clic en Show Advanced Settings (Mostrar configuración avanzada) y asegúrate de que está establecida en “Signed” (Firmada). |
Signature Algorithm (Algoritmo de firma), Digest Algorithm (Algoritmo de síntesis) | Deja las selecciones predeterminadas. |
Assertion Encryption (Cifrado de aserción) | Twilio no admite actualmente cifrado, por lo que debes establecerlo como “Unencrypted” (No cifrado). |
Assertion Inline Hook (Gancho en línea de aserción), Authentication context class (Clase de contexto de autenticación), Honor Force Authentication (Autenticación de fuerza de honor), SAML Issuer ID (ID de emisor de SAML) | Deja las selecciones predeterminadas. |
Configurar notificaciones
Las notificaciones son pares clave‐valor que el proveedor de identidad afirma que son verdaderas para la aplicación. Flex utiliza estos datos para determinar la información crítica sobre cada usuario de Flex.
Toda la información que el proveedor de identidad proporciona a Twilio se almacena dentro de los atributos de trabajador de Twilio TaskRouter. Considera las normativas locales para almacenar datos y proporciona solamente aquellos que sean relevantes para el uso de Flex. Obtén más información sobre la Política de privacidad de Twilio.
En la sección Attribute Statements (Declaraciones de atributo), agrega las siguientes notificaciones necesarias. Los valores de la siguiente tabla son solo de ejemplo. Reemplázalos con los valores correspondientes específicos de tu implementación de Okta. Asegúrate de que se llenó el atributo de usuario de Okta que estás utilizando para los roles de Flex.
Nombre | Formato de nombre | Valor |
full_name | Básico | String.join(" ", user.firstName, user.lastName) O ${user.firstName} ${user.lastName} |
roles | Básico | user.userType |
Básico | user.email |
De forma opcional, puedes agregar el siguiente atributo:
Nombre | Formato de nombre | Valor |
image_url | Referencia de la URI | user.profileUrl |
Para obtener una lista de atributos obligatorios y valores de ejemplo, consulta Configurar SSO e IdP en Flex.
Con la configuración proporcionada, Okta pasará los siguientes atributos a Flex:
- full_name
- image_url (para su uso en el avatar del agente)
- roles
Desplázate hasta la parte inferior de la página para obtener una vista previa de la aserción SAML generada según tu configuración. Es una buena forma de validar la configuración de SAML.
<?xml version="1.0" encoding="UTF-8"?>
<saml2:Assertion ID="id5838987467318981535749982" IssueInstant="2021-08-26T15:19:53.544Z" Version="2.0"
xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">
<saml2:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">http://www.okta.com/Issuer</saml2:Issuer>
<saml2:Subject>
<saml2:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified">userName</saml2:NameID>
<saml2:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
<saml2:SubjectConfirmationData NotOnOrAfter="2021-08-26T15:24:53.549Z" Recipient="https://iam.twilio.com/v1/Accounts/AC578d078d214f5178981f0a8be328918f/saml2"/>
</saml2:SubjectConfirmation>
</saml2:Subject>
<saml2:Conditions NotBefore="2021-08-26T15:14:53.549Z" NotOnOrAfter="2021-08-26T15:24:53.549Z">
<saml2:AudienceRestriction>
<saml2:Audience>https://iam.twilio.com/v1/Accounts/AC578d078d214f5178981f0a8be328918f/saml2/metadata</saml2:Audience>
</saml2:AudienceRestriction>
</saml2:Conditions>
<saml2:AuthnStatement AuthnInstant="2021-08-26T15:19:53.544Z">
<saml2:AuthnContext>
<saml2:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</saml2:AuthnContextClassRef>
</saml2:AuthnContext>
</saml2:AuthnStatement>
<saml2:AttributeStatement>
<saml2:Attribute Name="roles" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
<saml2:AttributeValue
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">user.userType
</saml2:AttributeValue>
</saml2:Attribute>
<saml2:Attribute Name="email" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
<saml2:AttributeValue
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">user.email
</saml2:AttributeValue>
</saml2:Attribute>
<saml2:Attribute Name="image_url" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
<saml2:AttributeValue
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">user.profileUrl
</saml2:AttributeValue>
</saml2:Attribute>
<saml2:Attribute Name="full_name" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
<saml2:AttributeValue
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string"/>
</saml2:Attribute>
</saml2:AttributeStatement>
</saml2:Assertion>
En la siguiente pantalla, selecciona “I'm an Okta customer adding an internal app” (Soy un cliente de Okta agregando una aplicación interna).
Guardar la información de la aplicación y copiar sus detalles
Si no finalizaste la configuración la primera vez, puedes ir a Applications > (Aplicaciones) Applications en la consola de administración de Okta y selecciona la aplicación activa.
Selecciona la pestaña Sign On (Registrarse). Haz clic en “View Setup Instructions” (Ver instrucciones de configuración). Necesitarás esta información para configurar Flex a fin de utilizar la aplicación de Okta.
Configurar Flex con tus nuevas credenciales de SAML
A continuación, configura el SSO en la página de configuración Flex Console Single Sign-On (Inicio de sesión único en la consola de Flex). Necesitarás los siguientes campos de la página Okta Setup Instructions (Instrucciones de configuración de Okta):
Campo de SSO de Twilio | Campo de instrucciones de configuración de Okta |
X.509 Certificate (Certificado X.509) | X.509 Certificate (Certificado X.509) |
Identity Provider Issuer (Emisor del proveedor de identidad) | Identity Provider Issuer (Emisor del proveedor de identidad) |
Single Sign-on URL (URL de inicio de sesión único) | Identity Provider Single Sign-On URL (URL de inicio de sesión único del proveedor de identidades) |
Crear los usuarios de la aplicación
Puedes agregar un usuario de Okta individualmente; para ello, ve a Directory (Directorio) > People (Personas) y haz clic en Add person (Agregar persona); como alternativa, puedes importar un grupo de un CSV mediante la selección de “Import users from CSV” (Importar usuarios de CSV) en la lista desplegable More actions (Más acciones). Asegúrate de asignar un rol de Flex a los usuarios de la aplicación de Okta aprovechando el atributo de usuario definido para la notifcación SAML “roles”.
Los roles de Flex disponibles son agent
, (agente) admin
(administrador) y supervisor
(supervisor). Si deseas agregar varios roles para un usuario, separa los distintos roles con comas.
¿Quieres obtener más información? Consulta la documentación sobre atributos de identidad para obtener más información sobre la asignación de nombres a atributos y otros posibles atributos de trabajador. Para asignar roles de WFO en Flex Insights, consulta Roles de usuario de Flex Insights.
Esta sería una forma de asignar un rol:
- Ve a Directory (Directorio) > People (Personas), selecciona el usuario y haz clic en la pestaña Profile (Perfil).
- Edita el atributo definido para la notificación SAML “roles” con los roles de Flex que deseas asignar al usuario.
Después de que definas los roles para un usuario, Flex actualizará los atributos de trabajador con cada autenticación de SSO correcta.
Garantizar que los usuarios del directorio están asignados a la aplicación
Para asignar la aplicación de Okta recién creada a un usuario, desplázate a Applications > (Aplicaciones) Applications y haz clic en Assign Users to app (Asignar usuarios a la aplicación).
Selecciona la aplicación y los usuarios que deseas agregar y, luego, haz clic en Next (Siguiente). Puedes introducir atributos específicos del usuario. Si estás definiendo un nombre de usuario personalizado, asegúrate de que sea único. Cuando estés listo, haz clic en Confirm Assignments (Confirmar asignaciones).
Configuración adicional
Nuestra página de configuración de SSO ofrece información adicional sobre cómo iniciar sesión desde tu proveedor de identidad, cómo iniciar sesión en un dominio autoalojado y los atributos que se pueden definir para cada identidad.
Probar el SSO
Ve a la página de configuración Flex Console Single Sign-On (Inicio de sesión único en la consola Flex). Puedes hacer clic en “Login with SSO” (Inicio de sesión con SSO) o copiar el enlace de inicio de sesión y pegarlo en la barra de direcciones de tu navegador, lo que te redirigirá a la página de inicio de sesión de Okta.
Usa la credencial del usuario de prueba que creaste en los pasos anteriores. En función de la configuración del usuario, es posible que te soliciten establecer tu contraseña. Una vez completada la autenticación, se te redirigirá a Flex UI (interfaz de usuario de Flex). Lo que puedes ver depende de los roles de Flex definidos en el perfil de usuario de Okta.
Puedes validar la visualización del nombre completo del trabajador en Flex UI, o bien puedes ir a la página Worker (Trabajador) en el panel de control de TaskRouter para revisar otros atributos, como el correo electrónico y los roles asignados.
Solución de problemas
Aplicación de Flex sin asignar
Si el usuario no tiene asignada la aplicación de Flex en Okta, verás el siguiente mensaje de error:
“Sorry, you can't access Twilio Flex because you are not assigned this app in Okta.” (Lo sentimos, no puedes acceder a Twilio Flex porque no tienes asignada esta aplicación en Okta).
¿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.