Resolva problemas da federação de identidade da força de trabalho

Esta página mostra como resolver problemas comuns com a federação de identidades de força de trabalho.

Inspecione a resposta do IdP

Esta secção mostra como inspecionar a resposta do seu fornecedor de identidade (IdP) para resolver problemas indicados neste documento.

Início de sessão baseado no navegador

Para inspecionar a resposta devolvida pelo seu IdP, gere um ficheiro HAR com uma ferramenta à sua escolha. Por exemplo, pode usar o analisador HAR da caixa de ferramentas do administrador da Google, que fornece instruções para gerar um ficheiro HAR e as ferramentas para o carregar e analisar.

SAML

Para inspecionar a resposta do IdP SAML, siga os passos abaixo:

  1. Localize o valor do parâmetro de pedido SAMLResponse no ficheiro HAR que é registado no URL com o caminho /signin-callback.
  2. Descodifique-o através de uma ferramenta à sua escolha. Por exemplo, pode usar a ferramenta Codificar/Descodificar da Caixa de ferramentas do administrador.

OIDC

Para inspecionar a resposta do IdP OIDC, siga estes passos. Esta abordagem não funciona com o fluxo de código.

  1. Procure o parâmetro de pedido id_token no ficheiro HAR registado em relação a um URL com o caminho /signin-callback.
  2. Descodifique-o através de uma ferramenta de depuração de JWT à sua escolha.

CLI gcloud

Para inspecionar a resposta do seu IdP quando usar a CLI gcloud, copie o conteúdo do ficheiro que transmitiu na flag --credential-source-file quando executar o comando gcloud iam workforce-pools create-cred-config e, em seguida, execute os passos seguintes:

SAML

Descodifique a resposta do IdP SAML com uma ferramenta à sua escolha. Por exemplo, pode usar a ferramenta Encode/Decode da Caixa de ferramentas do administrador Google.

OIDC

Descodifique a resposta do IdP OIDC através de uma ferramenta de depuração JWT à sua escolha.

Reveja registos

Para determinar se Trusted Cloud está a comunicar com o seu IdP e rever as informações das transações, pode inspecionar os registos dos Cloud Audit Logs.

Para ver exemplos de registos, consulte o artigo Exemplos de registos de auditoria.

Erros de gestão de fornecedores e Workforce Pools

Esta secção fornece sugestões para corrigir erros comuns que pode encontrar ao gerir pools e fornecedores.

Erros gerais de mapeamento de atributos

Para resolver problemas de mapeamento de atributos do fornecedor do Workforce Identity Pool, faça o seguinte:

  • Inspeccione os atributos, também conhecidos como reivindicações, na configuração do IdP.
  • Inspecione os tokens gerados a partir do seu IdP. Para saber como gerar um token a partir do seu IdP, consulte a documentação do IdP.
  • Reveja o registo de auditoria detalhado da federação de identidade da força de trabalho nos registos de auditoria da nuvem.

O registo de auditoria detalhado regista erros de autenticação e autorização, juntamente com as reivindicações recebidas pela Workforce Identity Federation.

Pode ativar o registo de auditoria detalhado quando criar o fornecedor do pool de identidades da força de trabalho. Para ativar o registo de auditoria detalhado, adicione a flag --detailed-audit-logging quando criar o fornecedor do pool de identidades da força de trabalho.

Autorização recusada

Este erro ocorre quando o utilizador que tenta configurar a Workforce Identity Federation não tem a função IAM Workforce Pool Admin (roles/iam.workforcePoolAdmin).

INVALID_ARGUMENT: Missing OIDC web single sign-on config

O seguinte erro ocorre quando os campos web-sso-response-type e web-sso-assertion-claims-behavior não estão definidos ao criar um fornecedor do Workload Identity Pool da OIDC:

ERROR: (gcloud.iam.workforce-pools.providers.create-oidc) INVALID_ARGUMENT: Missing OIDC web single sign-on config.

Para resolver este erro, siga os passos na secção Crie um fornecedor para definir os campos adequadamente quando criar o fornecedor do Workload Identity Pool de força de trabalho OIDC.

Limite de taxa excedido. Tente novamente mais tarde

Este erro ocorre quando atingiu o limite da quota de recursos do conjunto de trabalhadores. Contacte o seu Trusted Cloud representante da conta para pedir um aumento da quota.

Erros de início de sessão

Esta secção fornece sugestões para corrigir erros comuns que um utilizador da Workforce Identity Federation pode encontrar quando inicia sessão.

