Damit sich Ihre Agenten bei externen Tools wie Google Maps oder Weather APIs authentifizieren können, konfigurieren Sie die ausgehende Authentifizierung mit API-Schlüssel-Authentifizierungsanbietern im Agent Identity-Authentifizierungsmanager.
API-Schlüssel-Authentifizierungsanbieter verwalten Ihre kryptografischen Schlüssel für Sie. Dadurch müssen Sie keine Schlüssel mehr im Code Ihres Agents fest codieren oder manuell verwalten.
Workflow für API-Schlüssel
API-Schlüssel-Authentifizierungsanbieter verwenden die Identität des Agenten und erfordern keine Nutzereinwilligung. Google ergreift Maßnahmen, um den API-Schlüssel während der Speicherung zu schützen. Wenn Sie das Agent Development Kit (ADK) verwenden, wird der API-Schlüssel automatisch abgerufen und in die Header des Toolaufrufs 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 RollenRufen Sie einen API-Schlüssel vom Drittanbieterdienst ab, mit dem Sie eine Verbindung herstellen möchten.
Prüfen Sie, ob Sie die Rollen haben, die für diese Aufgabe erforderlich sind.
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 API-Schlüssel-Authentifizierungsanbieters benötigen:
-
So erstellen Sie Authentifizierungsanbieter:
- Agent Identity Admin (
roles/agentidentity.admin) - Bearbeiter von Agent-Identitäten (
roles/agentidentity.editor)
- Agent Identity Admin (
-
So verwenden Sie Authentifizierungsanbieter:
- Agent Identity-Nutzer (
roles/agentidentity.user) - 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 API-Schlüssel-Authentifizierungsanbieters erforderlich sind. Maximieren Sie den Abschnitt Erforderliche Berechtigungen, um die notwendigen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind erforderlich, um einen API-Schlüssel-Authentifizierungsanbieter zu erstellen und zu verwenden:
-
So erstellen Sie Authentifizierungsanbieter:
agentidentity.authProviders.create -
So verwenden Sie Authentifizierungsanbieter:
-
agentidentity.authProviders.retrieveCredentials -
aiplatform.endpoints.predict -
aiplatform.sessions.create
-
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
API-Schlüssel vom Drittanbieterdienst abrufen
Bevor Sie einen Authentifizierungsanbieter erstellen, müssen Sie einen API-Schlüssel vom Drittanbieterdienst abrufen, mit dem Ihr Agent eine Verbindung herstellen soll.
Wenn Sie eine Verbindung zu einem Drittanbieterdienst außerhalb von Google Cloudherstellen, rufen Sie den API-Schlüssel über das Entwicklerportal dieses Dienstes ab und überspringen Sie die Schritte in diesem Abschnitt.
Wenn Sie eine Verbindung zu Google Cloud -Diensten wie Cloud Translation oder Google Maps herstellen, können Sie einen API-Schlüssel generieren und konfigurieren, indem Sie die folgenden Schritte ausführen:
-
Aktivieren Sie in der Google Cloud Console die erforderlichen API-Dienste für Ihr Projekt:
- Rufen Sie in der Google Cloud Console die Seite APIs & Dienste >Bibliothek auf.
- Suchen Sie nach den APIs, die Ihr Agent verwendet, z. B. die Cloud Translation API oder die Google Maps Weather API, und aktivieren Sie sie.
- Kopieren Sie den generierten API-Schlüsselstring.
API-Schlüssel konfigurieren:
- Rufen Sie in der Google Cloud Console die Seite APIs & Dienste >Anmeldedaten auf.
- Klicken Sie auf Anmeldedaten erstellen > API-Schlüssel.
- Führen Sie im Dialogfeld API-Schlüssel erstellen die folgenden Schritte aus:
- Geben Sie einen eindeutigen Namen für Ihren API-Schlüssel ein.
- Wenn Sie den Schlüssel auf die von Ihnen aktivierten APIs beschränken möchten, wählen Sie diese APIs in der Liste API-Einschränkungen auswählen aus.
- Optional: Wählen Sie im Abschnitt Schlüssel einschränken, um Sicherheitsrisiken zu reduzieren einen Anwendungstyp aus, um den Zugriff einzuschränken.
- Klicken Sie auf Erstellen.
-
Validieren Sie Ihren API-Schlüssel, indem Sie eine Testanfrage an den Dienstendpunkt senden.
-
Führen Sie den folgenden Befehl aus, um einen Cloud Translation API-Schlüssel zu prüfen:
curl -X POST \ -H "Content-Type: application/json" \ -H "X-goog-api-key:
YOUR_API_KEY" \ -d '{"q": "Hello world", "target": "es"}' \ "https://translation.googleapis.com/language/translate/v2"Ersetzen Sie
YOUR_API_KEYdurch den generierten API-Schlüssel. -
Führen Sie den folgenden Befehl aus, um einen Google Maps Weather API-Schlüssel zu überprüfen:
curl -X GET \ "https://weather.googleapis.com/v1/currentConditions:lookup?key=
YOUR_API_KEY&location.latitude=37.4220&location.longitude=-122.0841"Ersetzen Sie
YOUR_API_KEYdurch den generierten API-Schlüssel.
Wenn der API-Schlüssel gültig und richtig konfiguriert ist, gibt der Dienst die angeforderten Daten zurück.
-
Authentifizierungsanbieter für API-Schlüssel 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 API-Schlüssel-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 Bereich 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, darf nicht mit einem Bindestrich enden und muss mit einem Kleinbuchstaben beginnen.
- Wählen Sie in der Liste OAuth Type (OAuth-Typ) die Option API key (API-Schlüssel) aus.
- Klicken Sie auf Erstellen und fortfahren.
- Wenn Sie Ihrer Agent-Identität die Berechtigung zur Verwendung des Authentifizierungsanbieters erteilen möchten, klicken Sie auf Zugriff erlauben.
Bei diesem Vorgang wird der Agent-Identität in der Ressource des Authentifizierungsanbieters automatisch die Rolle Agent Identity User (
roles/agentidentity.user) zugewiesen. - Geben Sie im Abschnitt Anmeldedaten des Authentifizierungsanbieters den API-Schlüssel ein.
- Klicken Sie auf Anbieterkonfiguration hinzufügen.
Der neu erstellte Authentifizierungsanbieter wird in der Liste Auth Providers (Authentifizierungsanbieter) angezeigt.
gcloud-CLI
-
Authentifizierungsanbieter erstellen:
gcloud agent-identity auth-providers create
AUTH_PROVIDER_NAME\ --project="PROJECT_ID" \ --location="LOCATION" \ --api-key="API_KEY" - Prüfen Sie, ob Ihr Authentifizierungsanbieter in der Liste aufgeführt ist und den Status
ENABLEDhat:gcloud agent-identity auth-providers list \ --project="
PROJECT_ID" \ --location="LOCATION" -
Gewähren 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 User (
roles/agentidentity.user) für die Authentifizierungsanbieterressource zu:-
Gewähren Sie Zugriff auf die SPIFFE-ID (KI-Agentenidentität) Ihres bereitgestellten KI-Agenten:
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" -
Gewähren Sie Zugriff auf Ihr persönliches Nutzerkonto für die lokale Entwicklung und das lokale 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 Ort, an dem Ihr Authentifizierungsanbieter und Ihr Agent bereitgestellt werden (z. B.us-west1).AUTH_PROVIDER_NAME: Der Name Ihres Authentifizierungsanbieters (z. B.maps-api-key-authprovider).API_KEY: Der API-Schlüssel, den Sie über den Drittanbieterdienst generiert haben.ORGANIZATION_ID: Ihre Google Cloud Organisations-ID.PROJECT_NUMBER: Ihre Google Cloud Projektnummer.ENGINE_ID: Die ID Ihres bereitgestellten Reasoning-Engine-Agents.USER_EMAIL: Die E-Mail-Adresse Ihres persönlichen Nutzerkontos.
Im Agent-Code authentifizieren
Sie können das ADK verwenden, um Ihren Agenten zu authentifizieren.
ADK
Verweisen Sie im Code Ihres KI-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 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" ) # 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], )
Beispiel: Verbindung zum Google Maps-MCP herstellen
Das folgende Beispiel zeigt eine agent.py-Konfiguration, mit der ein Agent mit einem Google Maps-MCP-Server verbunden wird:
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 os.environ["GOOGLE_CLOUD_PROJECT"] = "PROJECT_ID" os.environ["GOOGLE_GENAI_USE_VERTEXAI"] = "True" os.environ["GOOGLE_API_USE_CLIENT_CERTIFICATE"] = "false" # Register Google Cloud auth provider for Agent Identity Credentials service CredentialManager.register_auth_provider(GcpAuthProvider()) maps_auth_scheme = GcpAuthProviderScheme( name="projects/PROJECT_ID/locations/LOCATION/authProviders/AUTH_PROVIDER_NAME" ) maps_tools = McpToolset( connection_params=StreamableHTTPConnectionParams(url="https://mapstools.googleapis.com/mcp"), auth_scheme=maps_auth_scheme, errlog=None, ) root_agent = Agent( name="root_agent", model=Gemini(model="gemini-2.5-flash"), instruction=( "You are a helpful AI assistant designed to provide accurate and useful " "information. You can also use your Google Maps tools to look up " "locations and directions." ), tools=[maps_tools], ) app = App( root_agent=root_agent, name="AGENT_NAME", )
ADK
Verweisen Sie im Code Ihres KI-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="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)
Beispiel: Verbindung zur Google Maps Weather API herstellen
Das folgende Beispiel zeigt eine agent.py-Konfiguration, die einen Agenten über ein authentifiziertes Funktionstool mit der Google Maps Weather API verbindet:
import os import httpx from google.adk.agents import Agent 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.auth.credential_manager import CredentialManager from google.adk.integrations.agent_identity import GcpAuthProvider, GcpAuthProviderScheme from google.adk.models import Gemini from google.adk.tools.authenticated_function_tool import AuthenticatedFunctionTool os.environ["GOOGLE_CLOUD_PROJECT"] = "PROJECT_ID" os.environ["GOOGLE_GENAI_USE_VERTEXAI"] = "True" os.environ["GOOGLE_API_USE_CLIENT_CERTIFICATE"] = "false" # Register Google Cloud auth provider for Agent Identity Credentials service CredentialManager.register_auth_provider(GcpAuthProvider()) weather_auth_config = AuthConfig( auth_scheme=GcpAuthProviderScheme( name="projects/PROJECT_ID/locations/LOCATION/authProviders/AUTH_PROVIDER_NAME" ) ) async def get_weather(credential: AuthCredential, latitude: float, longitude: float) -> str | dict: """Gets current weather conditions for a location.""" api_key = None if http := credential.http: if http.additional_headers and "X-GOOG-API-KEY" in http.additional_headers: api_key = http.additional_headers["X-GOOG-API-KEY"] elif http.credentials and http.credentials.token: api_key = http.credentials.token if not api_key: return "Error: No API key available from the auth provider." params = {"location.latitude": latitude, "location.longitude": longitude, "key": api_key} async with httpx.AsyncClient() as client: response = await client.get( "https://weather.googleapis.com/v1/currentConditions:lookup", params=params, ) if response.status_code != 200: return f"Error from Weather API: {response.status_code} - {response.text}" return response.json() get_weather_tool = AuthenticatedFunctionTool( func=get_weather, auth_config=weather_auth_config ) root_agent = Agent( name="root_agent", model=Gemini(model="gemini-2.5-flash"), instruction=( "You are a helpful AI assistant. You will use your weather tool to " "look up current conditions." ), tools=[get_weather_tool], ) app = App( root_agent=root_agent, name="AGENT_NAME", )
ADK
Verweisen Sie im Code Ihres KI-Agenten mit dem MCP-Toolset der Agent Registry im ADK auf den Authentifizierungsanbieter.
Sie erstellen kein Authentifizierungsschema für diesen Ablauf. Im Outbound-Binding des MCP-Servers ist bereits der zu verwendende Authentifizierungsanbieter angegeben.
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_registry import AgentRegistry # First, register Google Cloud auth provider CredentialManager.register_auth_provider(GcpAuthProvider()) # Set Agent Registry. LOCATION must be the same region as the auth provider. registry = AgentRegistry(project_id="PROJECT_ID", location="LOCATION") # The auth provider is resolved from the MCP server's outbound binding. toolset = registry.get_mcp_toolset( mcp_server_name=( "projects/PROJECT_ID/locations/" "LOCATION/mcpServers/" "agentregistry-00000000-0000-0000-0000-000000000000" ), ) agent = Agent( name="AGENT_NAME", model="MODEL_NAME", instruction="AGENT_INSTRUCTIONS", tools=[toolset], )
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 Agent-Anwendung eine Konfigurationsdatei mit dem Namen
.agent_engine_config.json, um die Agent-Identität zu aktivieren:echo '{ "identity_type": "AGENT_IDENTITY" }' >
AGENT_NAME/.agent_engine_config.json -
So stellen Sie Ihren KI-Agenten in der Laufzeit für KI-Agenten 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 Agent-Anwendung, z. B.maps_agent.PROJECT_ID: Ihre Google Cloud-Projekt-ID.LOCATION: Die unterstützte Region, in der Sie den Agent bereitstellen möchten, z. B.us-west1.
Python SDK
Wenn Sie die Bereitstellung programmatisch mit dem Vertex AI Python SDK vornehmen, verwenden Sie das Flag identity_type=AGENT_IDENTITY:
import vertexai from vertexai import types from vertexai.agent_engines import AdkApp from google.adk.auth.credential_manager import CredentialManager from google.adk.integrations.agent_identity import GcpAuthProvider # 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") ) # Register the auth provider in set_up() so that it runs in the deployed # container. Use the proper wrapper class for your Agent Framework (for example, AdkApp). class AuthenticatedAdkApp(AdkApp): def set_up(self): CredentialManager.register_auth_provider(GcpAuthProvider()) super().set_up() app = AuthenticatedAdkApp(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 Agent bereitstellen möchten, z. B.us-west1.
Nächste Schritte
- Probleme bei der Authentifizierung der Agent-Identität beheben
- Agent-Identität – Übersicht
- Mit dreibeinigem OAuth und dem Auth-Manager authentifizieren
- Mit zweiseitigem OAuth und dem Auth-Manager authentifizieren
- Agent Identity-Authentifizierungsanbieter verwalten