Solução de problemas da federação SAML 2.0 com a AWS - AWS Identity and Access Management

Solução de problemas da federação SAML 2.0 com a AWS

Use estas informações para ajudar você a diagnosticar e corrigir problemas que encontrar ao trabalhar com o SAML 2.0 e a federação com o IAM.

Erro: sua solicitação incluiu uma resposta SAML inválida. Para sair, clique aqui.

Esse erro pode ocorrer quando a resposta do SAML do provedor de identidade não incluir um atributo com o Name definido como https://aws.amazon.com/SAML/Attributes/Role. O atributo deve conter um ou mais elementos AttributeValue, cada um contendo um par de strings separado por vírgulas:

  • O ARN de uma função para a qual o usuário pode ser mapeado

  • O ARN do provedor SAML

Para obter mais informações, consulte Configurar declarações SAML para a resposta de autenticação. Para visualizar a resposta do SAML no navegador, siga as etapas listadas em Como visualizar uma resposta do SAML no navegador para solução de problemas.

Erro: RoleSessionName é necessário em AuthnResponse (serviço: AWSSecurityTokenService; código de status: 400; código de erro: InvalidIdentityToken)

Esse erro pode ocorrer quando a resposta do SAML do provedor de identidade não incluir um atributo com o Name definido como https://aws.amazon.com/SAML/Attributes/RoleSessionName. O valor do atributo é um identificador para o usuário e, geralmente, é um ID do usuário ou um endereço de e-mail.

Para obter mais informações, consulte Configurar declarações SAML para a resposta de autenticação. Para visualizar a resposta do SAML no navegador, siga as etapas listadas em Como visualizar uma resposta do SAML no navegador para solução de problemas.

Erro: sem autorização para executar sts:AssumeRoleWithSAML (serviço: AWSSecurityTokenService; código de status: 403; código de erro: AccessDenied)

Esse erro pode ocorrer se a função do IAM especificada na resposta do SAML estiver digitada incorretamente ou não existir. Use o nome exato da sua função, porque os nomes de função diferenciam maiúsculas de minúsculas. Corrija o nome da função na configuração do provedor de serviços do SAML.

Você terá o acesso permitido somente se a política de confiança da função incluir a ação sts:AssumeRoleWithSAML. Se a sua declaração SAML for configurada para usar o atributo PrincipalTag, a política de confiança também deverá incluir a ação sts:TagSession. Para obter mais informações sobre tags de sessão, consulte Passar tags de sessão no AWS STS.

Esse erro pode ocorrer se você não tiver permissões sts:SetSourceIdentity em sua política de confiança de função. Se a sua declaração SAML for configurada para usar o atributo SourceIdentity, a política de confiança também deverá incluir a ação sts:SetSourceIdentity. Para obter mais informações sobre identidade-fonte, consulte Monitorar e controlar ações realizadas com funções assumidas.

Esse erro também pode ocorrer se os usuários federados não tiverem permissões para assumir a função. A função deve ter uma política de confiança que especifique o ARN do provedor de identidade SAML do IAM como Principal. A função também contém as condições que controlam quais usuários podem assumir a função. Certifique-se de que os usuários atendam aos requisitos das condições.

Esse erro também pode ocorrer se a resposta do SAML não incluir um Subject contendo um NameID.

Para obter mais informações, consulte Estabelecer permissões na AWS para usuários federados e Configurar declarações SAML para a resposta de autenticação. Para visualizar a resposta do SAML no navegador, siga as etapas listadas em Como visualizar uma resposta do SAML no navegador para solução de problemas.

Erro: RoleSessionName em AuthnResponse deve corresponder a [a-zA-Z_0-9+=,.@-]{2,64} (serviço: AWSSecurityTokenService; código de status: 400; código de erro: InvalidIdentityToken)

Esse erro pode ocorrer se o valor do atributo RoleSessionName for muito longo ou contiver caracteres inválidos. O comprimento máximo válido é de 64 caracteres.

Para obter mais informações, consulte Configurar declarações SAML para a resposta de autenticação. Para visualizar a resposta do SAML no navegador, siga as etapas listadas em Como visualizar uma resposta do SAML no navegador para solução de problemas.

Erro: A identidade-fonte deve corresponder a [a-zA-Z_0-9+=,.@-]{2,64} e não começar com "aws:" (serviço: AWSSecurityTokenService; código do status: 400; código do erro: InvalidIdentityToken)

