En esta guía, se describe cómo recuperar las declaraciones estándar de OpenID Connect (OIDC), las declaraciones personalizadas de directorio y las membresías de grupos para los usuarios autenticados de la organización con el extremo /userinfo en la API de Cloud OAuth (cloudoauth.googleapis.com).
Antes de comenzar
- Configura un grupo y un proveedor de Workforce Identity. Para obtener más información, consulta Configura la federación de identidades de personal.
- Registra un cliente de OAuth y canjea un código de autorización por un token de acceso. Para obtener más información, consulta Cómo intercambiar tokens con la API de Cloud OAuth.
- Asegúrate de que tu token de acceso incluya el permiso de
openid. -
Habilita la API de Cloud OAuth.
Roles necesarios para habilitar las APIs
Para habilitar APIs, necesitas el permiso
serviceusage.services.enable. Si creaste el proyecto, es probable que ya tengas este permiso a través del rol de propietario (roles/owner). De lo contrario, puedes obtener este permiso a través del rol de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin). Obtén más información para otorgar roles.
Endpoint con alcance de organización
La API de Cloud OAuth proporciona el extremo con alcance de la organización (de un solo arrendatario) que puedes usar cuando tu aplicación cliente y tus recursos están restringidos a unaGoogle Cloud organización específica:
El método organizations.userinfo de la API de Cloud OAuth recupera las reclamaciones estándar de OpenID Connect (OIDC), las reclamaciones personalizadas y las membresías de grupos para el usuario autenticado en una organización específica.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
TOKEN: Es el token de acceso de OAuth 2.0 de corta duración que se obtiene del extremo de intercambio de tokens.ORGANIZATION_ID: Es el ID numérico de tu organización Google Cloud .
Método HTTP y URL:
GET https://cloudoauth.googleapis.com/v1/organizations/ORGANIZATION_ID/userinfo
Para enviar tu solicitud, expande una de estas opciones:
Para los grupos de identidades del personal sin aprovisionamiento de SCIM habilitado, el extremo devuelve atributos de perfil, reclamos personalizados y membresías de grupos intercalados:
{
"sub": "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/user@example.com",
"email": "user@example.com",
"custom_claim1": "engineering",
"custom_claim2": "us-west",
"groups": [
"looker-developers",
"analytics-viewers"
]
}
Reclamos de usuarios y grupos distribuidos de SCIM
Cuando una solicitud se realiza correctamente, el extremo /userinfo devuelve un estado HTTP 200 OK y un objeto JSON que contiene las declaraciones del usuario autenticado.
El formato de las reivindicaciones depende de si tu proveedor de grupo de identidades de personal usa el aprovisionamiento de SCIM:
Reclamos intercalados (grupos de identidades que no son de SCIM)
En el caso de los grupos de identidades para cargas de trabajo sin el aprovisionamiento de SCIM habilitado, el extremo devuelve atributos de perfil, reclamos personalizados y membresías de grupos intercalados:
{
"sub": "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/user@example.com",
"email": "user@example.com",
"custom_claim1": "engineering",
"custom_claim2": "us-west",
"groups": [
"looker-developers",
"analytics-viewers"
]
}
Reclamos distribuidos (grupos de identidades habilitados para SCIM)
En el caso de los grupos de identidades del personal con aprovisionamiento de SCIM habilitado, las membresías de los grupos se devuelven como reclamos distribuidos. La respuesta incluye _claim_names y _claim_sources que hacen referencia al extremo /groups:
{
"sub": "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/user@example.com",
"name": "Jane Doe",
"email": "user@example.com",
"_claim_names": {
"groups": "src1"
},
"_claim_sources": {
"src1": {
"endpoint": "https://cloudoauth.googleapis.com/v1/common/groups"
}
}
}
Campos de reclamo
La respuesta contiene los siguientes campos de reclamo estándar y distribuido:
| Campo | Tipo | Descripción |
|---|---|---|
sub |
string |
Es el identificador principal único del usuario autenticado en el grupo de identidades de personal. |
name |
string |
Nombre completo del usuario, si está disponible en el proveedor de identidad. |
email |
string |
Es la dirección de correo electrónico del usuario autenticado. |
groups |
array of strings |
(Solo para no SCIM) Es la lista de membresías de grupos empresariales del usuario. |
_claim_names |
object |
(Solo habilitado para SCIM) Es un objeto JSON que asigna nombres de reclamos distribuidos (como groups) a identificadores de origen en _claim_sources. |
_claim_sources |
object |
(Solo habilitado para SCIM) Es un objeto JSON que define el extremo de origen para cada identificador de reclamo distribuido. |
Para obtener información sobre las respuestas de error que devuelve el extremo /userinfo, consulta Errores de información del usuario y grupos de Cloud OAuth.
¿Qué sigue?
- Cómo recuperar grupos empresariales con la API de Cloud OAuth
- Intercambia tokens con la API de Cloud OAuth
- Descripción general de la API de Cloud OAuth
- Administra aplicaciones de OAuth para la federación de identidades de personal
- Referencia de la API de REST de Cloud OAuth