Soluciona problemas de la federación de identidades de personal

En esta página, se muestra cómo resolver problemas habituales con la federación de identidades de personal.

Inspecciona la respuesta del IdP

En esta sección, se muestra cómo inspeccionar la respuesta de tu proveedor de identidad (IdP) para solucionar los problemas enumerados en este documento.

Acceso basado en el navegador

Para inspeccionar la respuesta que muestra tu IdP, genera un archivo HAR con la herramienta que elijas. Por ejemplo, puedes usar HAR Analyzer de la Caja de herramientas para administradores de Google, que proporciona instrucciones a fin de generar un archivo HAR y las herramientas para subirlo y analizarlo.

SAML

Para inspeccionar la respuesta del IdP de SAML, sigue estos pasos:

  1. Ubica el valor del parámetro de la solicitud SAMLResponse en el archivo HAR que se registra en la URL con la ruta de acceso /signin-callback.
  2. Decodifícalo mediante la herramienta que prefieras, por ejemplo, puedes usar la codificación o decodificación de la Caja de herramientas para administradores de Google.

OIDC

Para inspeccionar la respuesta del IdP de OIDC, sigue estos pasos:

  1. Busca el parámetro de solicitud id_token en el archivo HAR que se registra en una URL con la ruta de acceso /signin-callback.
  2. Decodifícala mediante la herramienta de depuración de JWT que elijas.

gcloud CLI

Para inspeccionar la respuesta de tu IdP cuando usas la gcloud CLI, copia el contenido del archivo que pasaste en la marca --credential-source-file cuando ejecutaste el comando gcloud iam workforce-pools create-cred-config y, luego, realiza los pasos que aparecen a continuación:

SAML

Para decodificar la respuesta del IdP de SAML mediante la herramienta que prefieras, por ejemplo, puedes usar la codificación o decodificación de la Caja de herramientas para administradores de Google.

OIDC

Decodifica la respuesta del IdP de OIDC con la herramienta de depuración de JWT que elijas.

Revisa los registros

Para determinar si Google Cloud se comunica con el IdP y revisar la información de la transacción, puedes inspeccionar los registros de auditoría de Cloud. Para ver ejemplos de registro, consulta Ejemplos de registros de auditoría.

Errores de administración de grupos de trabajadores y proveedores

En esta sección, se proporcionan sugerencias para corregir errores comunes que pueden surgir cuando administras grupos y proveedores.

Permiso denegado

Este error se produce cuando el usuario que intenta configurar la federación de Workforce Identity no tiene la función de administrador de grupo de personal de IAM (roles/iam.workforcePoolAdmin).

INVALID_ARGUMENT: falta la configuración de inicio de sesión único de OIDC en la Web

El siguiente error ocurre cuando los campos web-sso-response-type y web-sso-assertion-claims-behavior no están configurados cuando se crea un proveedor de grupos de identidades de personal de OIDC:

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

Para resolver este error, sigue los pasos de la sección Crea un proveedor a fin de configurar los campos de forma adecuada cuando crees el proveedor de grupos de identidades de personal de OIDC.

Se superó el límite de frecuencia. Vuelve a intentarlo más tarde.

Este error se produce cuando alcanzas el límite de cuota para los recursos del grupo de personal. Comunícate con tu representante de cuenta de Google Cloud para solicitar un aumento de cuota.

Errores de acceso

En esta sección, se proporcionan sugerencias para corregir errores comunes que puede encontrar un usuario de federación de identidades de personal cuando accede.

Errores de acceso comunes

La condición del atributo rechaza la credencial determinada

Este error ocurre cuando no se cumplió la condición de atributo establecida en el proveedor de grupo de identidades de personal.

Por ejemplo, considera la siguiente condición de atributo:

SAML

'gcp-users' in assertion.attributes.groups

OIDC

'gcp-users' in assertion.groups

En este caso, verás el error si la lista de grupos que envió tu proveedor de identidad (IdP) en el atributo groups no contiene gcp-users.

Para resolver este error, realiza los siguientes pasos:

  1. Describe el proveedor que se usó para acceder y verifica que la attributeCondition sea correcta. Para obtener información sobre las operaciones que son compatibles con las condiciones, consulta la definición del lenguaje.

  2. Sigue los pasos en Inspecciona la respuesta del IdP para ver los atributos que muestra el IdP y confirma si la condición del atributo tiene el formato correcto y es precisa.

  3. Accede a la Consola del administrador del IdP y verifica si los atributos de IdP a los que se hace referencia en la condición del atributo estén configurados de forma correcta. Si es necesario, consulta la documentación de tu IdP.

El atributo asignado debe ser del tipo STRING

Este error ocurre en un proveedor de grupos de identidades de personal de SAML cuando el atributo especificado en el mensaje de error es una STRING de un solo valor, pero se asigna a una lista en la asignación de atributos.

