• Nachrichten
  • Managed Agents
  • Admin
Search...
⌘K
Organisation
Admin APIWorkspaces
Authentifizierung
ÜbersichtWorkload Identity FederationWIF-Referenz
AWSGoogle CloudMicrosoft AzureGitHub ActionsKubernetesSPIFFEOkta
Monitoring
Usage and Cost APIRate Limits APIClaude Code Analytics API
Daten & Compliance
DatenresidenzAPI und Datenaufbewahrung
Compliance API
ÜbersichtZugriff erhaltenAktivitäts-FeedChats, Dateien und ProjekteOrganisationen, Benutzer, Rollen und GruppenIntegration entwerfenFehlerFAQ
Log in
Microsoft Azure
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...

Solutions

  • AI agents
  • Code modernization
  • Coding
  • Customer support
  • Education
  • Financial services
  • Government
  • Life sciences

Partners

  • Amazon Bedrock
  • Google Cloud's Vertex AI

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Company

  • Anthropic
  • Careers
  • Economic Futures
  • Research
  • News
  • Responsible Scaling Policy
  • Security and compliance
  • Transparency

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Help and security

  • Availability
  • Status
  • Support
  • Discord

Terms and policies

  • Privacy policy
  • Responsible disclosure policy
  • Terms of service: Commercial
  • Terms of service: Consumer
  • Usage policy
Admin/Identitätsanbieter

WIF mit Microsoft Azure verwenden

Föderiere Azure Managed Identities und Entra Workload Identity mit der Claude API, damit deine Azure-Workloads Claude ohne statische API-Keys aufrufen können.

Azure-Workloads authentifizieren sich bei der Claude API, indem sie ein von Microsoft Entra ID ausgestelltes „JSON Web Token" (JSON-Web-Token), oder JWT, vorlegen und es dann gegen ein kurzlebiges Anthropic-Zugriffstoken eintauschen. Es gibt zwei gängige Wege, das von Entra ausgestellte Token zu erhalten:

  • Managed Identity (VMs, App Service, Functions, Container Apps): Der Workload ruft den Azure Instance Metadata Service (IMDS) unter http://169.254.169.254/metadata/identity/oauth2/token auf und erhält ein JWT für seine zugewiesene Identität.
  • Entra Workload Identity (AKS-Pods): Kubernetes projiziert ein Service-Account-Token (signiert vom OIDC-Issuer des AKS-Clusters) in den Pod unter dem Pfad in AZURE_FEDERATED_TOKEN_FILE. Der Workload tauscht dieses Token bei Entra gegen ein von Entra ausgestelltes Zugriffstoken ein.

In beiden Fällen enthält das von Entra ausgestellte Token, das du Anthropic vorlegst, einen mandantenspezifischen Entra-Issuer (der Schritt Anthropic konfigurieren unten zeigt die genaue URL, die du registrieren musst) und die Objekt-ID der Managed Identity in den Claims sub und oid. Du registrierst diesen Issuer einmalig bei Anthropic, schreibst eine Föderationsregel, die mit den erwarteten Claims übereinstimmt, und dein Workload tauscht sein Entra-Token zur Laufzeit gegen ein sk-ant-oat01-...-Zugriffstoken ein.

AKS-Pods können alternativ den Entra-Austausch überspringen und das von Kubernetes projizierte Service-Account-Token direkt an Anthropic übergeben. Bei diesem Weg wird der OIDC-Issuer deines AKS-Clusters anstelle deines Entra-Mandanten bei Anthropic registriert. Siehe Kubernetes für diesen Ablauf.

Voraussetzungen

  • Vertrautheit mit WIF-Konzepten: Service-Accounts, Föderations-Issuer und Föderationsregeln.
  • Ein Azure-Abonnement mit der Berechtigung, Managed Identities zuzuweisen (oder Entra Workload Identity auf AKS zu konfigurieren).
  • Deine Microsoft Entra-Mandanten-ID. Du findest sie im Azure-Portal unter Microsoft Entra ID → Übersicht → Mandanten-ID.
  • Berechtigung zum Erstellen von Service-Accounts, Föderations-Issuern und Föderationsregeln in der Claude Console für deine Anthropic-Organisation.

Azure konfigurieren

Richte die Identität ein, für die Azure Tokens ausstellen wird. Wähle den Weg, der zu dem Ort passt, an dem dein Workload läuft.

Token-Claims

Ein von Entra ausgestelltes Token für eine Managed Identity enthält diese Claims:

