Solucionar problemas de federação do SAML com o IAM
Use estas informações para ajudá-lo a diagnosticar e corrigir problemas que encontrar ao trabalhar com o SAML 2.0 e a federação com o AWS Identity and Access Management.
Tópicos
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
O erro também pode ocorrer quando os valores do atributo SAML enviados pelo provedor de identidade têm um espaço em branco à esquerda ou à direita ou outros caracteres inválidos nos valores do atributo SAML. Para obter mais informações sobre os valores esperados para os atributos SAML, consulte Configurar declarações SAML para a resposta de autenticação
Para ter 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 Visualizar uma resposta do SAML no navegador.
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 ter 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 Visualizar uma resposta do SAML no navegador.
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 Visualizar uma resposta do SAML no navegador.
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 ter 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 Visualizar uma resposta do SAML no navegador.
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 Visualizar uma resposta do SAML no navegador.
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: chave privada inválida.
Esse erro pode ocorrer quando você não formata adequadamente seu arquivo de chave privada. Esse erro pode fornecer detalhes adicionais sobre o motivo da invalidade da chave privada:
-
A chave está criptografada.
-
O formato da chave não é reconhecido. O arquivo de chave privada deve ser um arquivo .pem.
Ao Criar um provedor de identidades SAML no IAM no AWS Management Console, você deve baixar a chave privada do seu provedor de identidade para fornecer ao IAM a fim de habilitar a criptografia. A chave privada deve ser um arquivo .pem que use o algoritmo de criptografia AES-GCM ou AES-CBC para descriptografar declarações SAML.
Erro: falha ao remover chave privada.
Esse erro pode ocorrer quando a criptografia SAML estiver definida como Obrigatória e sua solicitação possa remover a única chave de descriptografia privada do provedor de SAML do IAM. Para obter mais informações sobre a alternância de chaves privadas, consulte Gerenciar chaves de criptografia SAML.
Erro: falha ao remover a chave privada porque a ID da chave não corresponde a uma chave privada.
Esse erro pode ocorrer se o valor keyId
da chave privada não corresponder a nenhum dos IDs de chave dos arquivos de chave privada do provedor de identidade.
Quando você usa as operações de API update-saml-providerRemovePrivateKey
deve ser um ID de chave válido para uma chave privada anexada ao seu provedor de identidade.
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”.
Conforme definido pela Versão 1.0 do Perfil de Interoperabilidade de Metadados do SAML V2.0
Erro: não é possível atualizar o provedor de identidade. Não há nenhuma atualização definida para metadados ou declaração de criptografia.
Esse erro pode ocorrer se você usar as operações update-saml-provider
da CLI ou UpdateSAMLProvider
da API, mas não fornecer valores de atualização nos parâmetros da solicitação. Para obter mais informações sobre como atualizar seu provedor de SAML do IAM, consulte Criar um provedor de identidades SAML no IAM.
Erro: não é possível definir o modo de criptografia de declaração como Obrigatório porque nenhuma chave privada foi fornecida.
Esse erro pode ocorrer quando você ainda não tiver feito upload de uma chave de decodificação privada e tentar definir a criptografia SAML como Obrigatória sem incluir uma chave privada em sua solicitação.
Certifique-se de que haja uma chave privada definida para seu provedor de SAML do IAM ao usar as operações create-saml-provider
da CLI, CreateSAMLProvider
da API, update-saml-provider
da CLI UpdateSAMLProvider
ou da API para exigir declarações de SAML criptografadas.
Erro: não é possível adicionar e remover chaves privadas na mesma solicitação. Defina um valor apenas para um dos dois parâmetros.
Esse erro pode ocorrer quando os valores de adição e remoção de chaves privadas estão incluídos na mesma solicitação.
Ao usar as operações de API update-saml-provider
Erro: o provedor especificado não existe.
Esse erro pode ocorrer se o nome do provedor na asserção do SAML não corresponder ao nome do provedor 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 Atualizar a duração máxima da sessão de um perfil.
Erro: limite máximo de 2 chaves privadas atingido.
Esse erro pode ocorrer quando você tenta adicionar uma chave privada ao seu provedor de identidade.
É possível salvar até duas chaves privadas para cada provedor de identidade. Quando você usa as operações de API update-saml-provider
Antes de adicionar uma nova chave privada, remova as chaves privadas que expiraram. Para obter mais informações sobre a alternância de chaves privadas, consulte Gerenciar chaves de criptografia SAML.
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.