Por ejemplo, considera un proveedor de grupo de identidades de personal de SAML que tiene la asignación de atributos, attribute.role=assertion.attributes.userRole. En una aserción de SAML, un Attribute puede tener varias etiquetas AttributeValue como se muestra en el siguiente ejemplo. Por lo tanto, todos los atributos de SAML se consideran listas, por lo que assertion.attributes.userRole es una lista.

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

En este ejemplo, es posible que veas el siguiente error:

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

Para resolver este problema, realiza los siguientes pasos:

  1. Describe el proveedor que se usó para acceder y, luego, identifica el atributo de IdP que se establece en attributeMapping. Compara el atributo y el atributo que se presenta en el mensaje de error. En el ejemplo anterior, un atributo de IdP llamado userRole se asigna al atributo role y el atributo role aparece en la muestra de error anterior.

  2. Sigue la guía que aparece a continuación para actualizar la asignación de atributos:

    • Si el atributo que causa el error es un valor de lista, identifica un atributo alternativo, estable y con valores de string. Luego, actualiza la asignación de atributos para usarla; para ello, haz referencia a su primer elemento. Para el ejemplo anterior, si myRole se identifica como el atributo de IdP de solo valor alternativo, la asignación de atributos sería la siguiente:

      attribute.role=assertion.attributes.myRole[0]
      
    • De manera alternativa, si se sabe que el atributo es de un solo valor, actualiza la asignación de atributos para usar el primer elemento de la lista. Para el ejemplo anterior, si userRole contiene solo un rol, puedes usar la siguiente asignación:

      attribute.role=assertion.attributes.userRole[0]
      
    • Para derivar un identificador estable y de un solo valor de la lista, consulta la sección sobre definición del lenguaje y actualiza la asignación de atributos según corresponda.

Consulta la sección Inspecciona la respuesta de IdP para ver la respuesta que muestra el IdP.

No se pudo obtener un valor para google.subject a partir de la credencial determinada

Este error se produce cuando el reclamo google.subject obligatorio no se pudo asignar mediante la asignación de atributos que estableciste en la configuración de tu proveedor de identidades de personal.

Para resolver este error, realiza los siguientes pasos:

  1. Describe el proveedor y, luego, inspecciona el attributeMapping. Identifica la asignación que está configurada para google.subject. Si la asignación no es correcta, actualiza el proveedor de grupo de identidades de personal.

  2. Consulta la sección Inspecciona la respuesta de IdP para ver la respuesta que muestra el IdP. Inspecciona el valor del atributo de la respuesta del IdP que se asigna a google.subject en tus asignaciones de atributos.

    Si el valor está vacío o es incorrecto, accede a la Consola del administrador del IdP y, luego, inspecciona los atributos configurados. Para los atributos, verifica si tu usuario afectado tiene datos correspondientes en tu IdP. Actualiza tu configuración de IdP para corregir los atributos o la información del usuario según corresponda.

  3. Intenta acceder de nuevo.

400. Se trata de un error.

Este error se produce cuando la solicitud no se recibió como se esperaba o si tenía un formato incorrecto.

Para resolver este error, realiza los siguientes pasos:

  1. Sigue los pasos en la sección Informa a tus usuarios cómo acceder a fin de verificar si sigues los pasos correctos para acceder.

  2. Compara la configuración del proveedor de grupo de identidades de personal con la configuración de IdP.

Errores de acceso de OIDC

En esta sección, se proporcionan sugerencias para corregir errores específicos de OIDC que un usuario de federación de identidades de personal puede encontrar cuando acceda.

Error en la conexión con la entidad emisora de la credencial

Este error se produce cuando un proveedor de grupo de identidades de personal de OIDC no puede acceder al documento de descubrimiento de OIDC o URI de JWKS.

Para resolver este error, realiza los siguientes pasos:

  1. Describe el proveedor y, luego, inserta el issuerUri configurado. Construye la URL del documento de descubrimiento mediante la adición de /.well-known/openid-configuration al URI de la entidad emisora. Por ejemplo, si tu issuerUri es https://example.com, la URL del documento de descubrimiento sería https://example.com/.well-known/openid-configuration.

  2. Abre la URL del documento de descubrimiento en una ventana de navegación de incógnito.

    1. Si la URL no se abre o en el navegador se muestra un error 404, consulta la documentación de tu IdP para identificar el URI de la entidad emisora correcto. Si es necesario, actualiza el issuerUri en tu proveedor de grupos de federación de identidades de personal.

      Si tu IdP se ejecuta de forma local, consulta la documentación de tu IdP para aprovisionarlo a fin de acceder a través de Internet.

    2. Si se abre la URL, verifica estas condiciones:

      1. Comprueba que la URL no redireccione demasiadas veces antes de entregar el documento de descubrimiento. Si es así, consulta con el administrador de tu IdP para solucionar el problema.
      2. Verifica el tiempo de respuesta del IdP. Consulta con el administrador del IdP para reducir la latencia de respuesta.
      3. El documento de descubrimiento abierto debe estar en formato JSON.
      4. Busca un campo jwks_uri en el archivo JSON.

        1. Verifica que también se abra el valor de la URL asociada.
        2. Verifica que la URL cumpla con las condiciones como se describió antes en esta guía.
    3. Intenta acceder de nuevo.

