

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Solucionar problemas de SAML com o Amazon Connect
<a name="troubleshoot-saml"></a>

Este artigo explica como solucionar problemas e resolver alguns dos problemas mais comuns que os clientes encontram ao usar o SAML com o Amazon Connect.

Se você estiver solucionando problemas de integração com outros provedores de identidade, como Okta, PingIdentify Azure AD e outros, consulte o Workshop de [configuração de SSO do Amazon Connect](https://catalog.workshops.aws/workshops/33e6d0e7-f927-4531-abb1-f28a86ba0872/en-US). 

## Mensagem de erro: Acesso negado. Sua conta foi autenticada, mas não foi associada a este aplicativo.
<a name="troubleshoot-saml-access-denied"></a>

![A mensagem de erro: acesso negado.](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/saml-troubleshooting-access-denied.png)


### O que isso significa?
<a name="troubleshoot-saml-access-denied-what"></a>

Esse erro significa que o usuário foi autenticado com SAML no endpoint de login do AWS SAML. No entanto, o usuário não pôde estar matched/found dentro do Amazon Connect. Em geral, isso indica uma das seguintes situações: 
+ O nome de usuário no Amazon Connect não corresponde ao atributo do SAML `RoleSessionName` especificado na resposta do SAML retornada pelo provedor de identidade.
+ O usuário não existe no Amazon Connect.
+ O usuário tem dois perfis separados atribuídos a ele com SSO.

### Resolução
<a name="troubleshoot-saml-access-denied-resolution"></a>

Use as etapas a seguir para verificar o atributo RoleSessionName SAML especificado na resposta SAML retornada pelo provedor de identidade e, em seguida, recuperar e comparar com o nome de login no Amazon Connect. 

1. Execute uma captura HAR (**H** TTP **AR** chive) para o processo de end-to-end login. Isso captura as solicitações de rede no lado do navegador. Salve o arquivo HAR com o nome de arquivo de sua preferência, por exemplo, **saml.har**. 

   Para obter instruções, consulte [Como faço para criar um arquivo HAR do meu navegador para um caso de AWS Support?](https://aws.amazon.com/premiumsupport/knowledge-center/support-case-browser-har-file/) 

1. Use um editor de texto para encontrar o SAMLResponse no arquivo HAR. Ou execute os seguintes comandos:

   `$ grep -o "SAMLResponse=.*&" azuresaml.har | sed -E 's/SAMLResponse=(.*)&/\1/' > samlresponse.txt`
   + Isso procura o SAMLresponse no arquivo HAR e o salva em um arquivo **samlresponse.txt**.
   + A resposta é codificada em URL, e o conteúdo é codificado em Base64.

1. Decodifique a resposta em URL e decodifique o conteúdo em Base64 usando uma ferramenta de terceiros ou um script simples. Por exemplo:

   `$ cat samlresponse.txt | python3 -c "import sys; from urllib.parse import unquote; print(unquote(sys.stdin.read()));" | base64 --decode > samlresponsedecoded.txt`

   Esse script usa um comando python simples para decodificar a SAMLResponse partir do formato codificado de URL original. Depois disso, ele decodifica a resposta em Base64 e produz a resposta do SAML em formato de texto sem formatação.

1. Verifique a resposta decodificada para o atributo necessário. Por exemplo, a imagem a seguir mostra como verificar `RoleSessionName`:  
![O comando grep para verificar o nome da sessão da função.](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/saml-troubleshooting-rolesessionname.png)

1. Verifique se o nome de usuário retornado da etapa anterior existe como um usuário em sua instância do Amazon Connect:

   $ aws connect list-users --instance-id [INSTANCE\_ID] \| grep $username
   + Se o grep final não retornar um resultado, isso significará que o usuário não existe em sua instância do Amazon Connect ou foi criado com uma capitalização diferente.
   + Se sua instância do Amazon Connect tiver muitos usuários, a resposta da chamada da ListUsers API pode ser paginada. Use o `NextToken` retornado pela API para obter o restante dos usuários. Para obter mais informações, consulte [ListUsers](https://docs.aws.amazon.com/connect/latest/APIReference/API_ListUsers.html).

### Exemplo de resposta do SAML
<a name="example-samlresponse"></a>

Veja a seguir uma imagem de um exemplo de resposta do SAML. Nesse caso, o provedor de identidade (IdP) é o Azure Active Directory (Azure AD).

![um exemplo de resposta do SAML.](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/saml-troubleshooting-saml-response.png)


## Mensagem de erro: Acesso negado. Entre em contato com o administrador AWS da conta para obter ajuda.
<a name="troubleshoot-saml-contact-admin"></a>

![Mensagem de erro: acesso negado.](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/saml-troubleshooting-access-denied-admin.png)


### O que isso significa?
<a name="troubleshoot-saml-bad-request-what"></a>

A função que o usuário assumiu foi autenticada com êxito usando SAML. No entanto, a função não tem permissão para chamar a GetFederationToken API do Amazon Connect. Essa chamada é necessária para que o usuário possa fazer login na sua instância do Amazon Connect usando o SAML.

### Resolução
<a name="troubleshoot-saml-bad-request-resolution"></a>

1. Anexe uma política que tenha as permissões para `connect:GetFederationToken` à função encontrada na mensagem de erro. Veja a seguir um exemplo de política:

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "Statement1",
               "Effect": "Allow",
               "Action": "connect:GetFederationToken",
               "Resource": [
                   "arn:aws:connect:ap-southeast-2:{{111122223333}}:instance/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee/user/${aws:userid}"
               ]
           }
       ]
   }
   ```

------

1. Use o console do IAM para anexar a política. Ou use a attach-role-policy API, por exemplo:

   `$ aws iam attach-role-policy —role-name [{{ASSUMED_ROLE}}] —policy_arn [{{POLICY_WITH_GETFEDERATIONTOKEN}}]`

## Mensagem de erro: Sessão expirada
<a name="saml-sessionexpired-message"></a>

Se vir a mensagem **Sessão expirada** ao fazer login, provavelmente você só precisará atualizar o token da sessão. Vá até o provedor de identidade e faça login. Atualize a página do Amazon Connect. Se você continuar recebendo essa mensagem, entre em contato com a equipe de TI.