{
  "iss": "https://login.microsoftonline.com/<TENANT_ID>/v2.0",
  "sub": "9f8e7d6c-1a2b-3c4d-5e6f-...",
  "aud": "https://api.anthropic.com",
  "oid": "9f8e7d6c-1a2b-3c4d-5e6f-...",
  "tid": "<TENANT_ID>",
  "azp": "<CLIENT_ID>",
  "exp": 1775527120
}

sub und oid sind identisch (die Objekt-ID der Managed Identity). azp ist die Anwendungs- oder Client-ID. Gleiche auf oid ab, um eine bestimmte Identität zu autorisieren, oder auf azp, um jede Identität zu autorisieren, die mit einer Anwendungsregistrierung verknüpft ist. Der tid-Claim wiederholt deine Mandanten-ID; darauf abzugleichen ist eine zusätzliche Absicherung (Defense in Depth), da die Issuer-URL den Mandanten bereits festlegt.

Anthropic konfigurieren

Folge der Einrichtungsanleitung, um einen Föderations-Issuer zu registrieren, einen Anthropic-Service-Account zu erstellen und eine Föderationsregel in der Claude Console anzulegen. Wähle in der Console die Provider-Option OIDC und gib die folgenden Entra-spezifischen Werte an.

Föderations-Issuer: Entra veröffentlicht ein OIDC-Discovery-Dokument unter der mandantenspezifischen Issuer-URL, verwende also den Discovery-Modus. Jeder Azure-Mandant, den du föderierst, benötigt einen eigenen Issuer-Eintrag.

{
  "name": "azure-prod-tenant",
  "issuer_url": "https://login.microsoftonline.com/<TENANT_ID>/v2.0",
  "jwks_source": "discovery"
}

Je nach Token-Version kann der iss-Claim stattdessen https://sts.windows.net/<TENANT_ID>/ lauten. Dekodiere dein Managed-Identity-Token (der Abschnitt „Verifizieren" unten zeigt wie) und registriere den iss-Wert, den es enthält. Die beiden URLs teilen sich dasselbe JWKS, sodass der Discovery-Modus für beide funktioniert.

Föderationsregel: Gleiche auf die Objekt-ID der Managed Identity und deine Mandanten-ID ab.

{
  "name": "azure-inference-worker",
  "issuer_id": "fdis_...",
  "match": {
    "audience": "https://api.anthropic.com",
    "claims": {
      "oid": "9f8e7d6c-1a2b-3c4d-5e6f-...",
      "tid": "<TENANT_ID>"
    }
  },
  "target": {
    "type": "service_account",
    "service_account_id": "svac_..."
  },
  "workspace_id": "wrkspc_...",
  "oauth_scope": "workspace:developer",
  "token_lifetime_seconds": 600
}

Token abrufen und verwenden

Zur Laufzeit ruft dein Workload sein Entra-Token ab, tauscht es bei POST /v1/oauth/token ein und verwendet das zurückgegebene Bearer-Token, um Claude aufzurufen. Jedes Anthropic-SDK übernimmt den Austausch und die Refresh-Schleife, wenn du ein Token-Provider-Callable bereitstellst, wie in den folgenden Beispielen gezeigt. Der cURL-Tab zeigt den rohen Ablauf.

import os

import anthropic
import requests
from anthropic import WorkloadIdentityCredentials

IMDS_URL = "http://169.254.169.254/metadata/identity/oauth2/token"


def fetch_entra_token() -> str:
    """Fetch a managed identity token from Azure IMDS."""
    response = requests.get(
        IMDS_URL,
        headers={"Metadata": "true"},
        params={"api-version": "2018-02-01", "resource": "https://api.anthropic.com"},
        timeout=5,
    )
    response.raise_for_status()
    return response.json()["access_token"]


client = anthropic.Anthropic(
    credentials=WorkloadIdentityCredentials(
        identity_token_provider=fetch_entra_token,
        federation_rule_id=os.environ["ANTHROPIC_FEDERATION_RULE_ID"],
        organization_id=os.environ["ANTHROPIC_ORGANIZATION_ID"],
        service_account_id=os.environ["ANTHROPIC_SERVICE_ACCOUNT_ID"],
        workspace_id=os.environ.get("ANTHROPIC_WORKSPACE_ID"),
    ),
)

message = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello from Azure"}],
)
print(message.content[0].text)

Auf AKS mit Entra Workload Identity

Auf AKS ist die Datei unter AZURE_FEDERATED_TOKEN_FILE ein von Kubernetes projiziertes Service-Account-Token, das vom OIDC-Issuer deines Clusters signiert wurde, kein von Entra ausgestelltes Token. Um auf dem auf dieser Seite beschriebenen Entra-vermittelten Weg zu bleiben, tausche dieses Token zuerst bei https://login.microsoftonline.com/<TENANT_ID>/oauth2/v2.0/token (föderierter client_credentials-Grant) ein und übergib dann das resultierende Entra-Zugriffstoken als Identitätstoken an das Anthropic-SDK.

