Nesta página, mostramos como resolver problemas comuns com a federação de identidade da força de trabalho.
Inspecionar a resposta do IdP
Nesta seção, mostramos como inspecionar a resposta do provedor de identidade (IdP) para resolver problemas listados neste documento.
Login com base no navegador
Para inspecionar a resposta retornada pelo IdP, gere um arquivo HAR usando a ferramenta da sua escolha. Por exemplo, use o Google Admin Toolbox HAR Analyzer, que fornece instruções para gerar um arquivo HAR e as ferramentas para fazer upload e analisar.
SAML
Para inspecionar a resposta do IdP SAML, siga estas etapas:
- Localize o valor do parâmetro de solicitação
SAMLResponse
no arquivo HAR registrado no URL com o caminho/signin-callback
. - Decodifique com uma ferramenta de sua escolha. Por exemplo, você pode usar o Google Admin Toolbox Encode/Decode.
OIDC
Para inspecionar a resposta do IdP OIDC, siga estas etapas:
- Procure o parâmetro de solicitação
id_token
no arquivo HAR que é registrado em um URL com o caminho/signin-callback
. - Decodifique-o usando uma ferramenta de depuração JWT de sua escolha.
CLI da gcloud
Para inspecionar a resposta do IdP ao usar a CLI gcloud,
copie o conteúdo do arquivo transmitido na sinalização
--credential-source-file
ao executar o comando
gcloud iam workforce-pools create-cred-config
e execute as
etapas abaixo:
SAML
Decodifique a resposta do IdP SAML usando a ferramenta que preferir. Por exemplo, use o Google Admin Toolbox Encode/Decode.
OIDC
Decodifique a resposta do IdP do OIDC usando a ferramenta de depuração JWT de sua escolha.
Revisar registros
Para determinar se o Google Cloud está se comunicando com o IdP e analisar as informações da transação, inspecione os registros de auditoria do Cloud. Para ver exemplos de registros, consulte Exemplos de registros de auditoria.
Erros de gerenciamento de provedor e pool de funcionários
Nesta seção, fornecemos sugestões para corrigir erros comuns que você pode encontrar ao gerenciar pools e provedores.
Permissão negada
Esse erro ocorre quando o usuário que tenta configurar a federação de identidade da força de trabalho não tem o papel Administrador de pool de força de trabalho do IAM (roles/iam.workforcePoolAdmin
).
INVALID_ARGUMENT: configuração de logon único da Web do OIDC ausente
O seguinte erro ocorre quando os campos web-sso-response-type
e web-sso-assertion-claims-behavior
não são definidos ao criar um provedor de pool de identidade
do OIDC:
ERROR: (gcloud.iam.workforce-pools.providers.create-oidc) INVALID_ARGUMENT: Missing OIDC web single sign-on config.
Para resolver esse erro, siga as etapas na seção Criar um provedor para definir os campos adequadamente ao criar o provedor de pool de identidade da força de trabalho do OIDC.
Limite de taxa excedido. Tente novamente mais tarde.
Esse erro ocorre quando você atinge o limite da cota para recursos do pool da força de trabalho. Entre em contato com o representante da sua conta do Google Cloud para solicitar um aumento de cota.
Erros no login
Esta seção fornece sugestões para corrigir erros comuns que um usuário de federação de identidade da força de trabalho pode encontrar ao fazer login.
Erros comuns de login
A credencial especificada é rejeitada pela condição do atributo
Esse erro ocorre quando a condição de atributo definida no provedor de pool de identidade da força de trabalho não é atendida.
Por exemplo, considere a seguinte condição de atributo:
SAML
'gcp-users' in assertion.attributes.groups
OIDC
'gcp-users' in assertion.groups
Nesse caso, você vai ver o erro se a lista de grupos enviados no atributo groups
pelo provedor de identidade (IdP) não contiver gcp-users
.
Para resolver esse erro, siga estas etapas:
Descreva o provedor que foi usado para fazer login e verifique se o
attributeCondition
está correto. Para mais informações sobre operações compatíveis com condições, consulte a Definição de idioma.Siga as etapas em inspecionar a resposta do IdP para ver os atributos retornados pelo IdP e confirmar se a condição do atributo está correta e precisa.
Faça login no Admin Console do IdP e verifique se os atributos do IdP referenciados na condição estão configurados corretamente. Se necessário, consulte a documentação do IdP.
O atributo mapeado deve ser do tipo STRING
Esse erro ocorre para um provedor de pool de identidade de força de trabalho SAML quando o atributo especificado na mensagem de erro precisa ser uma STRING de valor único, mas é mapeado para uma lista no mapeamento de atributos.
Por exemplo, considere um provedor de pool de identidade de força de trabalho SAML que
tenha o mapeamento de atributos, attribute.role=assertion.attributes.userRole
. Em uma declaração
SAML, um Attribute
pode ter várias tags AttributeValue
, conforme mostrado
no exemplo a seguir. Assim, todos os atributos SAML são considerados listas, portanto,
assertion.attributes.userRole
é uma lista.
<saml:Attribute Name="userRole">
<saml:AttributeValue>
security-admin
</saml:AttributeValue>
<saml:AttributeValue>
user
</saml:AttributeValue>
</saml:Attribute>
Neste exemplo, você pode ver o seguinte erro:
The mapped attribute 'attribute.role' must be of type STRING
Para resolver esse problema, siga estas etapas:
Descreva o provedor usado para fazer login e identifique o atributo do IdP definido no
attributeMapping
. Compare o atributo com o atributo apresentado na mensagem de erro. No exemplo anterior, um atributo do IdP chamadouserRole
é mapeado para o atributorole
, e o atributorole
aparece no exemplo de erro acima.Siga as orientações abaixo para atualizar o mapeamento de atributos:
Se o atributo que causa o erro tiver um valor de lista, identifique um atributo alternativo, estável e com valor de string. Em seguida, atualize o mapeamento de atributos para usá-lo fazendo referência ao primeiro item. No exemplo anterior, se
myRole
fosse identificado como o atributo IdP de valor único alternativo, o mapeamento de atributos seria o seguinte:attribute.role=assertion.attributes.myRole[0]
Como alternativa, se o atributo tiver valor único, atualize o mapeamento de atributo para usar o primeiro item da lista. No exemplo anterior, se
userRole
tiver apenas um papel, use o seguinte mapeamento:attribute.role=assertion.attributes.userRole[0]
Para gerar um identificador estável de valor único da lista, consulte Definição de idioma e atualize o mapeamento de atributos.
Consulte a seção Inspecionar a resposta do IdP para ver a resposta retornada pelo IdP.
Não foi possível obter um valor para google.subject da credencial especificada
Esse erro ocorre quando não é possível mapear a declaração necessária google.subject
usando o
mapeamento de atributos
definido na configuração do provedor de pool de federação de identidade da força de trabalho.
Para resolver esse erro, siga estas etapas:
Descreva o provedor e inspecione o
attributeMapping
. Identifique o mapeamento configurado paragoogle.subject
. Se o mapeamento não estiver correto, atualize o provedor do pool de identidade da força de trabalho.Consulte a seção Inspecionar a resposta do IdP para ver a resposta retornada pelo IdP. Inspecione o valor do atributo da resposta do IdP que é mapeado para
google.subject
nos mapeamentos de atributos.Se o valor estiver vazio ou incorreto, faça login no Admin Console do IdP e inspecione os atributos configurados. Em relação aos atributos, verifique se o usuário afetado tem dados correspondentes no seu IdP. Atualize a configuração do IdP para corrigir os atributos ou as informações do usuário.
Tente fazer login novamente.
400. Isto é um erro
Esse erro ocorre quando a solicitação não é recebida como esperado ou é formada incorretamente.
Para resolver esse erro, siga estas etapas:
Siga as etapas na seção Informe seus usuários sobre como fazer login para verificar se você está seguindo as etapas corretas.
Compare a configuração do provedor de pool de identidade da força de trabalho com a configuração do IdP.
Erros de login no OIDC
Esta seção fornece sugestões para corrigir erros específicos do OIDC que um usuário de federação de identidade da força de trabalho pode encontrar ao fazer login.
Erro ao se conectar ao emissor da credencial
Esse erro ocorre quando um provedor de pool de identidade da força de trabalho OIDC não pode acessar o documento de descoberta do OIDC ou URI JWKS.
Para resolver esse erro, siga estas etapas:
Descreva o provedor e inspecione o
issuerUri
configurado. Para criar o URL do documento de descoberta, anexe/.well-known/openid-configuration
ao URI do emissor. Por exemplo, seissuerUri
forhttps://example.com
, o URL do documento de descoberta seráhttps://example.com/.well-known/openid-configuration
.Abra o URL do documento de descoberta em uma janela de navegação anônima.
Se o URL não abrir ou o navegador exibir um erro
404
, consulte a documentação do IdP para identificar o URI do emissor correto. Se necessário, atualize oissuerUri
no provedor de pool de federação de identidade da força de trabalho.Se o IdP for executado no local, consulte a documentação dele para provisioná-lo para acesso na Internet.
Se o URL for aberto, verifique as seguintes condições:
- Verifique se o URL não redireciona muitas vezes antes de exibir o documento de descoberta. Se isso acontecer, consulte o administrador do IdP para corrigir o problema.
- Verifique o tempo de resposta do IdP. Consulte o administrador do IdP para reduzir a latência da resposta.
- O documento de descoberta aberto precisa estar no formato JSON.
Procure um campo
jwks_uri
no JSON.- Verifique se o valor do URL associado também é aberto.
- Verifique se o URL atende às condições descritas anteriormente neste guia.
Tente fazer login novamente.
Erros de login via SAML
Esta seção fornece sugestões para corrigir erros específicos do SAML que um usuário de federação de identidade da força de trabalho pode encontrar ao fazer login.
Falha ao verificar a assinatura em SAMLResponse
Esse erro ocorre para um provedor de pool de identidade de força de trabalho SAML quando a assinatura na resposta do IdP não pode ser verificada usando qualquer um dos certificados X.509 fornecidos no XML de metadados do IdP que você configurou no provedor de pool de identidade da força de trabalho. Uma causa comum desse erro é que o certificado de verificação no IdP foi alternado, mas você não atualizou a configuração do provedor de pool de identidade da força de trabalho com o arquivo XML de metadados do IdP mais recente.
Para resolver esse erro, siga estas etapas:
Opcional: siga as etapas em inspecionar a resposta do IdP para ver a resposta retornada pelo IdP e localizar o campo
X509Certificate
. Descreva o provedor que você usou para fazer login e inspecione o campoX509Certificate
presente no valoridpMetadataXml
definido no pool de identidade da força de trabalho provedor. Compare o certificado com o que foi visto na resposta retornada pelo IdP. Os certificados precisam ser iguais.Faça login no Admin Console do IdP e faça o download do XML de metadados mais recente.
Atualize o provedor de pool de identidade da força de trabalho com o XML de metadados do IdP transferido por download.
Tente fazer login novamente.
O destinatário na declaração SAML não está definido como o URL do ACS correto
Esse erro ocorre para um provedor de pool de federação de identidade de força de trabalho SAML quando a resposta
do IdP contém um valor incorreto para o campo Recipient
na
tag SubjectConfirmationData
.
Para resolver esse erro, atualize Recipient URL
/ Redirect URL
ou o
campo equivalente na configuração do IdP para usar o URL de redirecionamento descrito
em
Configurar URLs de redirecionamento no seu IdP e tente fazer login novamente.
Siga as etapas em inspecionar a resposta do IdP para ver a
resposta retornada pelo IdP e confirme se o campo Recipient
está
correto.
Por exemplo, para o provedor de pool de identidade de força de trabalho
locations/global/workforcePools/example-pool/providers/example-provider
,
o Recipient
que contém o URL de redirecionamento apareceria na resposta SAML do IdP da
seguinte maneira:
<SubjectConfirmationData Recipient="https://auth.cloud.google/signin-callback/locations/global/workforcePools/example-pool/providers/example-provider"
O destino SAMLResponse não corresponde ao URL de callback do RP
Esse erro ocorre para um provedor de pool de identidade de força de trabalho SAML quando a resposta
do IdP contém um valor incorreto para o campo Destination
na
tag Response
.
Para resolver esse erro, atualize Destination URL
/ Redirect URL
ou o
campo equivalente na configuração do IdP para usar o URL de redirecionamento descrito
em
Configurar URLs de redirecionamento no seu IdP.
Siga as etapas em inspecionar a resposta do IdP para ver a
resposta retornada pelo IdP e confirme se o campo Destination
está
correto.
Por exemplo, para um provedor de pool de identidade de força de trabalho
locations/global/workforcePools/example-pool/providers/example-provider
, o
Destination
que contém o URL de redirecionamento apareceria na resposta SAML do IdP da
seguinte maneira:
<Response Destination="https://auth.cloud.google/signin-callback/locations/global/workforcePools/example-pool/providers/example-provider"
Declaração inválida: NameID ausente ou vazio
Esse erro ocorre quando a resposta SAML recebida do IdP não contém o campo NameId
ou tem um valor vazio.
Para resolver esse erro, consulte a documentação do IdP para configurá-lo para enviar
o NameID
, que é o foco de uma declaração SAML, geralmente o usuário que
está sendo autenticado.
Siga as etapas em inspecionar a resposta do IdP para ver a
resposta retornada pelo IdP e o NameID
definido.
Todos os <AudienceRestriction>
s precisam conter o ID da entidade de RP SAML.
Esse erro ocorre quando as tags AudienceRestriction
na resposta SAML do
IdP não definem uma tag Audience
com valor que represente o ID da entidade
do provedor de pool de identidade da força de trabalho.
Para resolver esse erro, siga estas etapas:
Consulte a documentação do IdP sobre como configurar o público-alvo nas tags
AudienceRestriction
enviadas na resposta SAML. Normalmente, o público-alvo é configurado ao definir o campoEntity ID
ouAudience
na configuração do IdP. Consulte a seção do SAML Criar um provedor de pool de identidades de força de trabalho para ver o valorSP Entity ID
que precisa ser definido.Após atualizar a configuração do IdP, tente fazer login novamente.
Siga as etapas em inspecionar a resposta do IdP para ver a
resposta retornada pelo IdP e os AudienceRestriction
s definidos.