Errores de acceso de SAML

En esta sección, se proporcionan sugerencias para corregir errores específicos de SAML que un usuario de federación de identidades de personal puede encontrar cuando acceda.

No se pudo verificar la firma en SAMLResponse

Este error ocurre en un proveedor de grupos de identidades de trabajadores de SAML cuando la firma en la respuesta de IdP no se puede verificar mediante ninguno de los certificados X.509 proporcionados en el archivo XML de metadatos de IdP que configuraste en tu proveedor de identidades de personal. Una causa común de este error es que se rotó el certificado de verificación en tu IdP, pero no actualizaste la configuración del proveedor de grupo de identidades de personal con el archivo XML de metadatos de IdP más reciente.

Para resolver este error, realiza los siguientes pasos:

  1. Sigue los pasos que se indican en inspecciona la respuesta de IdP para ver la respuesta que muestra el IdP y ubica el campo X509Certificate en ella (opcional). Describe el proveedor que usaste para acceder y, luego, inspecciona el campo X509Certificate presente en el valor idpMetadataXml que se establece en el proveedor de grupo de identidades de personal. Compara el certificado con el que se ve en la respuesta que muestra tu IdP. Los certificados deben coincidir.

  2. Accede a la Consola del administrador del IdP y descarga el último archivo XML de metadatos.

  3. Actualiza el proveedor de grupo de identidades de personal con el archivo XML de metadatos de IdP descargado.

  4. Intenta acceder de nuevo.

El destinatario de la aserción de SAML no está configurado en la URL de ACS correcta

Este error se produce en un proveedor de grupo de identidades de personal de SAML cuando la respuesta del IdP contiene un valor incorrecto para el campo Recipient en la etiqueta SubjectConfirmationData.

Si deseas resolver este error, actualiza Recipient URL o Redirect URL, o el campo equivalente en la configuración de tu IdP para usar la URL de redireccionamiento que se describe en la sección Configura las URLs de redireccionamiento en tu IdP y vuelve a acceder.

Sigue los pasos en la página Inspecciona la respuesta de IdP para ver la respuesta que muestra el IdP y confirma que el campo Recipient sea correcto.

Por ejemplo, para el proveedor de grupo de identidades de personal locations/global/workforcePools/example-pool/providers/example-provider, el Recipient que contiene la URL de redireccionamiento aparece en la respuesta SAML de IdP, como se muestra a continuación:

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

El destino de SAMLResponse no coincide con la URL de devolución de llamada de RP

Este error se produce en un proveedor de grupo de identidades de personal de SAML cuando la respuesta del IdP contiene un valor incorrecto para el campo Destination en la etiqueta Response.

Si deseas resolver este error, actualiza Destination URL o Redirect URL, o el campo equivalente en la configuración de tu IdP para usar la URL de redireccionamiento que se describe en Configura las URLs de redireccionamiento en tu IdP.

Sigue los pasos en la página Inspecciona la respuesta de IdP para ver la respuesta que muestra el IdP y confirma que el campo Destination sea correcto.

Por ejemplo, para un proveedor de grupo de identidades de personal locations/global/workforcePools/example-pool/providers/example-provider, el Destination que contiene la URL de redireccionamiento aparecerá en la respuesta SAML de IdP de la siguiente manera:

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

Aserción no válida: NameID vacío o faltante

Este error se produce cuando la respuesta SAML que se recibió desde el IdP no contiene el campo NameId o tiene un valor vacío.

Si deseas resolver este error, consulta la documentación de tu IdP para configurarla a fin de enviar el NameID, que es el sujeto de una aserción de SAML, que suele ser el usuario que se autentica.

Sigue los pasos en la página Inspecciona la respuesta de IdP para ver la respuesta que muestra el IdP y el NameID que se configuró en ella.

Todos los valores de <AudienceRestriction> deben contener el ID de entidad del RP de SAML

Este error se produce cuando las etiquetas AudienceRestriction en la respuesta de SAML de tu IdP no configuran una etiqueta Audience con valor que represente el ID de entidad del proveedor de grupo de identidades de personal.

Para resolver este error, realiza los siguientes pasos:

  1. Consulta la documentación de IdP sobre cómo configurar el público en las etiquetas AudienceRestriction que envía en la respuesta de SAML. Por lo general, el público se configura mediante los campos Entity ID o Audience en la configuración de IdP. Consulta la sección de SAML Crea un proveedor de grupo de identidades de personal para ver el valor SP Entity ID que se debe configurar.

  2. Después de actualizar tu configuración de IdP, vuelve a acceder.

Sigue los pasos que aparecen en Inspecciona la respuesta de IdP para ver la respuesta que muestra el IdP y los valores de AudienceRestriction que se configuran en ella.