Para otorgar a tu agente acceso a herramientas y servicios externos (como tareas de Jira o repositorios de GitHub) en nombre de un usuario final específico, configura un proveedor de autenticación de OAuth de 3 segmentos en el administrador de autenticación de Agent Identity.
Los proveedores de autenticación de OAuth de 3 segmentos administran la redirección de usuarios y los tokens por ti. Esto elimina la necesidad de escribir código personalizado para controlar flujos complejos de OAuth 2.0.
Flujo de trabajo de OAuth de 3 segmentos
Los proveedores de autenticación de OAuth de 3 segmentos requieren el consentimiento del usuario porque el agente accede a los recursos en nombre del usuario.
- Solicitud y redireccionamiento: La interfaz de chat le solicita al usuario que acceda y, luego, lo redirecciona a la página de consentimiento de la aplicación de terceros.
- Consentimiento y almacenamiento: Después de que el usuario otorga permiso, el administrador de autenticación de Agent Identity almacena los tokens de OAuth resultantes en un almacén de credenciales administrado por Google.
- Inyección: Cuando usas el Kit de desarrollo de agentes (ADK), el agente recupera automáticamente el token del proveedor de autenticación y lo inyecta en los encabezados de invocación de la herramienta.
Antes de comenzar
- Verifica que hayas elegido el método de autenticación correcto.
-
Habilita la API de Agent Identity Connector.
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 obtener este permiso a través del rol de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin). Obtén información para otorgar roles. - Crea e implementa un agente.
- Asegúrate de tener una aplicación de frontend para controlar las solicitudes de acceso del usuario y la redirección a las páginas de consentimiento de terceros.
- Verifica que tengas los roles necesarios para completar esta tarea.
Roles obligatorios
Para obtener los permisos que necesitas para crear y usar un proveedor de autenticación de 3 segmentos, pídele a tu administrador que te otorgue los siguientes roles de IAM en el proyecto:
-
Para crear proveedores de autenticación:
- Administrador de IAM Connector (
roles/iamconnectors.admin) - Editor de IAM Connector (
roles/iamconnectors.editor)
- Administrador de IAM Connector (
-
Para usar proveedores de autenticación:
- Usuario de IAM Connector (
roles/iamconnectors.user) - Usuario de Vertex AI (
roles/aiplatform.user) - Consumidor de Service Usage (
roles/serviceusage.serviceUsageConsumer)
- Usuario de IAM Connector (
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
Estos roles predefinidos contienen los permisos necesarios para crear y usar un proveedor de autenticación de 3 segmentos. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Se requieren los siguientes permisos para crear y usar un proveedor de autenticación de 3 segmentos:
-
Para crear proveedores de autenticación:
iamconnectors.connectors.create -
Para usar proveedores de autenticación:
-
iamconnectors.connectors.retrieveCredentials -
aiplatform.endpoints.predict -
aiplatform.sessions.create
-
También puedes obtener estos permisos con roles personalizados o otros roles predefinidos.
Crea un proveedor de autenticación de 3 segmentos
Crea un proveedor de autenticación para definir la configuración y las credenciales de las aplicaciones de terceros.
Para crear un proveedor de autenticación de 3 segmentos, usa la Google Cloud consola o la Google Cloud CLI.
Console
- En la Google Cloud consola, ve a la página Agent Registry.
- Haz clic en el nombre del agente para el que deseas crear un proveedor de autenticación.
- Haz clic en Identity.
- En la sección Auth Providers, haz clic en Agregar proveedor de autenticación.
-
En el panel Agregar proveedor de autenticación, ingresa un nombre y una descripción.
El nombre solo puede contener letras minúsculas, números o guiones, no puede terminar con un guion y debe comenzar con una letra minúscula.
- En la lista Tipo de OAuth, selecciona OAuth (3 segmentos) .
- Haz clic en Crear y continuar.
- Para otorgar permiso de identidad de agente para usar el proveedor de autenticación, haz clic en Otorgar acceso.
Esto asigna automáticamente el rol de Usuario de Connector (
roles/iamconnectors.user) a la identidad del agente en el recurso del proveedor de autenticación. - Copia la URL de devolución de llamada.
- En una pestaña independiente, registra la URL de devolución de llamada en tu aplicación cliente de OAuth de terceros.
- En la sección Credenciales del proveedor de autenticación, ingresa la siguiente información:
- Client ID (ID de cliente)
- Client Secret (Secreto del cliente)
- Token URL
- Authorization URL
- Haz clic en Agregar configuración del proveedor.
El proveedor de autenticación recién creado aparecerá en la lista Proveedores de autenticación.
gcloud CLI
-
Configura tu aplicación cliente de OAuth para registrar tu cliente y obtener un ID de cliente y un secreto del cliente. Especifica el URI de redireccionamiento con la plantilla de esa sección.
-
Crea el proveedor de autenticación con tus credenciales de cliente:
gcloud alpha agent-identity connectors create
AUTH_PROVIDER_NAME\ --project="PROJECT_ID" \ --location="LOCATION" \ --three-legged-oauth-client-id="CLIENT_ID" \ --three-legged-oauth-client-secret="CLIENT_SECRET" \ --three-legged-oauth-authorization-url="AUTHORIZATION_URL" \ --three-legged-oauth-token-url="TOKEN_URL" - Verifica que tu proveedor de autenticación aparezca en la lista y que su estado sea
ENABLED:gcloud alpha agent-identity connectors list \ --project="
PROJECT_ID" \ --location="LOCATION" -
Otorga permisos de acceso para permitir que tu agente y el entorno de desarrollo local recuperen credenciales del proveedor de autenticación. Para permitir que tu agente implementado y tu cuenta de usuario personal accedan al proveedor de autenticación, otorga el rol de Usuario de Connector (
roles/iamconnectors.user) en el recurso del proveedor de autenticación:-
Otorga acceso al ID de SPIFFE de tu agente implementado (Agent Identity):
gcloud alpha agent-identity connectors add-iam-policy-binding
AUTH_PROVIDER_NAME\ --project="PROJECT_ID" \ --location="LOCATION" \ --role="roles/iamconnectors.user" \ --member="principal://agents.global.org-ORGANIZATION_ID.system.id.goog/resources/aiplatform/projects/PROJECT_NUMBER/locations/LOCATION/reasoningEngines/ENGINE_ID" -
Otorga acceso a tu cuenta de usuario personal para el desarrollo y las pruebas locales (
adk web):gcloud alpha agent-identity connectors add-iam-policy-binding
AUTH_PROVIDER_NAME\ --project="PROJECT_ID" \ --location="LOCATION" \ --role="roles/iamconnectors.user" \ --member="user:USER_EMAIL"
-
Reemplaza lo siguiente:
PROJECT_ID: Es el ID del Google Cloud proyecto de.LOCATION: Es la ubicación en la que se implementan tu proveedor de autenticación y tu agente (por ejemplo,us-west1).AUTH_PROVIDER_NAME: Es el nombre de tu proveedor de autenticación (por ejemplo,bigquery-mcp-3lo-authprovider).AUTHORIZATION_URL: Es la URL del servidor de autorización (por ejemplo,https://accounts.google.com/o/oauth2/v2/auth).TOKEN_URL: Es la URL del servidor de tokens (por ejemplo,https://oauth2.googleapis.com/token).CLIENT_ID: Es el ID de cliente de OAuth que generaste desde el servicio de terceros.CLIENT_SECRET: Es el secreto del cliente de OAuth que generaste desde el servicio de terceros.ORGANIZATION_ID: Es el ID de tu Google Cloud organización.PROJECT_NUMBER: Es el número del proyecto de Google Cloud .ENGINE_ID: Es el ID de tu agente de motor de razonamiento implementado.USER_EMAIL: Es la dirección de correo electrónico de tu cuenta de usuario personal.
Configura tu aplicación cliente de OAuth
Antes de registrar tus credenciales de cliente de OAuth, obtén un ID de cliente y un secreto del cliente del servidor de autorización de terceros (por ejemplo, Google, GitHub o Jira).
Si te conectas a un servicio de terceros fuera de Google Cloud, obtén las credenciales de cliente de OAuth del portal para desarrolladores de ese servicio y omite los pasos de esta sección.
Registra el URI de redireccionamiento
Cuando configures tus credenciales de cliente de OAuth, debes registrar el URI de redireccionamiento de devolución de llamada dedicado del proveedor de autenticación.
Construye el URI de redireccionamiento con la siguiente plantilla:
https://iamconnectorcredentials.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/connectors/CONNECTOR_NAME/oauthcallbackReemplaza lo siguiente:
PROJECT_ID: Es el ID del Google Cloud proyecto de.LOCATION: The region where your auth provider will be deployed (for example,us-west1`).CONNECTOR_NAME: Es el nombre de tu proveedor de autenticación.
Por ejemplo:
https://iamconnectorcredentials.googleapis.com/v1/projects/my-project/locations/us-west1/connectors/bigquery-mcp-3lo-authprovider/oauthcallbackSi te conectas a Google Cloud servicios (como BigQuery), puedes configurar la pantalla de consentimiento y crear credenciales de cliente de OAuth en la Google Cloud consola:
-
Configura la pantalla de consentimiento de OAuth:
- En la Google Cloud consola, ve a la APIs & Services >Pantalla de consentimiento de OAuth página.
- En la sección Información de la aplicación, ingresa un nombre de aplicación (como Aplicación del administrador de BigQuery) y un correo electrónico de asistencia.
- En la sección Público, selecciona Interno o Externo.
- Ingresa tu información de contacto para recibir notificaciones.
- Lee y acepta la Política de Datos del Usuario de los Servicios de las APIs de Google Política.
- Haz clic en Finalizar.
-
Crea tus credenciales de cliente de OAuth:
- En la Google Cloud consola, ve a la página APIs &
Services > Pantalla de consentimiento de OAuth > Clientes.
Ir a APIs & Services >Pantalla de consentimiento de OAuth >Clientes
- Haz clic en Crear credenciales >ID de cliente de OAuth.
- Selecciona la opción Aplicación web de la lista.
- Ingresa un nombre reconocible para tu cliente de OAuth.
- En la sección URIs de redireccionamiento autorizados, haz clic en Agregar URI y, luego, ingresa el URI de redireccionamiento que construiste.
- Haz clic en Crear. En el diálogo Se creó el cliente de OAuth, copia los valores generados de Client ID (ID de cliente) y Client Secret (Secreto del cliente).
- En la Google Cloud consola, ve a la página APIs &
Services > Pantalla de consentimiento de OAuth > Clientes.
-
Autentícate en el código de tu agente
Para autenticar tu agente, puedes usar el ADK o llamar directamente a la API de Agent Identity.
ADK
Haz referencia al proveedor de autenticación en el código de tu agente con el conjunto de herramientas del MCP en el ADK.
from google.adk.agents.llm_agent import LlmAgent from google.adk.auth.credential_manager import CredentialManager from google.adk.integrations.agent_identity import GcpAuthProvider, GcpAuthProviderScheme from google.adk.tools.mcp_tool.mcp_session_manager import StreamableHTTPConnectionParams from google.adk.tools.mcp_tool.mcp_toolset import McpToolset from google.adk.auth.auth_tool import AuthConfig # Register the Google Cloud Auth Provider so the CredentialManager can use it. CredentialManager.register_auth_provider(GcpAuthProvider()) # The URI to redirect the user to after consent is granted and the # callback is received by the auth provider. CONTINUE_URI = "https://YOUR_FRONTEND_URL/validateUserId" # Create the Auth Provider scheme using the auth provider's full resource name. auth_scheme = GcpAuthProviderScheme( name="projects/PROJECT_ID/locations/LOCATION/connectors/AUTH_PROVIDER_NAME", continue_uri=CONTINUE_URI ) # Configure an MCP tool with the authentication scheme. toolset = McpToolset( connection_params=StreamableHTTPConnectionParams(url="https://YOUR_MCP_SERVER_URL"), auth_scheme=auth_scheme, ) # Initialize the agent with the authenticated tools. agent = LlmAgent( name="AGENT_NAME", model="gemini-2.5-flash", instruction="AGENT_INSTRUCTIONS", tools=[toolset], )
Ejemplo: Conexión a BigQuery MCP
En el siguiente ejemplo, se muestra una configuración de agent.py que conecta un agente al servidor de MCP de BigQuery con OAuth de 3 segmentos:
import os from google.adk.agents import Agent from google.adk.apps import App from google.adk.auth.credential_manager import CredentialManager from google.adk.integrations.agent_identity import GcpAuthProvider, GcpAuthProviderScheme from google.adk.models import Gemini from google.adk.tools.mcp_tool.mcp_session_manager import StreamableHTTPConnectionParams from google.adk.tools.mcp_tool.mcp_toolset import McpToolset import google.auth