Pour permettre à vos agents de s'authentifier auprès d'outils externes tels que ServiceNow ou Salesforce à l'aide de leur propre autorité, configurez l'authentification sortante à l'aide de fournisseurs d'authentification OAuth en deux étapes (identifiants client) dans le gestionnaire d'authentification Agent Identity.
En gérant les identifiants et les jetons, les fournisseurs d'authentification OAuth en deux étapes éliminent le besoin de code personnalisé pour gérer les flux d'authentification.
Workflow OAuth en deux étapes
Les fournisseurs d'authentification OAuth en deux étapes utilisent l'identité de l'agent et ne nécessitent pas le consentement de l'utilisateur. Google gère le stockage des identifiants client. Lorsque vous utilisez Agent Development Kit (ADK), il récupère et injecte automatiquement les jetons d'accès résultants 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.
Rôles requis pour activer les API
Pour activer les API, vous devez disposer de l'autorisation
serviceusage.services.enable. Si vous avez créé le projet, vous disposez probablement déjà de cette autorisation via le rôle Propriétaire (roles/owner). Sinon, vous pouvez obtenir cette autorisation via le rôle Administrateur d'utilisation du service (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles.Obtenez l'ID client et le code secret du client à partir de l'application tierce à laquelle vous souhaitez vous connecter.
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 Agent Identity en deux étapes, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le projet :
-
Pour créer des fournisseurs d'authentification :
- Administrateur Agent Identity (
roles/agentidentity.admin) - Éditeur Agent Identity (
roles/agentidentity.editor)
- Administrateur Agent Identity (
-
Pour utiliser des fournisseurs d'authentification :
- Utilisateur Agent Identity (
roles/agentidentity.user) - Accès par défaut de l'agent (
roles/aiplatform.agentDefaultAccess) - Éditeur de contexte de l'agent (
roles/aiplatform.agentContextEditor) - Utilisateur Vertex AI (
roles/aiplatform.user) - Consommateur Service Usage (
roles/serviceusage.serviceUsageConsumer)
- Utilisateur Agent Identity (
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 Agent Identity en deux é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 Agent Identity en deux étapes :
-
Pour créer des fournisseurs d'authentification :
agentidentity.authProviders.create -
Pour utiliser des fournisseurs d'authentification :
-
agentidentity.authProviders.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 deux é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 deux étapes, utilisez la Cloud de Confiance console ou Google Cloud CLI.
Console
- Dans la Cloud de Confiance 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. Il 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 (2 legged) (OAuth en deux étapes).
- Cliquez sur Create and continue (Créer et continuer).
- Pour accorder à votre identité d'agent l'autorisation d'utiliser le fournisseur d'authentification, cliquez sur Grant access (Accorder l'accès).
Ce processus attribue automatiquement le Utilisateur Agent Identity (
roles/agentidentity.user) rôle à l'identité de l'agent sur la ressource du fournisseur d'authentification. - Dans la section Auth provider credentials (Identifiants du fournisseur d'authentification), saisissez les informations suivantes :
- ID client
- Code secret du client
- URL du jeton
- Cliquez sur Add provider config (Ajouter une configuration de fournisseur).
Le fournisseur d'authentification que vous venez de créer apparaît dans la liste Auth Providers (Fournisseurs d'authentification).
gcloud CLI
-
Créez le fournisseur d'authentification :
gcloud agent-identity auth-providers create
AUTH_PROVIDER_NAME\ --location="LOCATION" \ --two-legged-oauth-client-id="CLIENT_ID" \ --two-legged-oauth-client-secret="CLIENT_SECRET" \ --two-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 agent-identity auth-providers 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 Utilisateur Agent Identity (
roles/agentidentity.user) sur la ressource du fournisseur d'authentification :-
Accordez l'accès à l'ID SPIFFE de votre agent déployé (Agent Identity) :
gcloud agent-identity auth-providers add-iam-policy-binding
AUTH_PROVIDER_NAME\ --project="PROJECT_ID" \ --location="LOCATION" \ --role="roles/agentidentity.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 agent-identity auth-providers add-iam-policy-binding
AUTH_PROVIDER_NAME\ --project="PROJECT_ID" \ --location="LOCATION" \ --role="roles/agentidentity.user" \ --member="user:USER_EMAIL"
-
Remplacez les éléments suivants :
PROJECT_ID: ID de votre Cloud de Confiance 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,jira-mcp-2lo-authprovider).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.TOKEN_URL: URL du serveur de jetons (par exemple,https://oauth2.googleapis.com/token).ORGANIZATION_ID: ID de votre Cloud de Confiance organisation.PROJECT_NUMBER: numéro de votre Cloud de Confiance projet.ENGINE_ID: ID de votre agent de moteur de raisonnement déployé.USER_EMAIL: adresse e-mail de votre compte utilisateur personnel.
S'authentifier dans le code de votre agent
Pour authentifier votre agent, vous pouvez utiliser ADK.
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 import Agent 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()) # Create the Google Cloud Auth Provider scheme # Note: If using the legacy V1 API, the resource name uses 'connectors' # instead of 'authProviders': projects/.../connectors/... auth_scheme = GcpAuthProviderScheme( name="projects/PROJECT_ID/locations/LOCATION/authProviders/AUTH_PROVIDER_NAME" ) # 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 = Agent( name="AGENT_NAME", model="gemini-2.5-flash", instruction="AGENT_INSTRUCTIONS", tools=[toolset], )
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 import Agent 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 Cloud de Confiance auth provider CredentialManager.register_auth_provider(GcpAuthProvider()) # Create Auth Config # Note: If using the legacy V1 API, the resource name uses 'connectors' # instead of 'authProviders': projects/.../connectors/... spotify_auth_config = AuthConfig( auth_scheme=GcpAuthProviderScheme( name=( "projects/PROJECT_ID/locations/" "LOCATION/authProviders/" "AUTH_PROVIDER_NAME" ) ) ) # 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 = Agent( name="AGENT_NAME", model="MODEL_NAME", 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 import Agent 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 Cloud de Confiance auth provider CredentialManager.register_auth_provider(GcpAuthProvider()) # Create Cloud de Confiance auth provider scheme # Note: If using the legacy V1 API, the resource name uses 'connectors' # instead of 'authProviders': projects/.../connectors/... auth_scheme = GcpAuthProviderScheme( name=( "projects/PROJECT_ID/locations/" "LOCATION/authProviders/" "AUTH_PROVIDER_NAME" ) ) # 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 = Agent( name="AGENT_NAME", model="MODEL_NAME", instruction="AGENT_INSTRUCTIONS", tools=[toolset], )
Installer des dépendances pour les tests locaux
Pour tester votre agent localement dans un environnement virtuel, installez les dépendances nécessaires suivantes :
- Créez et activez un environnement virtuel :
python3 -m venv env source env/bin/activate
- Installez les packages requis :
pip install google-cloud-aiplatform[agent_engines,adk] google-adk[agent-identity]
Déployer l'agent
Lorsque vous déployez votre agent sur Cloud de Confiance by S3NS, assurez-vous qu'Agent Identity est activé.
Agent CLI
Si vous utilisez Agent Development Kit (ADK) et Agent CLI, procédez comme suit pour déployer votre agent avec Agent Identity activé :
-
Dans le dossier de votre application d'agent, créez un fichier de configuration nommé
.agent_engine_config.jsonpour activer Agent Identity :echo '{ "identity_type": "AGENT_IDENTITY" }' >
AGENT_NAME/.agent_engine_config.json -
Déployez votre agent sur Agent Runtime sur Gemini Enterprise Agent Platform :
uv run adk deploy agent_engine
AGENT_NAME\ --project="PROJECT_ID" \ --region="LOCATION"Remplacez les éléments suivants :
AGENT_NAME: nom du dossier de votre application d'agent (par exemple,maps_agent).PROJECT_ID: ID de votre Cloud de Confiance projet.LOCATION: région compatible dans laquelle vous souhaitez déployer l'agent (par exemple,us-west1).
SDK Python
Si vous effectuez un déploiement par programmation à l'aide du SDK Vertex AI
Python, utilisez l'indicateur identity_type=AGENT_IDENTITY :
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,mcp]>=2.7.1", ], }, )
Remplacez les éléments suivants :
PROJECT_ID: ID de votre Cloud de Confiance projet.LOCATION: région compatible dans laquelle vous souhaitez déployer l'agent (par exemple,us-west1).
Étape suivante
- Présentation d'Agent Identity
- S'authentifier à l'aide d'OAuth en trois é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
- Résoudre les problèmes liés au gestionnaire d'authentification Agent Identity