Damit sich Ihre Agenten mit ihrer eigenen Berechtigung bei externen Tools wie ServiceNow oder Salesforce authentifizieren können, konfigurieren Sie die ausgehende Authentifizierung mit 2-legged OAuth-Authentifizierungsanbietern (Clientanmeldedaten) im Authentifizierungsmanager für Agent Identity.
Durch die Verwaltung von Anmeldedaten und Tokens machen 2-legged OAuth-Authentifizierungsanbieter benutzerdefinierten Code für die Verarbeitung von Authentifizierungsabläufen überflüssig.
2-legged OAuth-Workflow
2-legged OAuth-Authentifizierungsanbieter verwenden die Identität des Agenten und erfordern keine Nutzereinwilligung. Google verwaltet die Speicherung der Clientanmeldedaten. Wenn Sie das Agent Development Kit (ADK) verwenden, werden die resultierenden Zugriffstokens automatisch abgerufen und in die Header für den Toolaufruf eingefügt.
Hinweis
- Prüfen Sie, ob Sie die richtige Authentifizierungsmethode ausgewählt haben.
Aktivieren Sie die Agent Identity API.
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die Berechtigung
serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Rolle „Inhaber“ (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollen.Rufen Sie die Client-ID und den Clientschlüssel von der Drittanbieteranwendung ab, mit der Sie eine Verbindung herstellen möchten.
Prüfen Sie, ob Sie die erforderlichen Rollen haben, um diese Aufgabe auszuführen.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen und Verwenden eines 2-legged Agent Identity-Authentifizierungsanbieters benötigen: Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Projekt zuzuweisen:
-
Zum Erstellen von Authentifizierungsanbietern:
- Agent Identity-Administrator (
roles/agentidentity.admin) - Agent Identity-Bearbeiter (
roles/agentidentity.editor)
- Agent Identity-Administrator (
-
Zum Verwenden von Authentifizierungsanbietern:
- Agent Identity-Nutzer (
roles/agentidentity.user) - Standardzugriff für Agenten (
roles/aiplatform.agentDefaultAccess) - Bearbeiter von Agentenkontexten (
roles/aiplatform.agentContextEditor) - Vertex AI-Nutzer (
roles/aiplatform.user) - Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer)
- Agent Identity-Nutzer (
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Diese vordefinierten Rollen enthalten die Berechtigungen, die zum Erstellen und Verwenden eines 2-legged Agent Identity-Authentifizierungsanbieters erforderlich sind. Maximieren Sie den Abschnitt Erforderliche Berechtigungen , um die notwendigen Berechtigungen anzuzeigen, die erforderlich sind:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind zum Erstellen und Verwenden eines 2-legged Agent Identity-Authentifizierungsanbieters erforderlich:
-
Zum Erstellen von Authentifizierungsanbietern:
agentidentity.authProviders.create -
Zum Verwenden von Authentifizierungsanbietern:
-
agentidentity.authProviders.retrieveCredentials -
aiplatform.endpoints.predict -
aiplatform.sessions.create
-
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
2-legged-Authentifizierungsanbieter erstellen
Erstellen Sie einen Authentifizierungsanbieter, um die Konfiguration und Anmeldedaten für Drittanbieteranwendungen zu definieren.
Verwenden Sie die Google Cloud Console oder die Google Cloud CLI, um einen 2-legged-Authentifizierungsanbieter zu erstellen.
Console
- Rufen Sie in der Google Cloud Console die Seite Agent Registry auf.
- Klicken Sie auf den Namen des Agenten, für den Sie einen Authentifizierungsanbieter erstellen möchten.
- Klicken Sie auf Identität.
- Klicken Sie im Abschnitt Authentifizierungsanbieter auf Authentifizierungsanbieter hinzufügen.
-
Geben Sie im Bereich Authentifizierungsanbieter hinzufügen einen Namen und eine Beschreibung ein.
Der Name darf nur Kleinbuchstaben, Ziffern oder Bindestriche enthalten. Er darf nicht mit einem Bindestrich enden und muss mit einem Kleinbuchstaben beginnen.
- Wählen Sie in der Liste OAuth-Typ die Option OAuth (2-legged) aus.
- Klicken Sie auf Erstellen und fortfahren.
- Klicken Sie auf Zugriff erlauben, um der Identität Ihres Agenten die Berechtigung zur Verwendung des Authentifizierungsanbieters zu erteilen.
Bei diesem Vorgang wird der Agentenidentität automatisch die Rolle Agent Identity-Nutzer (
roles/agentidentity.user) für die Authentifizierungsanbieterressource zugewiesen. - Geben Sie im Abschnitt Anmeldedaten des Authentifizierungsanbieters die folgenden Informationen ein:
- Client-ID
- Client-Secret
- Token-URL
- Klicken Sie auf Anbieterkonfiguration hinzufügen.
Der neu erstellte Authentifizierungsanbieter wird in der Liste Authentifizierungsanbieter angezeigt.
gcloud CLI
-
Erstellen Sie den Authentifizierungsanbieter:
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" - Prüfen Sie, ob Ihr Authentifizierungsanbieter in der Liste angezeigt wird und der Status
ENABLEDist:gcloud agent-identity auth-providers list \ --project="
PROJECT_ID" \ --location="LOCATION" -
Erteilen Sie Zugriffsberechtigungen, damit Ihr Agent und Ihre lokale Entwicklungsumgebung Anmeldedaten vom Authentifizierungsanbieter abrufen können. Damit Ihr bereitgestellter Agent und Ihr persönliches Nutzerkonto auf den Authentifizierungsanbieter zugreifen können, weisen Sie die Rolle Agent Identity-Nutzer (
roles/agentidentity.user) für die Authentifizierungsanbieterressource zu:-
Erteilen Sie Zugriff auf die SPIFFE-ID Ihres bereitgestellten Agenten (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" -
Erteilen Sie Zugriff auf Ihr persönliches Nutzerkonto für die lokale Entwicklung und das Testen (
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"
-
Ersetzen Sie Folgendes:
PROJECT_ID: Ihre Google Cloud Projekt-IDLOCATION: Der Standort, an dem Ihr Authentifizierungsanbieter und Ihr Agent bereitgestellt werden (z. B.us-west1).AUTH_PROVIDER_NAME: Der Name Ihres Authentifizierungsanbieters (z. B.jira-mcp-2lo-authprovider).CLIENT_ID: Die OAuth-Client-ID, die Sie vom Drittanbieterdienst generiert haben.CLIENT_SECRET: Das OAuth-Client-Secret, das Sie vom Drittanbieterdienst generiert haben.TOKEN_URL: Die URL des Token-Servers (z. B.https://oauth2.googleapis.com/token).ORGANIZATION_ID: Ihre Google Cloud Organisations-IDPROJECT_NUMBER: Ihre Google Cloud ProjektnummerENGINE_ID: Die ID Ihres bereitgestellten Reasoning-Engine-Agenten.USER_EMAIL: Die E-Mail-Adresse Ihres persönlichen Nutzerkontos.
Im Agentencode authentifizieren
Sie können das ADK verwenden, um Ihren Agenten zu authentifizieren.
ADK
Verweisen Sie im Code Ihres Agenten mit dem MCP-Toolset im ADK auf den Authentifizierungsanbieter.
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
Verweisen Sie im Code Ihres Agenten mit einem authentifizierten Funktionstool im ADK auf den Authentifizierungsanbieter.
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 Google Cloud 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
Verweisen Sie im Code Ihres Agenten mit dem MCP-Toolset der Agent Registry im ADK auf den Authentifizierungsanbieter.
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 Google Cloud auth provider CredentialManager.register_auth_provider(GcpAuthProvider()) # Create 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" ) ) # 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], )
Abhängigkeiten für lokale Tests installieren
Wenn Sie Ihren Agenten lokal in einer virtuellen Umgebung testen möchten, installieren Sie die folgenden erforderlichen Abhängigkeiten:
- Erstellen und aktivieren Sie eine virtuelle Umgebung:
python3 -m venv env source env/bin/activate
- Installieren Sie die erforderlichen Pakete:
pip install google-cloud-aiplatform[agent_engines,adk] google-adk[agent-identity]
Agent bereitstellen
Wenn Sie Ihren Agenten in Google Cloudbereitstellen, muss Agent Identity aktiviert sein.
Agent CLI
Wenn Sie das Agent Development Kit (ADK) und die Agent CLI verwenden, gehen Sie so vor, um Ihren Agenten mit aktivierter Agent Identity bereitzustellen:
-
Erstellen Sie im Ordner Ihrer Agentenanwendung eine Konfigurationsdatei mit dem Namen
.agent_engine_config.jsonum Agent Identity zu aktivieren:echo '{ "identity_type": "AGENT_IDENTITY" }' >
AGENT_NAME/.agent_engine_config.json -
Stellen Sie Ihren Agenten in der Agent Runtime auf der Gemini Enterprise Agent Platform bereit:
uv run adk deploy agent_engine
AGENT_NAME\ --project="PROJECT_ID" \ --region="LOCATION"Ersetzen Sie Folgendes:
AGENT_NAME: Der Name des Ordners Ihrer Agentenanwendung (z. B.maps_agent).PROJECT_ID: Ihre Google Cloud Projekt-IDLOCATION: Die unterstützte Region, in der Sie den Agenten bereitstellen möchten (z. B.us-west1).
Python SDK
Wenn Sie die Bereitstellung programmatisch mit dem Vertex AI
Python SDK vornehmen, verwenden Sie das identity_type=AGENT_IDENTITY Flag:
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", ], }, )
Ersetzen Sie Folgendes:
PROJECT_ID: Ihre Google Cloud Projekt ID.LOCATION: Die unterstützte Region, in der Sie den Agenten bereitstellen möchten (z. B.us-west1).
Nächste Schritte
- Übersicht über Agent Identity
- Mit 3-legged OAuth und dem Authentifizierungsmanager authentifizieren
- Mit API-Schlüssel und dem Authentifizierungsmanager authentifizieren
- Authentifizierungsanbieter für Agent Identity verwalten
- Fehlerbehebung für den Authentifizierungsmanager für Agent Identity