En esta guía, se describe cómo recuperar las reclamaciones estándar de OpenID Connect (OIDC),
las reclamaciones de directorio personalizadas y las membresías de grupos para los usuarios de personal autenticados
con el extremo /userinfo en la API de OAuth de Cloud
(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 cambia un código de autorización por un token de acceso. Para obtener más información, consulta Intercambia tokens con la API de OAuth de Cloud.
- Asegúrate de que tu token de acceso incluya el permiso
openid. -
Habilita la API de OAuth de Cloud si aún no está habilitada.
Roles necesarios para habilitar las APIs
Para habilitar las 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 obtenerlo a través del rol de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin). Obtén más información para otorgar roles.
Extremo con permiso de organización
La API de OAuth de Cloud proporciona el extremo con alcance de organización (usuario único) que puedes usar cuando tu aplicación cliente y tus recursos están restringidos a una organización deGoogle Cloud específica:
El método
organizations.userinfo
de la API de OAuth de Cloud recupera las reclamaciones estándar de OpenID Connect (OIDC), las reclamaciones personalizadas y las membresías de grupos del 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 de organización numérico de 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:
En el caso de los grupos de identidades de personal que no tienen habilitado el aprovisionamiento de SCIM, el extremo devuelve atributos de perfil, reclamaciones personalizadas 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"
]
}
Reclamaciones 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 reclamaciones para el usuario autenticado.
El formato de las reclamaciones depende de si tu proveedor de grupos de identidades de personal usa el aprovisionamiento de SCIM:
Reclamaciones intercaladas (grupos de identidades que no son de SCIM)
Para los grupos de Workforce Identity que no tienen habilitado el aprovisionamiento de SCIM, el extremo devuelve atributos de perfil, reclamaciones personalizadas 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"
]
}
Reclamaciones distribuidas (grupos de identidades habilitados para SCIM)
En el caso de los grupos de identidades de personal con el aprovisionamiento de SCIM habilitado, las membresías de grupo
se devuelven como reclamaciones distribuidas. 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 reclamación
La respuesta contiene los siguientes campos de reclamación estándar y distribuida:
| Campo | Tipo | Descripción |
|---|---|---|
sub |
string |
Es el identificador de principal único del usuario autenticado en el grupo de identidades de personal. |
name |
string |
Es el 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 usuarios que no son de SCIM) Es la lista de membresías de grupos empresariales del usuario. |
_claim_names |
object |
(Solo con SCIM habilitado) Es un objeto JSON que asigna nombres de reclamaciones distribuidas (como groups) a identificadores de origen en _claim_sources. |
_claim_sources |
object |
(Solo con SCIM habilitado) Es un objeto JSON que define el extremo de origen para cada identificador de reclamación distribuida. |
Para obtener información sobre las respuestas de error que devuelve el extremo /userinfo, consulta
Errores de grupos y de información del usuario de OAuth de Cloud.