Erros de início de sessão comuns

A credencial fornecida é rejeitada pela condição de atributo

Este erro ocorre quando a condição de atributo definida no fornecedor do Workforce Identity Pool não foi cumprida.

Por exemplo, considere a seguinte condição de atributo:

SAML

'gcp-users' in assertion.attributes.groups

OIDC

'gcp-users' in assertion.groups

Neste caso, vê o erro se a lista de grupos enviada no atributo groups pelo seu IdP não contiver gcp-users.

Para resolver este erro, siga estes passos:

  1. Descreva o fornecedor que foi usado para iniciar sessão e verifique se o attributeCondition está correto. Para obter informações sobre as operações suportadas nas condições, consulte a definição de linguagem.

  2. Siga os passos em inspecione a resposta do IdP para ver os atributos devolvidos pelo IdP e confirme se a condição do atributo está bem formulada e é precisa.

  3. Inicie sessão na consola do administrador do IdP e verifique se os atributos do IdP referenciados na condição do atributo estão configurados corretamente. Se necessário, consulte a documentação do seu IdP.

O atributo mapeado tem de ser do tipo STRING

Este erro ocorre para um fornecedor do Workload Identity Pool SAML quando o atributo especificado na mensagem de erro deve ser uma STRING de valor único, mas está mapeado para uma lista no mapeamento de atributos.

Por exemplo, considere um fornecedor do Workload Identity Pool de força de trabalho SAML que tenha o mapeamento de atributos attribute.role=assertion.attributes.userRole. Numa declaração SAML, um Attribute pode ter várias etiquetas AttributeValue, conforme mostrado no exemplo que se segue. Assim, todos os atributos SAML são considerados listas, pelo que assertion.attributes.userRole é uma lista.

<saml:Attribute Name="userRole">
    <saml:AttributeValue>
      security-admin
    </saml:AttributeValue>
    <saml:AttributeValue>
      user
    </saml:AttributeValue>
</saml:Attribute>

Neste exemplo, pode ver o seguinte erro:

The mapped attribute 'attribute.role' must be of type STRING

Para resolver este problema, siga estes passos:

  1. Descreva o fornecedor que foi usado para iniciar sessão e identifique o atributo do IdP que está definido no attributeMapping. Verifique o atributo em comparação com o atributo apresentado na mensagem de erro. No exemplo anterior, um atributo do IdP denominado userRole é mapeado para o atributo role, e o atributo role aparece no exemplo de erro acima.

  2. Siga as orientações abaixo para atualizar o mapeamento de atributos:

    • Se o atributo que causa o erro tiver vários valores, identifique um atributo alternativo, estável e com valor de string. Em seguida, atualize o mapeamento de atributos para o usar referenciando o respetivo primeiro item. Para o exemplo anterior, se myRole fosse identificado como o atributo IdP de valor único alternativo, o mapeamento de atributos seria:

      attribute.role=assertion.attributes.myRole[0]
      
    • Em alternativa, se souber que o atributo tem um único valor, atualize o mapeamento de atributos para usar o primeiro item da lista. Para o exemplo anterior, se userRole contiver apenas uma função, pode usar o seguinte mapeamento:

      attribute.role=assertion.attributes.userRole[0]
      
    • Para obter um identificador estável de valor único a partir da lista, consulte a definição de idioma e atualize o mapeamento de atributos em conformidade.

Consulte a secção inspecione a resposta do IdP para ver a resposta devolvida pelo IdP.

Não foi possível obter um valor para google.subject a partir da credencial indicada

Este erro ocorre quando não foi possível mapear a reivindicação necessária google.subject usando o mapeamento de atributos que definiu na configuração do fornecedor do Workload Identity Pool.

Para resolver este erro, siga estes passos:

  1. Descreva o fornecedor e inspecione o attributeMapping. Identifique o mapeamento configurado para google.subject. Se o mapeamento não estiver correto, atualize o fornecedor do conjunto de identidades de força de trabalho.

  2. Consulte a secção inspecione a resposta do IdP para ver a resposta devolvida pelo IdP. Inspeccione o valor do atributo da resposta do IdP que está mapeado para google.subject nos seus mapeamentos de atributos.

    Se o valor estiver vazio ou incorreto, inicie sessão na consola do administrador do seu IdP e inspecione os atributos configurados. Para os atributos, verifique se o utilizador afetado tem dados correspondentes no seu IdP. Atualize a configuração do IdP para corrigir os atributos ou as informações do utilizador em conformidade.

  3. Tente iniciar sessão novamente.

