Pour accorder à votre agent l'accès à des outils et services externes (tels que des tâches Jira ou des dépôts GitHub) au nom d'un utilisateur final spécifique, configurez un fournisseur d'authentification OAuth en trois étapes dans le gestionnaire d'authentification Agent Identity.
Les fournisseurs d'authentification OAuth en trois étapes gèrent la redirection des utilisateurs et les jetons pour vous. Vous n'avez donc pas besoin d'écrire de code personnalisé pour gérer les flux OAuth 2.0 complexes.
Workflow OAuth en trois étapes
Les fournisseurs d'authentification OAuth en trois étapes nécessitent le consentement utilisateur, car l'agent accède aux ressources en son nom.
- Invite et redirection : l'interface de chat invite l'utilisateur à se connecter puis le redirige vers la page de consentement de l'application tierce.
- Consentement et stockage : une fois que l'utilisateur a accordé l'autorisation, le gestionnaire d'authentification Agent Identity stocke les jetons OAuth obtenus dans un coffre-fort d'identifiants géré par Google.
- Injection : lorsque vous utilisez Agent Development Kit (ADK), l'agent récupère automatiquement le jeton auprès du fournisseur d'authentification et l'injecte dans les en-têtes d'appel d'outil.
Avant de commencer
- Vérifiez que vous avez choisi la bonne méthode d'authentification.
-
Activez l'API Agent Identity Connector.
Rôles requis pour activer les API
Pour activer les API, vous avez besoin du rôle IAM Administrateur d'utilisation du service (
roles/serviceusage.serviceUsageAdmin), qui contient l'autorisationserviceusage.services.enable. Découvrez comment attribuer des rôles. - Créez et déployez un agent.
- Assurez-vous de disposer d'une application frontend pour gérer les invites de connexion des utilisateurs et la redirection vers les pages de consentement tierces.
- Vérifiez que vous disposez des rôles requis pour effectuer cette tâche.
Rôles requis
Pour obtenir les autorisations nécessaires pour créer et utiliser un fournisseur d'authentification en trois étapes, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le projet :
-
Pour créer des fournisseurs d'authentification :
- Administrateur IAM Connector (
roles/iamconnectors.admin) - Éditeur IAM Connector (
roles/iamconnectors.editor)
- Administrateur IAM Connector (
-
Pour utiliser des fournisseurs d'authentification :
- Utilisateur IAM Connector (
roles/iamconnectors.user) - Utilisateur Vertex AI (
roles/aiplatform.user) - Consommateur Service Usage (
roles/serviceusage.serviceUsageConsumer)
- Utilisateur IAM Connector (
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Ces rôles prédéfinis contiennent les autorisations requises pour créer et utiliser un fournisseur d'authentification en trois étapes. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Les autorisations suivantes sont requises pour créer et utiliser un fournisseur d'authentification en trois étapes :
-
Pour créer des fournisseurs d'authentification :
iamconnectors.connectors.create -
Pour utiliser des fournisseurs d'authentification :
-
iamconnectors.connectors.retrieveCredentials -
aiplatform.endpoints.predict -
aiplatform.sessions.create
-
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Créer un fournisseur d'authentification en trois étapes
Créez un fournisseur d'authentification pour définir la configuration et les identifiants des applications tierces.
Pour créer un fournisseur d'authentification en trois étapes, utilisez la Google Cloud console ou le Google Cloud CLI.
Console
- Dans la Google Cloud console, accédez à la page Agent Registry.
- Cliquez sur le nom de l'agent pour lequel vous souhaitez créer un fournisseur d'authentification.
- Cliquez sur Identity (Identité).
- Dans la section Auth Providers (Fournisseurs d'authentification), cliquez sur Add auth provider (Ajouter un fournisseur d'authentification).
-
Dans le volet Add auth provider (Ajouter un fournisseur d'authentification), saisissez un nom et une description.
Le nom ne peut contenir que des lettres minuscules, des chiffres ou des traits d'union, ne peut pas se terminer par un trait d'union et doit commencer par une lettre minuscule.
- Dans la liste OAuth Type (Type OAuth), sélectionnez OAuth (3 legged) (OAuth en trois étapes).
- Cliquez sur Create and continue (Créer et continuer).
- Pour accorder à l'identité de votre agent l'autorisation d'utiliser le fournisseur d'authentification, cliquez sur Grant access (Accorder l'accès).
Le rôle Connector User (
roles/iamconnectors.user) est automatiquement attribué à l'identité de l'agent sur la ressource du fournisseur d'authentification. - Copiez l'URL de rappel.
- Dans un onglet distinct, enregistrez l'URL de rappel dans votre application cliente OAuth tierce.
- Dans la section Auth provider credentials (Identifiants du fournisseur d'authentification), saisissez les informations suivantes :
- ID client
- Code secret du client
- URL du jeton
- URL d'autorisation
- Cliquez sur Add provider config (Ajouter une configuration de fournisseur).
Le fournisseur d'authentification que vous venez de créer s'affiche dans la liste Auth Providers (Fournisseurs d'authentification).
gcloud CLI
-
Configurez votre application cliente OAuth pour enregistrer votre client et obtenir un ID client ainsi qu'un code secret du client. Spécifiez l'URI de redirection à l'aide du modèle de cette section.
-
Créez le fournisseur d'authentification à l'aide de vos identifiants client :
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" - Vérifiez que votre fournisseur d'authentification apparaît dans la liste et que son état est
ENABLED:gcloud alpha agent-identity connectors list \ --project="
PROJECT_ID" \ --location="LOCATION" -
Accordez des autorisations d'accès pour permettre à votre agent et à votre environnement de développement local à récupérer les identifiants auprès du fournisseur d'authentification. Pour autoriser votre agent déployé et votre compte utilisateur personnel à accéder au fournisseur d'authentification, accordez le rôle Connector User (
roles/iamconnectors.user) sur la ressource du fournisseur d'authentification :-
Accordez l'accès à l'ID SPIFFE de votre agent déployé (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" -
Accordez l'accès à votre compte utilisateur personnel pour le développement et les tests locaux (
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"
-
Remplacez les éléments suivants :
PROJECT_ID: ID de votre Google Cloud projet.LOCATION: emplacement où votre fournisseur d'authentification et votre agent sont déployés (par exemple,us-west1).AUTH_PROVIDER_NAME: nom de votre fournisseur d'authentification (par exemple,bigquery-mcp-3lo-authprovider).AUTHORIZATION_URL: URL du serveur d'autorisation (par exemple,https://accounts.google.com/o/oauth2/v2/auth).TOKEN_URL: URL du serveur de jetons (par exemple,https://oauth2.googleapis.com/token).CLIENT_ID: ID client OAuth que vous avez généré à partir du service tiers.CLIENT_SECRET: code secret du client OAuth que vous avez généré à partir du service tiers.ORGANIZATION_ID: ID de votre Google Cloud organisation.PROJECT_NUMBER: numéro de votre Google Cloud projet.ENGINE_ID: ID de votre agent de moteur de raisonnement déployé.USER_EMAIL: adresse e-mail de votre compte utilisateur personnel.
Configurer votre application cliente OAuth
Avant d'enregistrer vos identifiants client OAuth, obtenez un ID client et un code secret du client auprès du serveur d'autorisation tiers (par exemple, Google, GitHub ou Jira).
Si vous vous connectez à un service tiers en dehors de Google Cloud, obtenez les identifiants client OAuth à partir du portail des développeurs de ce service et ignorez les étapes de cette section.
Enregistrer l'URI de redirection
Lorsque vous configurez vos identifiants client OAuth, vous devez enregistrer l'URI de redirection de rappel dédié du fournisseur d'authentification.
Créez l'URI de redirection à l'aide du modèle suivant :
https://iamconnectorcredentials.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/connectors/CONNECTOR_NAME/oauthcallbackRemplacez les éléments suivants :
PROJECT_ID: ID de votre Google Cloud projet.LOCATION: The region where your auth provider will be deployed (for example,us-west1`).CONNECTOR_NAME: nom de votre fournisseur d'authentification.
Par exemple :
https://iamconnectorcredentials.googleapis.com/v1/projects/my-project/locations/us-west1/connectors/bigquery-mcp-3lo-authprovider/oauthcallbackSi vous vous connectez à des Google Cloud services (tels que BigQuery), vous pouvez configurer l'écran de consentement et créer des identifiants client OAuth dans la Google Cloud console :
-
Configurez l'écran de consentement OAuth :
- Dans la Google Cloud console, accédez à la page API et services >Écran de consentement OAuth.
- Dans la section App information (Informations sur l'application), saisissez un nom d'application (par exemple, "Application BigQuery Manager") et une adresse e-mail d'assistance.
- Dans la section Audience, sélectionnez Interne ou Externe.
- Saisissez vos coordonnées pour recevoir des notifications.
- Lisez et acceptez le Règlement sur les données utilisateur dans les services d'API Google Policy.
- Cliquez sur Terminer.
-
Créez vos identifiants client OAuth :
- Dans la Google Cloud console, accédez à la page API et
services > Écran de consentement OAuth
> Clients.
Accéder à API et services >Écran de consentement OAuth >Clients
- Cliquez sur Créer des identifiants >ID client OAuth.
- Sélectionnez l'option Application Web dans la liste.
- Saisissez un nom reconnaissable pour votre client OAuth.
- Dans la section URI de redirection autorisés, cliquez sur Ajouter un URI et saisissez l'URI de redirection que vous avez créé.
- Cliquez sur Créer. Dans la boîte de dialogue Client OAuth créé , copiez les valeurs générées pour ID client et Code secret du client.
- Dans la Google Cloud console, accédez à la page API et
services > Écran de consentement OAuth
> Clients.
-
S'authentifier dans le code de votre agent
Pour authentifier votre agent, vous pouvez utiliser ADK ou appeler directement l'API Agent Identity.
ADK
Faites référence au fournisseur d'authentification dans le code de votre agent à l'aide de l'ensemble d'outils MCP dans 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], )
Exemple : connexion à BigQuery MCP
L'exemple suivant montre une configuration agent.py qui connecte un agent au serveur BigQuery MCP à l'aide d'OAuth en trois étapes :
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 from google.genai import types _, project_id = google.auth.default() os.environ["GOOGLE_CLOUD_PROJECT"] = "PROJECT_ID" os.environ["GOOGLE_GENAI_USE_VERTEXAI"] = "True" bigquery_mcp_auth_provider_id = "AUTH_PROVIDER_NAME" bigquery_mcp_endpoint = os.environ.get( "BIGQUERY_MCP_ENDPOINT", "https://bigquery.googleapis.com/mcp" ) # Register Google Cloud auth provider for Agent Identity Credentials service CredentialManager.register_auth_provider(GcpAuthProvider()) # The URI to redirect the user to after consent is granted and the callback is received. CONTINUE_URI = "http://127.0.0.1:8501/validateUserId" bigquery_mcp_auth_scheme = GcpAuthProviderScheme( name=f"projects/{project_id}/locations/LOCATION/connectors/{bigquery_mcp_auth_provider_id}", scopes=["https://www.googleapis.com/auth/bigquery"], continue_uri=CONTINUE_URI, ) bigquery_mcp_tools = McpToolset( connection_params=StreamableHTTPConnectionParams(url=bigquery_mcp_endpoint), auth_scheme=bigquery_mcp_auth_scheme, errlog=None, ) root_agent = Agent( name="root_agent", model=Gemini( model="gemini-2.5-flash", retry_options=types.HttpRetryOptions(attempts=3), ), instruction=( "You are a helpful AI assistant designed to provide accurate and useful" " information. You can also use your BigQuery MCP tools to look up" " BigQuery data." ), tools=[bigquery_mcp_tools], ) app = App( root_agent=root_agent, name="AGENT_NAME", )
ADK
Faites référence au fournisseur d'authentification dans le code de votre agent à l'aide d'un outil de fonction authentifié dans ADK.
import httpx from google.adk.agents.llm_agent import LlmAgent from google.adk.auth.credential_manager import CredentialManager from google.adk.integrations.agent_identity import GcpAuthProvider from google.adk.integrations.agent_identity import GcpAuthProviderScheme from google.adk.apps import App from google.adk.auth.auth_credential import AuthCredential from google.adk.auth.auth_tool import AuthConfig from google.adk.tools.authenticated_function_tool import AuthenticatedFunctionTool from vertexai import agent_engines # First, register Google Cloud auth provider CredentialManager.register_auth_provider(GcpAuthProvider()) # The URI to redirect the user to after consent is completed. CONTINUE_URI = "WEB_APP_VALIDATE_USER_URI" # Create Auth Config spotify_auth_config = AuthConfig( auth_scheme=GcpAuthProviderScheme( name="projects/PROJECT_ID/locations/LOCATION/connectors/AUTH_PROVIDER_NAME", continue_uri=CONTINUE_URI ) ) # Use the Auth Config in Authenticated Function Tool spotify_search_track_tool = AuthenticatedFunctionTool( func=spotify_search_track, auth_config=spotify_auth_config ) # Sample function tool async def spotify_search_track(credential: AuthCredential, query: str) -> str | list: token = None if credential.http and credential.http.credentials: token = credential.http.credentials.token if not token: return "Error: No authentication token available." async with httpx.AsyncClient() as client: response = await client.get( "https://api.spotify.com/v1/search", headers={"Authorization": f"Bearer {token}"}, params={"q": query, "type": "track", "limit": 1}, ) # Add your own logic here agent = LlmAgent( name="AGENT_NAME", model="gemini-2.5-flash", instruction="AGENT_INSTRUCTIONS", tools=[spotify_search_track_tool], ) app = App( name="APP_NAME", root_agent=agent, ) vertex_app = agent_engines.AdkApp(app_name=app)
ADK
Faites référence au fournisseur d'authentification dans le code de votre agent à l'aide de l'ensemble d'outils MCP Agent Registry dans 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 from google.adk.integrations.agent_identity import 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 from google.adk.integrations.agent_registry import AgentRegistry # First, register Google Cloud auth provider CredentialManager.register_auth_provider(GcpAuthProvider()) # The URI to redirect the user to after consent is completed. CONTINUE_URI="WEB_APP_VALIDATE_USER_URI" # Create Google Cloud auth provider by providing auth provider full resource name auth_scheme = GcpAuthProviderScheme( name="projects/PROJECT_ID/locations/LOCATION/connectors/AUTH_PROVIDER_NAME", continue_uri=CONTINUE_URI ) # Set Agent Registry registry = AgentRegistry(project_id="PROJECT_ID", location="global") toolset = registry.get_mcp_toolset(mcp_server_name="projects/PROJECT_ID/locations/global/mcpServers/agentregistry-00000000-0000-0000-0000-000000000000", auth_scheme=auth_scheme ) # Example MCP tool toolset = McpToolset( connection_params=StreamableHTTPConnectionParams(url="MCP_URL"), auth_scheme=auth_scheme, ) agent = LlmAgent( name="AGENT_NAME", model="MODEL_NAME", instruction="AGENT_INSTRUCTIONS", tools=[toolset], )
Appeler directement l'API
Si vous n'utilisez pas ADK, votre agent doit appeler l'API iamconnectorcredentials.retrieveCredentials pour obtenir le jeton.
Comme il s'agit d'un flux OAuth en plusieurs étapes, l'API renvoie une opération de longue durée (LRO). Votre agent doit gérer le cycle de vie de l'opération :
- Requête initiale : l'agent appelle
retrieveCredentials. - Consentement requis : si l'utilisateur n'a pas donné son consentement, l'API renvoie une
LRO dont les métadonnées contiennent le
auth_uriet unconsent_nonce. - Redirection frontend : votre application doit rediriger l'utilisateur vers le
auth_uri. - Finalisation : une fois que l'utilisateur a donné son consentement, appelez
FinalizeCredentialà l'aide duconsent_noncepour terminer le flux et obtenir le jeton.
Mettre à jour votre application côté client
Pour gérer la connexion et la redirection des utilisateurs pour OAuth en trois étapes, votre application côté client doit suivre les étapes suivantes afin de gérer le consentement utilisateur et de reprendre la conversation :
Exemple de serveur d'interface utilisateur
Vous pouvez télécharger et exécuter un exemple complet de serveur d'interface utilisateur qui utilise
uvicorn. Avant de commencer, assurez-vous de disposer d'un compte GitHub
et que pip est installé.
Pour configurer et exécuter l'exemple de serveur d'interface utilisateur, procédez comme suit :
-
Clonez le dépôt GitHub
adk-python:git clone https://github.com/google/adk-python.git
-
Accédez au dépôt et activez un environnement virtuel Python :
cd adk-python python3 -m venv .venv source .venv/bin/activate
-
Accédez au répertoire client de l'exemple d'interface utilisateur :
cd contributing/samples/integrations/gcp_auth/client
-
Installez les dépendances du client :
pip install -r requirements.txt
-
Avant de démarrer le serveur, définissez la variable d'environnement
AGENT_PROJECT_DIRpour spécifier le répertoire dans lequel se trouve le code de votre agent. Sinon, l'application recherche par défaut les agents dans le dossier parent du répertoire client.Lancez l'exemple de serveur d'interface utilisateur à l'aide de
uvicorn. Assurez-vous que le port correspond à l'URI de redirection configuré dans votre client OAuth :export AGENT_PROJECT_DIR="/path/to/your/agent_project" uvicorn main:app --port 8501 --reload
-
Ouvrez
http://localhost:8501dans votre navigateur. (Remarque : Vous devez utiliserlocalhostet non127.0.0.1, car l'URL de redirection OAuth l'exige spécifiquement.) Spécifiez vos paramètres, cliquez Save & Apply Settings (Enregistrer et appliquer les paramètres), puis interagissez avec votre agent.
Application d'interface utilisateur personnalisée
Pour implémenter ces fonctionnalités directement dans une application d'interface utilisateur personnalisée, procédez comme suit :
- Gérer le déclencheur d'autorisation
- Implémenter un point de terminaison de validation des utilisateurs
- Reprendre la conversation avec l'agent
Gérer le déclencheur d'autorisation
Lorsqu'un agent a besoin du consentement utilisateur, il renvoie un appel de fonction adk_request_credential. Votre application doit intercepter cet appel pour lancer une boîte de dialogue ou une redirection d'autorisation de l'utilisateur.
Gérez le contexte de la session en enregistrant le consent_nonce fourni par le fournisseur d'authentification. Ce nonce est requis pour valider l'utilisateur lors de l'étape de validation. Enregistrez les valeurs auth_config et auth_request_function_call_id dans la session pour faciliter la reprise du flux une fois que l'utilisateur a donné son consentement.
if (fc := get_auth_request_function_call(event_data)): print("--> Authentication required by agent.") try: auth_config = get_auth_config(fc) auth_uri, consent_nonce = handle_adk_request_credential( auth_config, AUTH_PROVIDER_NAME, request.user_id ) if auth_uri: event_data['popup_auth_uri'] = auth_uri fc_id = ( fc.get('id') if isinstance(fc, dict) else getattr(fc, 'id', None) ) event_data['auth_request_function_call_id'] = fc_id event_data['auth_config'] = auth_config.model_dump() # Store session state if session_id: consent_sessions[session_id] = { "user_id": request.user_id, "consent_nonce": consent_nonce } except Exception as e: print(f"Error handling adk_request_credential: {e}") # Optionally, add logic to inform the user about the error. def handle_adk_request_credential(auth_config, auth_provider_name, user_id): ec = auth_config.exchanged_auth_credential if ec and ec.oauth2: oauth2 = ec.oauth2 return oauth2.auth_uri, oauth2.nonce return None, None
Implémenter un point de terminaison de validation des utilisateurs
Implémentez un point de terminaison de validation sur votre serveur Web (le même URI que celui fourni en tant que continue_uri lors de la configuration). Ce point de terminaison doit effectuer les opérations suivantes :
- Recevoir
user_id_validation_stateetauth_provider_nameen tant que paramètres de requête. - Récupérer les valeurs
user_idetconsent_nonceà partir du contexte de la session. - Appeler l'API
FinalizeCredentialsdu fournisseur d'authentification avec ces paramètres. - Fermer la fenêtre d'autorisation lors de la réception d'une réponse positive.
Exemple : point de terminaison de validation FastAPI (main.py)
L'exemple suivant montre un point de terminaison de validation FastAPI complet qui gère le rappel OAuth et finalise les identifiants utilisateur :
@app.api_route("/validateUserId", methods=["GET"]) async def validate_user(request: Request): auth_provider_name = request.query_params.get("auth_provider_name") session_id = request.cookies.get("session_id") session = consent_sessions.get(session_id, {}) payload = { "userId": session.get("user_id"), "userIdValidationState": request.query_params.get( "user_id_validation_state" ), "consentNonce": session.get("consent_nonce"), } base_url = "https://iamconnectorcredentials.googleapis.com/v1alpha" finalize_url = f"{base_url}/{auth_provider_name}/credentials:finalize" try: async with httpx.AsyncClient(timeout=30.0) as client: resp = await client.post(finalize_url, json=payload) resp.raise_for_status() except httpx.HTTPError as e: err_text = e.response.text if hasattr(e, "response") else str(e) status = e.response.status_code if hasattr(e, "response") else 500 return HTMLResponse(err_text, status_code=status) return HTMLResponse(""" <script> window.close(); </script> <p>Success. You can close this window.</p> """)
Reprendre la conversation avec l'agent
Une fois que l'utilisateur a donné son consentement et que la fenêtre d'autorisation s'est fermée, récupérez les valeurs auth_config et auth_request_function_call_id à partir des données de votre session. Pour poursuivre la conversation, incluez ces informations dans une nouvelle requête adressée à l'agent en tant que function_response.
if (request.is_auth_resume and session.auth_request_function_call_id and session.auth_config): auth_content = types.Content( role='user', parts=[ types.Part( function_response=types.FunctionResponse( id=session.auth_request_function_call_id, name='adk_request_credential', response=session.auth_config ) ) ], ) # Send message to agent async for event in agent.async_stream_query( user_id=request.user_id, message=auth_content, session_id=session_id, ): # ...
Déployer l'agent
Lorsque vous déployez votre agent sur Google Cloud, assurez-vous qu'Agent Identity est activé.
Si vous effectuez un déploiement sur
Agent Runtime sur Gemini Enterprise Agent Platform
, utilisez l'
identity_type=AGENT_IDENTITY indicateur :
import vertexai
from vertexai import types
from vertexai.agent_engines import AdkApp
# Initialize the Vertex AI client with v1beta1 API for Agent Identity support
client = vertexai.Client(
project="PROJECT_ID",
location="LOCATION",
http_options=dict(api_version="v1beta1")
)
# Use the proper wrapper class for your Agent Framework (e.g., AdkApp)
app = AdkApp(agent=agent)
# Deploy the agent with Agent Identity enabled
remote_app = client.agent_engines.create(
agent=app,
config={
"identity_type": types.IdentityType.AGENT_IDENTITY,
"requirements": [
"google-cloud-aiplatform[agent_engines,adk]",
"google-adk[agent-identity]"
],
},
)
Étape suivante
- Résoudre les problèmes d'authentification Agent Identity
- Présentation d'Agent Identity
- S'authentifier à l'aide d'OAuth en deux étapes avec le gestionnaire d'authentification
- S'authentifier à l'aide d'une clé API avec le gestionnaire d'authentification
- Gérer les fournisseurs d'authentification Agent Identity