Esse erro pode ocorrer se o valor do atributo sourceIdentity for muito longo ou contiver caracteres inválidos. O comprimento máximo válido é de 64 caracteres. Para obter mais informações sobre identidade-fonte, consulte Monitorar e controlar ações realizadas com funções assumidas.

Para obter mais informações sobre como criar declarações SAML, consulte Configurar declarações SAML para a resposta de autenticação. Para visualizar a resposta do SAML no navegador, siga as etapas listadas em Como visualizar uma resposta do SAML no navegador para solução de problemas.

Erro: assinatura inválida da resposta (serviço: AWSSecurityTokenService; código de status 400; código de erro: InvalidIdentityToken)

Esse erro poderá ocorrer quando os metadados de federação do provedor de identidade não corresponderem aos metadados do provedor de identidade do IAM. Por exemplo, o arquivo de metadados para o provedor de serviços de identidade pode ter sido alterado para atualizar um certificado expirado. Faça download do arquivo de metadados SAML atualizado a partir de seu provedor de serviços de identidade. Atualize-o na entidade do provedor de identidade da AWS que você define no IAM com o comando da CLI entre plataformas aws iam update-saml-provider ou o cmdlet Update-IAMSAMLProvider do PowerShell.

Erro: falha ao assumir a função: emissor ausente no provedor especificado (serviço: AWSOpenIdDiscoveryService; código de status: 400; código de erro: AuthSamlInvalidSamlResponseException)

Esse erro poderá ocorrer se o emissor na resposta do SAML não corresponder ao emissor declarado no arquivo de metadados da federação. O arquivo de metadados foi carregado na AWS quando você criou o provedor de identidade no IAM.

Erro: não foi possível analisar os metadados.

Este erro poderá ocorrer se você não formatar adequadamente seu arquivo de metadados.

Quando você criar ou gerenciar um provedor de identidade do SAML no AWS Management Console, deverá recuperar o documento de metadados do SAML do seu provedor de identidade.

Esse arquivo de metadados inclui o nome do emissor, informações de validade e chaves que podem ser usadas para validar a resposta de autenticação do SAML (declarações) que são recebidas do IdP. O arquivo de metadados deve ser codificado no formato UTF-8 sem a marca de ordem de bytes (BOM). Para remover a BOM, você pode codificar o arquivo como UTF-8 usando uma ferramenta de edição de texto, como o Notepad++.

O certificado x.509 incluído como parte do documento de metadados do SAML deve usar um tamanho de chave de, pelo menos, 1.024 bits. Além disso, o certificado x.509 também deve estar livre de extensões repetidas. É possível usar extensões, mas elas só podem aparecer uma vez no certificado. Se o certificado x.509 não atender a nenhuma das condições, a criação do IdP vai falhar e retornar um erro “Unable to parse metadata” (Não foi possível analisar metadados).

Conforme definido pelo Perfil de Interoperabilidade de Metadados SAML V2.0 Versão 1.0, o IAM não avalia nem toma medidas em relação à expiração do certificado X.509 do documento de metadados.

Erro: o provedor especificado não existe.

Esse erro poderá ocorrer se o nome do provedor que você especifica na declaração SAML não corresponder ao nome do provedor configurado no IAM. Para obter mais informações sobre como visualizar o nome do provedor, consulte Criar um provedor de identidades SAML no IAM.

Erro: o valor de DurationSeconds solicitado excede o valor de MaxSessionDuration definido para esta função.

Esse erro pode ocorrer se você assumir uma função a partir da AWS CLI ou da API.

Quando você usa as operações da CLI assume-role-with-saml ou da API AssumeRoleWithSAML para assumir uma função, pode especificar um valor para o parâmetro DurationSeconds. Você pode especificar um valor de 900 segundos (15 minutos) até o valor configurado de duração máxima da sessão para a função. Se você especificar um valor maior do que o configurado, a operação falhará. Por exemplo, se você especificar uma duração de 12 horas para a sessão, mas o administrador definir a duração máxima da sessão como 6 horas, a operação falhará. Para saber como visualizar o valor máximo para sua função, consulte Visualizar a configuração de duração máxima da sessão para uma função.

Erro: a resposta não contém o público necessário.

Esse erro pode ocorrer se o URL do público não corresponder ao provedor de identidades na configuração de SAML. Certifique-se de que o identificador de parte confiável do provedor de identidades (IdP) corresponda exatamente ao URL do público (ID da entidade) fornecido na configuração de SAML.