O tamanho dos atributos mapeados excede o limite

Ocorreu o seguinte erro quando um utilizador federado tenta iniciar sessão:

The size of the entire mapped attributes exceeds the 16 KB limit.

Para resolver este problema, peça ao administrador do IdP para reduzir o número de atributos emitidos pelo IdP. O seu IdP só precisa de emitir atributos necessários para federar utilizadores para o Trusted Cloud. Para saber mais acerca dos limites de mapeamento de atributos, consulte o artigo Mapeamentos de atributos.

Por exemplo, se o seu IdP emitir um grande número de atributos mapeados no seu fornecedor do Workload Identity Pool, uma tentativa de início de sessão pode falhar.google.groups Peça ao administrador para restringir o número de grupos que o seu IdP emite.

A contagem de grupos excede o limite

Ocorreu o seguinte erro quando um utilizador federado tenta iniciar sessão:

The current count of GROUPS_COUNT mapped attribute google.groups exceeds the GROUPS_COUNT_LIMIT count limit. Either modify your attribute mapping or the incoming assertion to produce a mapped attribute that has fewer than GROUPS_COUNT_LIMIT groups.

Este erro inclui os seguintes valores:

  • GROUPS_COUNT: a contagem de grupos que o IdP emite

  • GROUPS_COUNT_LIMIT:limite de contagem de Trusted Cloudpara grupos

Este erro ocorreu quando o número de grupos emitidos pelo IdP excede o limite deTrusted Cloud. Os grupos são mapeados para Trusted Cloud usando o atributo google.groups.

Para resolver este problema, peça ao administrador que reduza o número de grupos emitidos pelo IdP. O seu IdP só precisa de emitir grupos que são usados para federar utilizadores para o Trusted Cloud. Saiba mais acerca dos limites relacionados com grupos nos mapeamentos de atributos.

400. Isto é um erro

Este erro ocorre quando o pedido não foi recebido como esperado ou está danificado.

Para resolver este erro, siga estes passos:

  1. Siga os passos na secção Informe os seus utilizadores sobre como iniciar sessão para verificar se está a seguir os passos corretos para iniciar sessão.

  2. Compare a configuração do fornecedor do Workload Identity Pool com a configuração do IdP.

Erros de início de sessão do OIDC

Esta secção fornece sugestões para corrigir erros específicos do OIDC que um utilizador da Workforce Identity Federation pode encontrar quando inicia sessão.

Erro ao estabelecer ligação ao emissor das credenciais fornecidas

Este erro ocorre quando um fornecedor do Workload Identity Pool da força de trabalho do OIDC não consegue aceder ao documento de deteção do OIDC ou ao URI JWKS.

Para resolver este erro, siga estes passos:

  1. Descreva o fornecedor e inspecione o issuerUri configurado. Construa o URL do documento de descoberta acrescentando /.well-known/openid-configuration ao URI do emissor. Por exemplo, se o seu issuerUri for https://example.com, o URL do documento de descoberta seria https://example.com/.well-known/openid-configuration.

  2. Abra o URL do documento de descoberta numa janela de navegação anónima.

    1. Se o URL não abrir ou o navegador apresentar um erro 404, consulte a documentação do seu IdP para identificar o URI do emissor correto. Se necessário, atualize o issuerUri no fornecedor do Workload Identity Pool.

      Se o IdP estiver a ser executado no local, consulte a documentação do IdP para o aprovisionar para acesso através da Internet.

    2. Se o URL for aberto, verifique as seguintes condições:

      1. Verifique se o URL não redireciona demasiadas vezes antes de publicar o documento de descoberta. Se for o caso, consulte o administrador do IdP para resolver o problema.
      2. Verifique o tempo de resposta do IdP. Contacte o administrador do IdP para reduzir a latência de resposta.
      3. O documento de descoberta aberto deve estar no formato JSON.
      4. Procure um campo jwks_uri no JSON.

        1. Verifique se o valor do URL associado também é aberto.
        2. Confirme que o URL cumpre as condições descritas anteriormente neste guia.
    3. Tente iniciar sessão novamente.

Erros de início de sessão de SAML

Esta secção fornece sugestões para corrigir erros específicos do SAML que um utilizador da Workforce Identity Federation pode encontrar quando inicia sessão.

Falha ao validar a assinatura em SAMLResponse

