Configurar o Okta IdP com o Flex
Recomendamos executar o Flex UI (IU do Flex) 0.7.0
ou superior para seguir este guia.
Você já configurou o SSO usando o endpoint preview.twilio.com
? Saiba como atualizar sua configuração atual com o guia de migração de SSO do Flex.
Registrar uma conta de desenvolvedor no Okta
Navegue até https://developer.okta.com/ e crie uma conta de desenvolvedor gratuita.
Criar um aplicativo no Okta
Navegue até Applications (Aplicativos) > Application (Aplicativo) no Okta Admin Console. Na conta Okta, crie um aplicativo.
- Clique em Applications (Aplicativos) > Applications (Aplicativos) > Create App Integration (Criar integração do app).
- Um pop-up modal deve ser exibido com opções de integração. Escolha SAML 2.0.
- Dê um nome ao aplicativo. Por exemplo, Twilio Flex. Carregue um logotipo, caso você tenha um.
Configurar o aplicativo
Na página "Create SAML Integration" (Criar integração SAML), insira as seguintes configurações gerais:
Configurações gerais de SAML
Configurações gerais e avançadas | Valores |
URL de logon único |
Substitua |
URI do público (ID da entidade SP) |
Substitua |
RelayState padrão | Deixe em branco. |
Formato do ID do nome | Deixe "Unspecified" (Não especificado) selecionado, a menos que você esteja trabalhando com um formato específico. |
Nome de usuário do aplicativo | Pode ser um e‐mail, um nome de usuário Okta ou algo que seja exclusivo. |
Resposta | Clique em Show Advanced Settings (Mostrar configurações avançadas) e verifique se "Signed" (Assinado) está definido. |
Assinatura da asserção | Clique em Show Advanced Settings (Mostrar configurações avançadas) e verifique se "Signed" (Assinado) está definido. |
Algoritmo de assinatura, algoritmo de resumo | Deixe as seleções padrão. |
Criptografia de asserção | No momento, o Twilio não dá suporte à criptografia, logo, defina‐a como "Unencrypted" (Não criptografada). |
Hook em linha da asserção, Classe de contexto da autenticação, Autenticação Honor Force, ID do emissor SAML | Deixe as seleções padrão. |
Configurar reivindicações
As reivindicações são pares de chave‐valor que o provedor de identidade afirma serem verdadeiras para o aplicativo. O Flex usa esses dados para determinar as informações críticas sobre cada usuário do Flex.
Todas as informações fornecidas pelo provedor de identidade para a Twilio são armazenadas dentro dos atributos Worker do Twilio TaskRouter. Considere os regulamentos locais para armazenar dados e forneça apenas dados relevantes para o uso do Flex. Saiba mais sobre a política de privacidade da Twilio.
Na seção Attribute Statements (Instruções do atributo), adicione as seguintes reivindicações obrigatórias. Os valores na tabela a seguir são apenas para fins de exemplo. Substitua‐os pelos valores indicados específicos da implementação Okta. Verifique se o atributo do usuário Okta que você está usando nas funções Flex está preenchido.
Nome | Formato do nome | Valor |
full_name | Básico | String.join(" ", user.firstName, user.lastName) OU ${user.firstName} ${user.lastName} |
funções | Básico | user.userType |
e‐mail | Básico | user.email |
Também é possível adicionar o seguinte atributo:
Nome | Formato do nome | Valor |
image_url | Referência à URI | user.profileUrl |
Para obter uma lista de atributos obrigatórios e valores de exemplo, consulte Configuração de SSO e IdP no Flex.
Com a configuração fornecida, o Okta passará os seguintes atributos para o Flex:
- full_name
- image_url (para uso no avatar do agente)
- funções
- e‐mail
Role a tela para baixo até a parte inferior da página para visualizar a asserção SAML gerada com base nas configurações. Trata‐se de uma boa maneira de validar as configurações 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>
Na próxima tela, selecione "I'm an Okta customer adding an internal app" (Sou um cliente Okta adicionando um app interno).
Salve as informações e copie os detalhes do aplicativo
Se não tiver concluído a configuração pela primeira vez, você poderá navegar até Applications (Aplicativos) > Applications (Aplicativos) no Okta Admin Console e selecionar o aplicativo ativo.
Selecione a guia Sign On (Logon único). Clique em "View Setup Instructions" (Exibir instruções de configuração). Você precisará dessas informações para configurar o Flex a fim de usar o aplicativo Okta.
Configurar o Flex usando as novas credenciais SAML
Em seguida, configure o SSO na página de configurações Flex Console Single Sign-on (Logon único do Flex Console). Você precisará dos seguintes campos na página "Okta Setup Instructions" (Instruções de configuração do Okta):
Campo "Twilio SSO" (SSO do Twilio) | Campo "Okta Setup Instructions" (Instruções de configuração do Okta) |
Certificado X.509 | Certificado X.509 |
Emissor do provedor de identidade | Emissor do provedor de identidade |
URL de Single Sign-On | URL de Single Sign-On do provedor de identidade |
Criar os usuários do aplicativo
Você pode adicionar individualmente um usuário do Okta navegando até Directory (Diretório) > People (Pessoas) e clicando em Add person (Adicionar pessoa) ou importar um grupo de um CSV selecionando "Import users from CSV" (Importar usuários do CSV) no menu suspenso More actions (Mais ações). Não se esqueça de atribuir uma função Flex aos usuários do aplicativo Okta, aproveitando o atributo de usuário definido para a reivindicação SAML "roles" (funções).
As funções Flex disponíveis são agent
, admin
e supervisor
. Você pode adicionar várias funções para um usuário separando as várias funções com vírgulas.
Quer saber mais? Consulte a documentação em Atributos de identidade para obter mais informações sobre como nomear atributos e outros atributos Worker possíveis. Para atribuir funções WFO para o Flex Insights, consulte Funções do usuário do Flex Insights.
Uma maneira de atribuir uma função seria:
- Navegue até Directory (Diretório) > People (Pessoas), selecione o usuário e clique na guia Profile (Perfil).
- Edite o atributo definido para a reivindicação SAML "roles" (funções) com as funções Flex que você deseja atribuir ao usuário.
Depois de definir as funções de um usuário, o Flex atualizará os atributos Worker com cada autenticação SSO bem‐sucedida.
Verificar se os usuários no diretório estão atribuídos ao aplicativo
Para atribuir o aplicativo Okta recém‐criado a um usuário, navegue até Applications (Aplicativos) > Applications (Aplicativos) e clique em Assign Users to app (Atribuir usuários ao app).
Selecione o aplicativo e os usuários que você deseja adicionar e, em seguida, clique em Next (Avançar). Convém inserir atributos específicos do usuário. Se você estiver definindo um nome de usuário personalizado, verifique se ele é exclusivo. Quando tudo estiver pronto, clique em Confirm Assignments (Confirmar atribuições).
Configuração adicional
Nossa página Configuring SSO (Configuração de SSO) tem detalhes adicionais sobre como iniciar o login pelo provedor de identidade, como fazer login em um domínio auto‐hospedado e atributos que podem ser definidos para cada identidade.
Teste seu SSO
Navegue até a página de configurações Single Sign-On do Console do Flex. Você pode clicar em "Login with SSO" (Fazer login com SSO) ou copiar o link de login e colá‐lo na barra de endereços do navegador, que o redirecionará para a página de login do Okta.
Use a credencial do usuário de teste que você criou nas etapas anteriores. Dependendo das configurações do usuário, você pode receber uma solicitação para definir sua senha. Depois que a autenticação for concluída, você será redirecionado à Flex UI (IU do Flex). O que você pode ver depende das funções Flex definidas no perfil de usuário do Okta.
Você pode validar a exibição do nome completo do funcionário no Flex UI (IU do Flex) ou acessar a página Funcionário no Dashboard do TaskRouter para ver outros atributos, como e‐mail e funções atribuídas.
Resolução de problemas
Aplicativo Flex não atribuído
Se o usuário não tiver atribuído o aplicativo Flex no Okta, você verá a seguinte mensagem de erro:
"Sorry, you can't access Twilio Flex because you are not assigned this app in Okta." (Lamentamos, mas você não pode acessar o Twilio Flex porque não está atribuído ao app no Okta.)
Precisa de ajuda?
Às vezes, todos nós precisamos; a programação é difícil. Receba ajuda agora da nossa equipe de suporte, ou confie na sabedoria da multidão navegando pelo Stack Overflow Collective da Twilio ou buscando a tag Twilio no Stack Overflow.