Mit der Agent Identity-Funktion können Ihre Agenten Google Cloud ihre eigene Identität verwenden, um sich bei externen Diensten und bei Arbeitslasten zu authentifizieren, die in Cloud Run oder Google Kubernetes Engine (GKE) gehostet werden. Mit OpenID Connect (OIDC)-ID-Tokens können Sie Agenten mit Cloud-Plattformen von Drittanbietern wie Amazon Web Services (AWS) und Microsoft Azure, benutzerdefinierten APIs, API-Gateways und lokalen Back-Ends verbinden.
Wenn ein Agent in eigener Verantwortung handelt, gibt Agent Identity ein OIDC-ID-Token aus. Dabei handelt es sich um ein JSON Web Token (JWT), das die SPIFFE-Identität des Agenten bestätigt und mit den Ausstellerschlüsseln für die Trust-Domain des Agenten (verwalteter Workload Identity-Pool) signiert ist. Externe Systeme können diese ID-Tokens ohne Google Cloud Anmeldedaten oder SDKs über öffentliche Endpunkte prüfen, die vom Google Cloud Security Token Service gehostet werden:
- Ein OpenID Connect Discovery 1.0-Endpunkt (
/.well-known/openid-configuration), der die OpenID-Anbieter-Metadaten und den öffentlichen Schlüsselendpunkt (jwks_uri) veröffentlicht. - Ein JSON Web Key Set (JWKS)-Endpunkt (
/openid/jwks), der die aktiven öffentlichen Schlüssel bereitstellt, die zum Überprüfen von Signaturen auf Agent-ID-Tokens verwendet werden.
Informationen zum Authentifizieren Ihres Agenten bei Google Cloud APIs und Ressourcen mit seiner eigenen Identität finden Sie unter Mit der eigenen Identität eines Agenten authentifizieren Google Cloud . Informationen zum Zugriff auf Dienste im Namen eines Endnutzers finden Sie unter Mit dreibeinigem OAuth und dem Autorisierungsmanager authentifizieren.
Hinweis
- Prüfen Sie, ob Sie die richtige Authentifizierungsmethode ausgewählt haben. Informationen zur Funktionsweise von SPIFFE-Identitäten, Trust-Domains, und Agent-Anmeldedaten finden Sie in der Übersicht zu Agent Identity.
- Erstellen und stellen Sie einen Agenten bereit, bei dem Agent Identity aktiviert ist.
Prüfen Sie, ob Ihr externer Dienst oder Identitätsanbieter die folgenden Anforderungen erfüllt:
- Er unterstützt die Validierung von JSON Web Tokens (JWTs) mit OpenID Connect Discovery 1.0 und JSON Web Key Sets (JWKS).
- Wenn er die Zertifikatsbindung über gegenseitige TLS (mTLS) erzwingt, unterstützt er
die Clientzertifikatsauthentifizierung unter
TLS 1.3 (RFC 9846) und
validiert die
cnf(x5t#S256)-Anforderung gemäß RFC 8705, Abschnitt 6.1. - Er kann ausgehende HTTPS-Anfragen an
https://sts.googleapis.comsenden, um die OpenID-Anbieter-Metadaten und öffentlichen Signaturschlüssel abzurufen.
Ermitteln Sie die folgenden Konfigurationswerte für Ihren Agenten und den externen Zieldienst:
- Aussteller-URL (
issAnforderung): Die Aussteller-URL des Workload Identity-Pools für Ihre Organisation (https://sts.googleapis.com/v1/organizations/ORGANIZATION_ID/locations/global/workloadIdentityPools/TRUST_DOMAIN) oder Ihr Projekt (https://sts.googleapis.com/v1/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/TRUST_DOMAIN). - Zulässige Zielgruppe (
aud-Anforderung): Der Zielgruppen-URI, den der externe Dienst oder Identitätsanbieter bei der Validierung von ID-Tokens erwartet.
- Aussteller-URL (
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 Bereitstellen eines Agenten mit Agent Identity benötigen:
-
Agent in der Agent Runtime auf der Gemini Enterprise Agent Platform bereitstellen:
Vertex AI-Nutzer (
roles/aiplatform.user) -
Agent-Dienst in Cloud Run bereitstellen:
Cloud Run Admin (
roles/run.admin)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Diese vordefinierten Rollen enthalten die Berechtigungen, die zum Bereitstellen eines Agenten mit Agent Identity erforderlich sind. Maximieren Sie den Abschnitt Erforderliche Berechtigungen , um die notwendigen Berechtigungen anzuzeigen, die erforderlich sind:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind erforderlich, um einen Agenten mit Agent Identity bereitzustellen:
-
Agent in der Agent Runtime auf der Gemini Enterprise Agent Platform bereitstellen:
-
aiplatform.reasoningEngines.create -
aiplatform.reasoningEngines.update
-
-
Agent-Dienst in Cloud Run bereitstellen:
-
run.services.create -
run.services.update
-
Sie können diese Berechtigungen gegebenenfalls auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
OIDC-ID-Token für einen Agenten abrufen
Führen Sie die folgenden Schritte aus, um Ihren Agenten so zu konfigurieren, dass er ein OIDC-ID-Token abruft und an einen externen Dienst sendet:
Agenten mit Agent Identity konfigurieren
Aktivieren Sie Agent Identity, wenn Sie Ihren Agenten bereitstellen:
Wenn Sie Ihren Agenten in der Agent Runtime auf der Gemini Enterprise Agent Platform bereitstellen, legen Sie
identity_typeaufAGENT_IDENTITYfest:remote_app = client.agent_engines.create( agent=app, config={ "identity_type": types.IdentityType.AGENT_IDENTITY, "requirements": ["google-cloud-aiplatform[agent_engines,adk]"], }, )Wenn Sie einen Container-Agent-Dienst in Cloud Run bereitstellen, übergeben Sie das Flag
--identity-type=agent-identity:gcloud run deploy SERVICE_NAME \ --image=IMAGE_URL \ --identity-type=agent-identity \ --no-allow-unauthenticated
Ersetzen Sie Folgendes:
SERVICE_NAME: Der Name Ihres Cloud Run-Dienstes.IMAGE_URL: Die Container-Image-URL für Ihren Agenten.
OIDC-ID-Token im Anwendungscode anfordern
Verwenden Sie im Anwendungscode Ihres Agenten die Google Auth-Clientbibliothek, um ein OIDC-ID-Token für Ihre externe Zielgruppe anzufordern. Die Clientbibliothek übernimmt die Tokengenerierung, das lokale Caching und die automatische Erneuerung vom Metadatenserver.
Standardmäßig binden unterstützte Google Auth-Clientbibliotheken OIDC-ID-Tokens kryptografisch an das eindeutige X.509-Zertifikat des Agenten, indem sie den Zertifikatsfingerabdruck in die cnf-Anforderung (x5t#S256) des Tokens einfügen. Empfangende Dienste können diese Anforderung optional mit dem Clientzertifikat vergleichen, das während eines gegenseitigen TLS-Handshakes (mTLS) präsentiert wird, oder die Anforderung ignorieren, wenn sie die Zertifikatsbindung nicht erzwingen.
Cloud Run erzwingt die Zertifikatsbindung automatisch, wenn die cnf-Anforderung in einem ID-Token vorhanden ist. Wenn Ihr Agent einen Cloud Run-Dienst mit einem gebundenen ID-Token aufruft, müssen Sie den mTLS-Endpunkt (*.mtls.run.app) über eine mTLS-Verbindung aufrufen. Wenn Sie stattdessen weiterhin eine Standard-URL *.run.app aufrufen möchten, deaktivieren Sie die Zertifikatsbindung pro Anfrage (z. B. durch Festlegen von bind_id_token=False in Python) oder für die gesamte Laufzeitumgebung mit GOOGLE_API_ENABLE_RUNTIME_BOUND_TOKEN=false. Unterstützte Bibliotheksversionen und Beispiele finden Sie unter Zertifikatsgebundene
Tokens deaktivieren.
Wenn Sie einen Endpunkt aufrufen, der die Zertifikatsbindung über mTLS erzwingt, konfigurieren Sie die Clientsitzung so, dass das X.509-Zertifikat des Agenten während des mTLS-Handshakes präsentiert wird (z. B. durch Aufrufen von authed_session.configure_mtls_channel() in Python).
In den folgenden Beispielen wird die google-auth-Bibliothek verwendet, um ein zertifikatsgebundenes OIDC-ID-Token anzufordern, optional den mTLS-Kanal zu konfigurieren und das Token als Bearer-Token in einer ausgehenden Anfrage anzuhängen:
Python
from google.auth.transport.requests import AuthorizedSession from google.oauth2 import id_token # 1. Specify the audience expected by the external receiver # (for example, AWS Bedrock AgentCore or your external service URL). target_audience = "https://EXTERNAL_SERVICE_AUDIENCE" # 2. Create ID token credentials and an AuthorizedSession, which handles # local token caching, automatic renewal before expiry, and the # Bearer header. credentials = id_token.fetch_id_token_credentials(audience=target_audience) authed_session = AuthorizedSession(credentials) # 3. Send the authenticated request to the external service. response = authed_session.post( "https://EXTERNAL_SERVICE_ENDPOINT", json={"prompt": "Hello from Agent"}, )
Ersetzen Sie Folgendes:
EXTERNAL_SERVICE_AUDIENCE: Der Zielgruppen-URI, der von Ihrem empfangenden Dienst erwartet wird (z. B.bedrock.us-east-1.amazonaws.comoderapi.example.com).EXTERNAL_SERVICE_ENDPOINT: Die URL des externen API- oder Back-End-Endpunkts, den Ihr Agent aufruft.
Python (mTLS)
from google.auth.transport.requests import AuthorizedSession from google.oauth2 import id_token # 1. Specify the audience expected by the receiving service # (for example, a regional Cloud Run mTLS URL or an on-premises mTLS endpoint). target_audience = "https://EXTERNAL_SERVICE_AUDIENCE" # 2. Create certificate-bound ID token credentials and configure the mTLS # channel to present the agent's X.509 certificate. credentials = id_token.fetch_id_token_credentials(audience=target_audience) authed_session = AuthorizedSession(credentials) authed_session.configure_mtls_channel() # 3. Send the authenticated request over mTLS. response = authed_session.post( "https://EXTERNAL_SERVICE_ENDPOINT", json={"prompt": "Hello from Agent"}, )
Ersetzen Sie Folgendes:
EXTERNAL_SERVICE_AUDIENCE: Der Zielgruppen-URI, der von Ihrem empfangenden Dienst erwartet wird (z. B. eine regionale Cloud Run-mTLS-URL oderapi.example.com).EXTERNAL_SERVICE_ENDPOINT: Die URL des mTLS-API- oder Back-End-Endpunkts, den Ihr Agent aufruft.
Anleitungen und Beispiele für Clientbibliotheken in anderen Sprachen wie Go,
Node.js und Java finden Sie unter
ID-Token abrufen. Clientbibliotheken für diese Sprachen unterstützen --identity-type=agent-identity. Bibliotheken, die zertifikatsgebundene ID-Tokens unterstützen, binden Tokens standardmäßig und ermöglichen es Ihnen, die Bindung für einzelne Anfragen zu deaktivieren.
Agent Identity-ID-Tokens prüfen
Wenn ein externer Dienst ein OIDC-ID-Token von Ihrem Agenten erhält, prüfen Sie das Token mit einer der folgenden Methoden, je nach Zieldienst:
- Verwaltete Cloud-Plattformen (z. B. Cloud Run, AWS oder Microsoft Azure): Verwenden Sie die integrierte Workload Identity-Föderation, um eingehende Tokens zu prüfen, ohne benutzerdefinierten Prüfcode schreiben zu müssen.
- Benutzerdefinierte Back-End-Dienste, API-Gateways und lokale Arbeitslasten: Prüfen Sie Tokens programmatisch mit den öffentlichen OpenID Connect Discovery- und JWKS-Endpunkten.
Integrierte Workload Identity-Föderation verwenden
Wenn Ihr empfangender Dienst auf einer Cloud-Plattform ausgeführt wird, die die integrierte IAM-Authentifizierung oder die OIDC-Workload Identity-Föderation unterstützt, müssen Sie keinen benutzerdefinierten Code zur Tokenprüfung schreiben:
Cloud Run: Wenn Ihr empfangender Dienst in Cloud Run mit authentifiziertem Ingress (
--no-allow-unauthenticated) ausgeführt wird, prüft Cloud Run eingehende Agent Identity-Tokens auf der Ingress-Ebene. Wenn das Token diecnfAnforderung enthält, konfigurieren Sie den aufrufenden Agenten so, dass er die regionale mTLS-URL des empfangenden Dienstes (https://SERVICE_NAME-PROJECT_NUMBER.REGION.mtls.run.app) verwendet, damit Cloud Run das Clientzertifikat während des mTLS-Handshakes prüfen kann. Weisen Sie dem aufrufenden Agenten für den empfangenden Dienst die Rolle „Cloud Run Invoker“ (roles/run.invoker) zu. Weitere Informationen finden Sie unter Bei MCP-Servern in Cloud Run authentifizieren.Wenn Ihr Dienst nicht authentifizierten Ingress zulässt und Tokens in Anwendungscode prüft, lesen Sie den Abschnitt Tokens programmatisch prüfen.
Amazon Bedrock: Konfigurieren Sie die eingehende JWT-Authentifizierung, indem Sie die Google Cloud Security Token Service-Discovery-URL oder die Aussteller-URL und die erwartete Zielgruppe angeben. Eine Anleitung finden Sie in der AWS-Dokumentation unter Configure inbound JWT authorizer.
Microsoft Entra ID: Konfigurieren Sie Anmeldedaten für die föderierte Identität mit dem Other issuer-Szenario. Geben Sie die Google Cloud Security Token Service Aussteller-URL, die erwartete Zielgruppe und die Subjekt-ID (
subAnforderung) an. Eine Anleitung finden Sie in der Microsoft Learn-Dokumentation unter Create a trust relationship between an app and an external identity provider.
Tokens programmatisch prüfen
Wenn Ihr Agent Anfragen an eine benutzerdefinierte API, einen Microservice, ein API-Gateway oder eine lokale Arbeitslast sendet, muss der empfangende Dienst das eingehende OIDC-ID-Token prüfen, bevor er Zugriff gewährt. Ihr Agent übergibt dieses Token in der Regel im
Authorization: Bearer TOKEN HTTP-Header.
Führen Sie die folgenden Schritte aus, um eingehende ID-Tokens programmatisch zu prüfen:
- Aussteller-URL des Tokens extrahieren und prüfen
- Öffentliche Signaturschlüssel ermitteln und im Cache speichern
- Tokensignatur und -anforderungen prüfen
- Optional: Zertifikatsbindung prüfen (
cnf-Anforderung) - SPIFFE-Identität des Agenten autorisieren
Aussteller-URL des Tokens extrahieren und prüfen
Wenn eine eingehende Anfrage eingeht, lesen Sie die nicht geprüfte JWT-Nutzlast, um die iss-Anforderung (Aussteller) zu extrahieren. Diese Anforderung enthält die URL des Workload Identity-Pools
für die Trust-Domaindes Agenten. Diese URL dient als Basis-URL für das Discovery-Dokument und die öffentlichen Signaturschlüssel.
Prüfen Sie vor dem Senden ausgehender Netzwerkanfragen, ob die iss Anforderung mit
der erwarteten Google Cloud Security Token Service-Workload Identity-Pool-URL für Ihre
Organisation oder Ihr Projekt übereinstimmt:
Trust-Domains auf Organisationsebene:
https://sts.googleapis.com/v1/organizations/ORGANIZATION_ID/locations/global/workloadIdentityPools/TRUST_DOMAIN
Beispiel: Für eine Organisation mit der ID
123456789012,TRUST_DOMAINistagents.global.org-123456789012.system.id.goog.Trust-Domains auf Projektebene (für Projekte ohne Organisation):
https://sts.googleapis.com/v1/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/TRUST_DOMAIN
Beispiel: Für ein Projekt mit der Nummer
9876543210,TRUST_DOMAINistagents.global.proj-9876543210.system.id.goog.
Öffentliche Signaturschlüssel ermitteln und im Cache speichern
Nachdem Sie die Aussteller-URL geprüft haben, rufen Sie die öffentlichen Signaturschlüssel vom Google Cloud Security Token Service ab und speichern Sie sie im Cache:
-
OpenID Connect Discovery-Endpunkt abfragen: Hängen Sie
/.well-known/openid-configurationan die Basis-Aussteller-URL an und senden Sie eine nicht authentifizierte HTTPGETAnfrage:Ersetzen Sie folgende Werte in den Anfragedaten:
ORGANIZATION_ID: Ihre Google Cloud Organisations-ID. Ersetzen Sie für ein Projekt ohne Organisationorganizations/ORGANIZATION_IDdurchprojects/PROJECT_NUMBER.TRUST_DOMAIN: Die Workload Identity-Pool-ID für die Trust-Domain Ihres Agenten (z. B.agents.global.org-123456789012.system.id.goog).
HTTP-Methode und URL:
GET https://sts.googleapis.com/v1/organizations/ORGANIZATION_ID/locations/global/workloadIdentityPools/TRUST_DOMAIN/.well-known/openid-configuration
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Bei einer erfolgreichen Anfrage wird der Status
HTTP 200 OKund ein JSON Objekt mit den OpenID-Anbieter-Metadaten, einschließlich des Feldsjwks_urizurückgegeben:{ "issuer": "https://sts.googleapis.com/v1/organizations/123456789012/locations/global/workloadIdentityPools/agents.global.org-123456789012.system.id.goog", "jwks_uri": "https://sts.googleapis.com/v1/organizations/123456789012/locations/global/workloadIdentityPools/agents.global.org-123456789012.system.id.goog/openid/jwks", "authorization_endpoint": "https://sts.googleapis.com/v1/organizations/123456789012/locations/global/workloadIdentityPools/agents.global.org-123456789012.system.id.goog/authorize", "token_endpoint": "https://sts.googleapis.com/v1/organizations/123456789012/locations/global/workloadIdentityPools/agents.global.org-123456789012.system.id.goog/token", "response_types_supported": [ "id_token" ], "subject_types_supported": [ "public" ], "id_token_signing_alg_values_supported": [ "RS256" ] } -
JSON Web Key Set (JWKS)-Endpunkt abfragen: Senden Sie eine nicht authentifizierte HTTP
GETAnfrage an diejwks_uriURL, die in den OpenID-Anbieter-Metadaten zurückgegeben wurde:Ersetzen Sie folgende Werte in den Anfragedaten:
ORGANIZATION_ID: Ihre Google Cloud Organisations-ID. Ersetzen Sie für ein Projekt ohne Organisationorganizations/ORGANIZATION_IDdurchprojects/PROJECT_NUMBER.TRUST_DOMAIN: Die Workload Identity-Pool-ID für die Trust-Domain Ihres Agenten (z. B.agents.global.org-123456789012.system.id.goog).
HTTP-Methode und URL:
GET https://sts.googleapis.com/v1/organizations/ORGANIZATION_ID/locations/global/workloadIdentityPools/TRUST_DOMAIN/openid/jwks
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Bei einer erfolgreichen Anfrage wird der
HTTP 200 OKStatus und ein JSON Objekt mit einem Array öffentlicher Schlüssel zurückgegeben, die gemäß RFC 7517 formatiert sind:{ "keys": [ { "kty": "RSA", "use": "sig", "alg": "RS256", "kid": "4d1933f8e6c4e0b512c140989f6655c68997...", "n": "uQn4zN_1mQ0VpGv82-Wp3w...", "e": "AQAB" } ] } -
Discovery-Dokument und Schlüssel im Cache speichern: Die Antworten von sowohl dem OpenID Connect Discovery-Endpunkt als auch dem JWKS-Endpunkt enthalten den folgenden HTTP-Cache-Header:
Cache-Control: public, max-age=86400, must-revalidate
Speichern Sie das Discovery-Dokument und das JWKS bis zu 24 Stunden (
86400Sekunden) im Cache, um die Prüfleistung zu verbessern und Ratenbegrenzungen zu vermeiden.Google Cloud rotiert regelmäßig die privaten und öffentlichen Signaturschlüssel für Workload Identity-Pools. Wenn Ihr Prüfer ein eingehendes Token mit einer
kid(Schlüssel-ID) erhält, die nicht im lokalen Schlüsselcache enthalten ist, rufen Sie ein neues JWKS vom Endpunkt/openid/jwksab, bevor Sie das Token ablehnen.Wenn beim Abfragen der Discovery- oder JWKS Endpunkte HTTP-Fehler auftreten, lesen Sie den Hilfeartikel Probleme mit der Agent Identity-Authentifizierung beheben.
Tokensignatur und -anforderungen prüfen
Verwenden Sie eine Standardbibliothek zur OIDC- oder JWT-Prüfung (z. B. Google Tink), um die Tokensignatur kryptografisch zu prüfen und die JWT-Anforderungen zu validieren. Gehen Sie dabei so vor:
- Signatur: Suchen Sie im im Cache gespeicherten JWKS nach dem öffentlichen Schlüssel, der mit der
kid(Schlüssel-ID) im JWT-Header übereinstimmt. Prüfen Sie die Signatur mit dem im Feldalgangegebenen Algorithmus (RS256). Untersuchen Sie zur Vorwärtskompatibilität die Felderalgundktyim JWKS dynamisch, anstatt Algorithmustypen fest zu codieren. - Aussteller (
iss): Prüfen Sie, ob dieissAnforderung mit der vertrauenswürdigen Google Cloud Aussteller-URL des Workload Identity-Pools für Ihre Trust-Domain übereinstimmt. - Zielgruppe (
aud): Prüfen Sie, ob dieaud-Anforderung mit der konfigurierten Zielgruppen-ID Ihres Dienstes übereinstimmt. - Ausstellungszeit (
iat) und Ablaufzeit (exp): Prüfen Sie, ob dieiat-Anforderung in der Vergangenheit liegt und die aktuelle Zeit vor derexp-Anforderung liegt (mit einer geringen Toleranz für die Uhrzeitabweichung, z. B. 1 bis 2 Minuten).
Im folgenden Beispiel wird Google Tink (tink.jwt) verwendet, um ein Agent Identity-ID-Token mit einer JWKS-JSON-Nutzlast zu prüfen:
Python
import tink from tink import jwt # Initialize Tink JWT signature primitives (call once at application startup). jwt.register_jwt_signature() def verify_agent_identity_token( token: str, jwks_json: str, expected_issuer: str, expected_audience: str, ) -> jwt.VerifiedJwt: """Verifies an Agent Identity JWT against a JWKS JSON string using Tink. Args: token: The compact serialized JWT string. jwks_json: The JWKS JSON string fetched from the STS pool endpoint. expected_issuer: The expected token issuer ('iss' claim). expected_audience: The expected token audience ('aud' claim). Returns: jwt.VerifiedJwt: The verified JWT claims object. Raises: tink.TinkError: If the JWKS cannot be parsed, the key is not found, or token validation (signature, issuer, audience, expiration) fails. """ # 1. Convert the JWKS JSON into a Tink public KeysetHandle. keyset_handle = jwt.jwk_set_to_public_keyset_handle(jwks_json) # 2. Instantiate the Tink JwtPublicKeyVerify primitive. jwt_verifier = keyset_handle.primitive(jwt.JwtPublicKeyVerify) # 3. Configure expected validation rules (issuer, audience, expiration). # Google Cloud STS sets 'typ': 'JWT' in the header, so # expected_type_header="JWT" is required. validator = jwt.new_validator( expected_issuer=expected_issuer, expected_audience=expected_audience, expected_type_header="JWT", allow_missing_expiration=False, ) # 4. Cryptographically verify the signature and standard OIDC claims. return jwt_verifier.verify_and_decode(token, validator)
Optional: Zertifikatsbindung prüfen (cnf-Anforderung)
Wenn Ihr empfangender Dienst die Zertifikatsbindung über mTLS erzwingt, prüfen Sie die cnf-Anforderung (x5t#S256) mit dem Clientzertifikat, das während des mTLS-Handshakes präsentiert wird:
- Gegenseitige TLS (mTLS) beenden: Konfigurieren Sie Ihren Server oder Ingress-Proxy so, dass das X.509-Zertifikat des Agenten während des TLS-Handshakes gemäß TLS 1.3 (RFC 9846) angefordert und geprüft wird.
- Zertifikat-Fingerabdruck berechnen (
x5t#S256): Extrahieren Sie das untergeordnete X.509-Clientzertifikat aus der mTLS-Verbindung. Berechnen Sie den SHA-256-Hash über die DER-codierten Bytes und base64url-codieren Sie den Digest ohne=Padding. - `
cnf`-Anforderung (x5t#S256) prüfen: Prüfen Sie die geprüfte JWT-Nutzlast auf das `cnf`-Objekt ({"cnf": {"x5t#S256": "FINGERPRINT"}}) und prüfen Sie, ob der Wertx5t#S256gemäß RFC 8705, Abschnitt 6.1,mit dem Zertifikat-Fingerabdruck des Clientzertifikats übereinstimmt. Wenn der Aufrufer kein Clientzertifikat über mTLS präsentiert hat oder die Fingerabdrücke nicht übereinstimmen, lehnen Sie die Anfrage mit der AntwortHTTP 401 Unauthorizedab.
SPIFFE-Identität des Agenten autorisieren
Nachdem Sie die Signatur und die Standardanforderungen des Tokens geprüft haben, prüfen Sie die geprüfte sub-Anforderung (Subjekt), um die Anfrage zu autorisieren und den aufrufenden Agenten in Ihren Audit-Logs zu erfassen.
Die sub Anforderung enthält die eindeutige
SPIFFE-ID des Agenten, z. B.:
spiffe://agents.global.org-123456789012.system.id.goog/resources/aiplatform/projects/9876543210/locations/us-central1/reasoningEngines/my-test-agent
Vergleichen Sie in der Autorisierungslogik Ihres Dienstes die geprüfte sub-Anforderung mit einer Zulassungsliste vertrauenswürdiger SPIFFE-IDs von Agenten (oder Trust-Domain-Präfixen), bevor Sie Zugriff auf geschützte Ressourcen gewähren.
Nächste Schritte
- Probleme mit der Agent Identity-Authentifizierung beheben
- Mit der eigenen Identität eines Agenten authentifizieren Google Cloud
- Mit zweibeinigem OAuth und dem Autorisierungsmanager authentifizieren
- Mit dreibeinigem OAuth und dem Autorisierungsmanager authentifizieren
- Mit API-Schlüssel und dem Autorisierungsmanager authentifizieren
- Übersicht zu Agent Identity