Este erro ocorre para um fornecedor do Workload Identity Pool de força de trabalho quando não é possível validar a assinatura na resposta do IdP com nenhum dos certificados X.509 fornecidos no XML de metadados do IdP que configurou no seu fornecedor do Workload Identity Pool de força de trabalho. Uma causa comum deste erro é o facto de o certificado de validação no IdP ter sido alterado, mas não ter atualizado a configuração do fornecedor do conjunto de identidades da força de trabalho com o ficheiro XML de metadados do IdP mais recente.

Para resolver este erro, siga estes passos:

  1. Opcional: siga os passos para inspecionar a resposta do IdP para ver a resposta devolvida pelo IdP e localizar o campo X509Certificate na mesma. Descreva o fornecedor que usou para iniciar sessão e inspecione o campo X509Certificate presente no valor idpMetadataXml definido no fornecedor do Workload Identity Pool. Compare o certificado com o que é apresentado na resposta devolvida pelo seu IdP. Os certificados têm de corresponder.

  2. Inicie sessão na consola do administrador do IDP e transfira o XML de metadados mais recente.

  3. Atualize o fornecedor do Workforce Identity Pool com o XML dos metadados do IdP transferido.

  4. Tente iniciar sessão novamente.

O destinatário na declaração SAML não está definido para o URL do ACS correto

Este erro ocorre para um fornecedor do Workload Identity Pool SAML quando a resposta do IdP contém um valor incorreto para o campo Recipient na etiqueta SubjectConfirmationData.

Para resolver este erro, atualize o Recipient URL / Redirect URL ou o campo equivalente na configuração do seu IdP para usar o URL de redirecionamento descrito em Configure URLs de redirecionamento no seu IdP e tente iniciar sessão novamente.

Siga os passos em inspecionar a resposta do IdP para ver a resposta devolvida pelo IdP e confirme que o campo Recipient está correto.

Por exemplo, para o fornecedor do Workforce Identity Pool locations/global/workforcePools/example-pool/providers/example-provider, o Recipient que contém o URL de redirecionamento aparece na resposta SAML do IdP conforme mostrado abaixo:

<SubjectConfirmationData Recipient="https://auth.cloud.s3nscloud.fr/signin-callback/locations/global/workforcePools/example-pool/providers/example-provider"

O destino SAMLResponse não corresponde ao URL de retorno do RP

Este erro ocorre para um fornecedor do Workload Identity Pool SAML quando a resposta do IdP contém um valor incorreto para o campo Destination na etiqueta Response.

Para resolver este erro, atualize o Destination URL / Redirect URL ou o campo equivalente na configuração do seu IdP para usar o URL de redirecionamento descrito em Configure URLs de redirecionamento no seu IdP.

Siga os passos em inspecione a resposta do IdP para ver a resposta devolvida pelo IdP e confirme que o campo Destination está correto.

Por exemplo, para um fornecedor do Workforce Identity Pool locations/global/workforcePools/example-pool/providers/example-provider, o Destination que contém o URL de redirecionamento seria apresentado na resposta SAML do IdP da seguinte forma:

<Response Destination="https://auth.cloud.s3nscloud.fr/signin-callback/locations/global/workforcePools/example-pool/providers/example-provider"

Asserção inválida: NameID em falta ou vazio

Este erro ocorre quando a resposta SAML recebida do seu IdP não contém o campo NameId ou tem um valor vazio.

Para resolver este erro, consulte a documentação do IdP para o configurar de modo a enviar o NameID, que é o assunto de uma afirmação SAML, normalmente o utilizador que está a ser autenticado.

Siga os passos para inspecionar a resposta do IdP para ver a resposta devolvida pelo IdP e o NameID definido no mesmo.

Todos os <AudienceRestriction>s devem conter o ID da entidade RP SAML

Este erro ocorre quando as etiquetas AudienceRestriction na resposta SAML do seu IdP não definem uma etiqueta Audience com um valor que represente o ID da entidade do fornecedor do Workload Identity Pool.

Para resolver este erro, siga estes passos:

  1. Consulte a documentação do IdP sobre como configurar o público-alvo nas etiquetas AudienceRestriction que envia na resposta SAML. Normalmente, o público-alvo é configurado através da configuração do campo Entity ID ou Audience na configuração do IdP. Consulte a secção SAML de criação de um fornecedor do Workload Identity Pool para ver o valor SP Entity ID que deve ser definido.

  2. Depois de atualizar a configuração do IdP, tente iniciar sessão novamente.

Siga os passos para inspecionar a resposta do IdP para ver a resposta devolvida pelo IdP e os AudienceRestrictions definidos na mesma.