En este documento y en el documento Tipos de tokens, se explican los distintos tokens que usa Google Cloud para la autenticación y la autorización. Están dirigidos a personas que desean aprender cómo funciona la autenticación basada en tokens o que desean implementar la autenticación sin usar las bibliotecas cliente de Cloud.
No es necesario que conozcas esta información cuando interactúas con las APIs de Google Clouda través de las bibliotecas cliente de Cloud, la consola de Google Cloud o Google Cloud CLI. El proceso de selección del tipo de token correcto, así como la obtención y actualización de esos tokens, se maneja automáticamente por ti.
Autenticación de usuarios
Cuando los usuarios humanos interactúan con Google Cloud, no lo hacen directamente con las APIs deGoogle Cloud . En su lugar, usan un cliente para actuar en su nombre.
El cliente que usan puede ser una aplicación web, una aplicación de escritorio o una utilidad como Google Cloud CLI o curl
.
Dado que el cliente realiza solicitudes y no el usuario, Google Cloud no puede solicitar información de identidad directamente al usuario para verificar si tiene permiso para usar una API. En cambio, esta identidad se pasa a la API a través del cliente en forma de token, que se incluye en cada solicitud a la API.
Un token de autenticación del usuario codifica la siguiente información:
Es la identidad del usuario.
Es la identidad del cliente.
Garantía de que el cliente puede actuar en nombre del usuario.
La autenticación del usuario y la autorización del cliente involucran a las siguientes partes:
Con un usuario
Es un cliente que actúa en nombre del usuario.
Un servidor de autorización, en el que se basan las APIs de Google para autenticar al cliente
Es una API de Google Cloud con la que interactúa el cliente.
Los clientes no pueden emitir tokens por sí mismos. En cambio, deben trabajar con un servidor de autorización para hacer lo siguiente:
Autentica al usuario.
Autentica al cliente.
Autoriza al cliente a actuar en nombre del usuario.
Emite un token para el cliente.
Un usuario que se autentica accediendo a su Cuenta de Google es un principal user. La principal tiene un identificador principal similar al siguiente:
user:alex@example.com
Un usuario que se autentica con la federación de identidades de personal y un proveedor de identidad externo es un principal del grupo de identidades de personal. La principal tiene un identificador similar al siguiente:
principal://iam.googleapis.com/locations/global/workforcePools/POOL_ID/subject/raha@altostrat.com
Autenticación de cargas de trabajo
Algunos clientes necesitan interactuar con las APIs de Google en su propio nombre. Por ejemplo, es posible que un trabajo programado necesite leer datos de BigQuery o Cloud Storage sin que participe ningún usuario humano.
Los clientes que actúan sin supervisión y en nombre propio se denominan cargas de trabajo. A diferencia de la autenticación de usuarios, la autenticación de cargas de trabajo combina la autenticación del usuario y la autorización del cliente en un solo paso. Por este motivo, un token de autenticación de carga de trabajo codifica la identidad solo del cliente.
La autenticación y autorización de cargas de trabajo involucran a las siguientes partes:
Es una carga de trabajo que actúa como cliente y usuario, y en su propio nombre.
Un servidor de autorización, en el que se basan las APIs de Google para autenticar al cliente
Es una API de Google Cloud con la que interactúa el cliente.
Para acceder a las APIs de Google Cloud , los clientes deben trabajar con un servidor de autorización para hacer lo siguiente:
Autentica al cliente.
Autoriza al cliente.
Emite un token para el cliente.
Una carga de trabajo autenticada también se conoce como principal, pero las cargas de trabajo usan identificadores principales diferentes a los de los usuarios.
Una carga de trabajo que se autentica con una cuenta de servicio es una principal de cuenta de servicio. El principal tiene un identificador similar al siguiente:
serviceAccount:my-service-account@my-project.iam.gserviceaccount.com
Una carga de trabajo que se autentica con la federación de identidades para cargas de trabajo es una principal del grupo de identidades para cargas de trabajo. La principal tiene un identificador similar al siguiente:
principal://iam.googleapis.com/projects/PROJECT_NAME/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT_ATTRIBUTE_VALUE
Servidores de autorización
Google Cloud comparte instalaciones específicas de autenticación y autorización con otros servicios de Google. Las instalaciones compartidas incluyen Acceder con Google y los servicios OpenID Connect y OAuth 2.0 que proporciona Google Identity.
Otros servicios relacionados con la autenticación, como la federación de identidades para cargas de trabajo y la federación de identidades de personal, son específicos de Google Cloud y no se pueden usar para otros servicios de Google.
Debido a esta división, Google Cloud usa dos servidores de autorización. Uno se comparte con otros servicios de Google y el otro es específico de Google Cloud. En la siguiente tabla, se describen los diferentes servidores y sus propiedades.
Servidor de autorización | Tipo de autenticación | APIs de Authentication | Principales |
---|---|---|---|
Servidor de autorización de Google |
|
|
|
Google Cloud Servidor de autorización de Identity and Access Management (IAM) |
|
Los servidores de autorización son servicios globales y se puede acceder a ellos desde cualquier región.Google Cloud Sin embargo, no todas las regiones contienen implementaciones de ambos servidores de autorización:
El servidor de autorización de Google está disponible en regiones seleccionadas.
El Google Cloud servidor de autorización de IAM está disponible en todas las regiones.
Para optimizar la confiabilidad, usa el servidor de autorización de Google Cloud IAM siempre que sea posible.
¿Qué sigue?
Obtén más información sobre los tipos de tokens.