import os
from pathlib import Path
import httpx
import anthropic
from anthropic import WorkloadIdentityCredentials


def fetch_entra_token_via_federation() -> str:
    federated_token = Path(os.environ["AZURE_FEDERATED_TOKEN_FILE"]).read_text()
    response = httpx.post(
        f"https://login.microsoftonline.com/{os.environ['AZURE_TENANT_ID']}/oauth2/v2.0/token",
        data={
            "client_id": os.environ["AZURE_CLIENT_ID"],
            "grant_type": "client_credentials",
            "scope": "https://api.anthropic.com/.default",
            "client_assertion_type": "urn:ietf:params:oauth:client-assertion-type:jwt-bearer",
            "client_assertion": federated_token,
        },
    )
    response.raise_for_status()
    return response.json()["access_token"]


client = anthropic.Anthropic(
    credentials=WorkloadIdentityCredentials(
        identity_token_provider=fetch_entra_token_via_federation,
        federation_rule_id=os.environ["ANTHROPIC_FEDERATION_RULE_ID"],
        organization_id=os.environ["ANTHROPIC_ORGANIZATION_ID"],
        service_account_id=os.environ["ANTHROPIC_SERVICE_ACCOUNT_ID"],
        workspace_id=os.environ.get("ANTHROPIC_WORKSPACE_ID"),
    ),
)

message = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello from Azure"}],
)
print(message.content[0].text)

Alternativ kannst du den OIDC-Issuer deines AKS-Clusters direkt bei Anthropic registrieren und den Entra-Zwischenschritt überspringen. Siehe Kubernetes für dieses Muster.

Einrichtung verifizieren

Führe von deiner Azure-Ressource aus den zuvor gezeigten cURL-Austausch aus und bestätige, dass POST /v1/oauth/token ein 200 mit einem access_token zurückgibt, das mit sk-ant-oat01- beginnt, sowie einen expires_in-Wert in Sekunden. Bei 400 invalid_grant siehe Fehlgeschlagenen Austausch beheben; die häufigste Azure-seitige Ursache ist eine Abweichung zwischen der von dir registrierten issuer_url und dem iss-Claim in deinem dekodierten Token. Sie müssen exakt übereinstimmen. Für Managed-Identity-Tokens ist der iss-Wert entweder https://login.microsoftonline.com/<TENANT_ID>/v2.0 oder https://sts.windows.net/<TENANT_ID>/.

Regel eingrenzen

Der oid-Claim ist die GUID einer Managed Identity und hat kein stabiles Präfix. Ein subject_prefix mit * passt auf beliebige Identitäten im Mandanten, sodass jeder Workload, der eine Managed Identity besitzt, ein föderiertes Anthropic-Token erhalten könnte.

Beschränke den match-Block der Regel auf den engsten Geltungsbereich, der zu deinem Anwendungsfall passt:

  • oid als exakten Wert abgleichen: Setze claims.oid auf die vollständige Objekt-ID der Managed Identity und verwende niemals subject_prefix für Azure-Tokens.
  • tid als zusätzliche Absicherung festlegen: Die Issuer-URL legt deinen Mandanten bereits fest, aber das Hinzufügen von claims.tid schützt vor Konfigurationsabweichungen, falls der Issuer-Eintrag später bearbeitet wird.
  • Audience festlegen: Setze audience auf https://api.anthropic.com, damit Tokens, die für andere Ressourcen ausgestellt wurden, abgelehnt werden.
  • Eine separate Regel pro Managed Identity verwenden: Erstelle eine Regel pro Identität statt einer Regel, die mehrere autorisiert, damit du den Zugriff eines einzelnen Workloads widerrufen kannst, ohne andere zu beeinträchtigen.

Nächste Schritte

  • Sieh dir das vollständige Konfigurationsmodell in Workload Identity Federation an.
  • Siehe die Provider-Leitfäden für AWS, Google Cloud, GitHub Actions und Kubernetes.
  • Für Umgebungsvariablen, Profildateien und die Rangfolge der Anmeldeinformationen siehe die WIF-Referenz.

Was this page helpful?

  • Voraussetzungen
  • Azure konfigurieren
  • Token-Claims
  • Anthropic konfigurieren
  • Token abrufen und verwenden
  • Auf AKS mit Entra Workload Identity
  • Einrichtung verifizieren
  • Regel eingrenzen
  • Nächste Schritte