• Сообщения
  • Управляемые агенты
  • Администрирование
Search...
⌘K
Организация
Admin APIРабочие пространства
Аутентификация
ОбзорФедерация удостоверений рабочих нагрузокСправочник по WIF
Мониторинг
API использования и затратAPI ограничений скоростиAPI аналитики Claude Code
Данные и соответствие требованиям
Резидентность данныхAPI и хранение данных
Compliance API
ОбзорПолучение доступаЛента активностиЧаты, файлы и проектыОрганизации, пользователи, роли и группыПроектирование интеграцииОшибкиЧасто задаваемые вопросы
Log in
Федерация удостоверений рабочих нагрузок
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
Администрирование/Аутентификация

Workload Identity Federation

Аутентифицируйте рабочие нагрузки в Claude API с помощью короткоживущих токенов идентификации от вашего собственного поставщика идентификации вместо долгоживущих статических ключей API.

«Workload Identity Federation» (федерация идентификации рабочих нагрузок), или WIF, позволяет вашим рабочим нагрузкам аутентифицироваться в Claude API с помощью короткоживущих токенов OpenID Connect (OIDC) вместо долгоживущих ключей API вида sk-ant-.... Токены поступают от поставщика идентификации (IdP), которым вы уже управляете: AWS IAM, Google Cloud или любого совместимого со стандартами эмитента OIDC, такого как GitHub Actions, Kubernetes, SPIFFE, Microsoft Entra ID или Okta.

Ваша рабочая нагрузка предъявляет подписанный JWT от вашего поставщика идентификации. Anthropic проверяет его на соответствие правилам доверия, которые вы настраиваете в Claude Console, и возвращает короткоживущий токен доступа Anthropic, привязанный к сервисному аккаунту в вашей организации. Нет статических секретов, которые нужно создавать, хранить в CI, ротировать или которые могут утечь.

Workload Identity Federation укрепляет вашу безопасность, заменяя статические ключи API токенами, срок действия которых истекает через минуты, а не никогда. Само по себе это не полноценное решение безопасности: федеративная аутентификация надёжна лишь настолько, насколько надёжен вышестоящий поставщик идентификации, подписывающий JWT. Для глубокоэшелонированной защиты сочетайте Workload Identity Federation с механизмами контроля, которые уже поддерживает ваш IdP (привязка идентификации рабочих нагрузок, условный доступ, журналирование аудита).

Концепции

Прежде чем какая-либо рабочая нагрузка сможет использовать федерацию, вы настраиваете три ресурса в Claude Console. Вместе они выражают правило: «токены, подписанные эмитентом X, с утверждениями, которые выглядят как Y, могут действовать от имени сервисного аккаунта Z».

Сервисные аккаунты

Сервисный аккаунт (svac_...) — это именованная нечеловеческая идентификация внутри вашей организации Anthropic. Это субъект, от имени которого действует федеративный токен. Сервисные аккаунты существуют на уровне организации и становятся активными в рабочем пространстве, когда вы добавляете их в качестве участников этого рабочего пространства. В момент обмена Anthropic проверяет, что рабочее пространство правила федерации соответствует одному из членств сервисного аккаунта в рабочих пространствах; выпущенный токен затем подчиняется ограничениям скорости и атрибуции использования этого рабочего пространства — так же, как и ключ API. В отличие от пользователя-человека, у сервисного аккаунта нет электронной почты, пароля и входа в Console.

Ключевое отличие от ключа API: ключ API является учётными данными, тогда как для сервисного аккаунта учётные данные выпускаются по требованию. Вы можете проводить аудит того, какие рабочие нагрузки действовали от имени какого сервисного аккаунта.

Эмитенты федерации

Эмитент федерации (fdis_...) регистрирует поставщика идентификации OIDC в вашей организации. Регистрация эмитента сообщает Anthropic: «JWT, подписанные этим поставщиком, могут утверждать идентификацию рабочих нагрузок для моей организации».

У эмитента есть два параметра конфигурации:

  • URL эмитента: точное значение утверждения iss, которое появляется в JWT поставщика, например https://token.actions.githubusercontent.com или https://oidc.eks.us-west-2.amazonaws.com/id/EXAMPLE.
  • Источник JWKS: способ, которым Anthropic получает открытые ключи для проверки подписей JWT. Используйте discovery (значение по умолчанию) для любого поставщика, который обслуживает /.well-known/openid-configuration по своему URL эмитента. Используйте explicit_url, чтобы указать непосредственно на конечную точку JWKS, или inline, чтобы загрузить набор ключей для эмитентов, недоступных из публичного интернета (например, приватный кластер Kubernetes).

URL эмитента и JWKS должны использовать https, порт 443 и публичное DNS-имя хоста, которое разрешается в публичные IP-адреса; IP-литералы не принимаются. Эти ограничения применяются только к URL, которые запрашивает Anthropic; в режимах explicit_url и inline значение issuer_url сравнивается как строка и может ссылаться на внутреннее имя хоста.

Обычно вы регистрируете по одному эмитенту на окружение: ваш продакшен-кластер EKS, ваш staging-кластер и GitHub Actions — это три отдельных эмитента.

Правила федерации

Правило федерации (fdrl_...) — это мост между эмитентом и сервисным аккаунтом: «когда JWT от эмитента X содержит утверждения, которые выглядят как Y, выпустить токен для сервисного аккаунта Z с областью действия S».

Правило определяет условия соответствия, цель, а также область авторизации и время жизни токена, которые применяются при срабатывании правила:

  • Match (соответствие): условия, которым должен удовлетворять входящий JWT. Вы можете сопоставлять по subject_prefix (например, system:serviceaccount:prod:worker или с завершающим * для сопоставления по префиксу), точному значению audience, карте точных значений утверждений, выражению condition на языке CEL для сложной логики или любой их комбинации. Должен быть задан хотя бы один из параметров subject_prefix, claims или condition, и все настроенные сопоставители должны пройти проверку, чтобы JWT был принят.
  • Target (цель): сервисный аккаунт, на который отображается соответствующий JWT.
  • Authorization (авторизация): область OAuth scope, предоставляемая выпущенному токену. По умолчанию это workspace:developer, что даёт тот же доступ, что и ключ API, выпущенный для этого рабочего пространства. Некоторые продукты фиксируют область действия при создании правила из своего потока; например, модальное окно создания туннеля в MCP tunnels создаёт правила с областью org:manage_tunnels. См. Области OAuth. Правило также задаёт token_lifetime_seconds (от 60 до 86400, по умолчанию 3600).

У одного эмитента может быть много правил: по одному на команду, пространство имён или уровень разрешений. Правила оцениваются по идентификатору: клиент указывает, какое правило использовать, в запросе обмена, и Anthropic проверяет, что JWT удовлетворяет критериям соответствия этого правила. Неявного поиска правил не происходит.

Как это работает

  1. Ваш IdP выдаёт JWT рабочей нагрузке. На большинстве платформ это происходит автоматически: проецируемый токен сервисного аккаунта Kubernetes, сервер метаданных Google Cloud, Azure IMDS или конечная точка OIDC GitHub Actions. Утверждение iss в JWT идентифицирует поставщика, а sub и другие утверждения идентифицируют конкретную рабочую нагрузку.
  2. SDK обменивает JWT на токен доступа Anthropic. SDK отправляет JWT на POST /v1/oauth/token, используя грант jwt-bearer из RFC 7523. Anthropic проверяет JWT по JWKS эмитента и условиям соответствия правила федерации, затем возвращает короткоживущий токен sk-ant-oat01-..., который действует от имени целевого сервисного аккаунта правила.
  3. SDK отправляет токен с каждым запросом и обновляет его до истечения срока действия. Код вашего приложения создаёт клиент без api_key и вызывает API как обычно. SDK повторно выполняет обмен до истечения срока действия токена.

Настройка федерации

Вам потребуется административный доступ к вашей организации Anthropic, поставщик идентификации с поддержкой OIDC и доступной конечной точкой JWKS (или документ JWKS, который вы можете вставить, для изолированных кластеров), а также рабочая нагрузка, способная получить токен идентификации от этого поставщика.

В Claude Console перейдите в Settings → Workload identity.

  1. 1

    Зарегистрируйте эмитент

    На вкладке Issuers выберите Create issuer.

    ПолеЗначение
    NameМетка для вашего удобства, например prod-eks или gha. Строчные буквы, цифры и дефисы.
    Issuer URLТочное значение утверждения iss, которое ваш IdP помещает в свои JWT. Если вы не уверены, декодируйте образец токена: jq -rR 'split(".")[1] | gsub("-";"+") | gsub("_";"/") | @base64d | fromjson | .iss' token
    JWKS sourcediscovery для большинства управляемых IdP. Выбирайте explicit_url или inline, только если discovery недоступен.
    Discovery base / JWKS URL / Inline keysЗависит от режима. Оставьте пустым для discovery, если IdP обслуживает .well-known по URL эмитента.
    CA cert PEMТолько если ваш IdP обслуживает TLS с использованием приватного центра сертификации. Большинство управляемых IdP используют публичные CA, поэтому оставьте это поле пустым.

    Console включает предустановки для AWS и Google Cloud, которые предварительно заполняют шаблон URL эмитента и разумное правило по умолчанию, а также универсальный вариант OIDC для любого другого совместимого со стандартами поставщика (такого как GitHub Actions, эмитенты сервисных аккаунтов Kubernetes, Microsoft Entra ID или Okta).

  2. 2

    Создайте сервисный аккаунт

    Перейдите в Settings → Service accounts → Create service account. Укажите имя (например, inference-worker или ci-deploy) и необязательное описание.

    Это идентификация, от имени которой действуют ваши выпущенные токены. Добавьте сервисный аккаунт в каждое рабочее пространство, в котором он должен действовать, на странице Members этого рабочего пространства. Правило федерации на следующем шаге нацелено на одно рабочее пространство, и выпущенный токен ограничен ограничениями скорости и атрибуцией использования этого рабочего пространства. Запишите идентификатор сервисного аккаунта (svac_...).

  3. 3

    Создайте правило федерации

    Вернитесь на страницу Workload identity, откройте вкладку Federation rules и выберите Create rule.

    РазделЗначение
    Basic infoИмя и необязательное описание. Выберите эмитент, зарегистрированный на шаге 1.
    MatchВыберите Static для сопоставления по префиксу субъекта, аудитории и точным утверждениям или CEL для выражения. Будьте настолько конкретны, насколько позволяют утверждения вашего IdP: правило, которое соответствует слишком широко, предоставляет больше доступа, чем вы намереваетесь.
    TargetВыберите сервисный аккаунт, созданный на шаге 2.
    AuthorizationОбласть OAuth (workspace:developer по умолчанию или специфичная для продукта область, такая как org:manage_tunnels; см. Области OAuth) и время жизни токена в секундах.

    Запишите идентификатор правила (fdrl_...). Ваша рабочая нагрузка передаёт этот идентификатор в каждом запросе обмена токенами.

Аутентификация из вашей рабочей нагрузки

После настройки федерации ваша рабочая нагрузка обменивает выданный IdP JWT на токен Anthropic во время выполнения. SDK обрабатывают цикл обмена и обновления за вас. Вкладка cURL показывает базовый HTTP-обмен для shell-скриптов, отладки или языков без поддержки SDK.

Создание клиента SDK

Вы можете создать клиент с явными учётными данными или без аргументов. Без аргументов SDK разрешает учётные данные из переменных окружения или активного профиля, как описано в разделе Приоритет учётных данных. Форма без аргументов — рекомендуемый шаблон для продакшен-нагрузок: поставляйте один и тот же образ контейнера везде и внедряйте ANTHROPIC_FEDERATION_RULE_ID, ANTHROPIC_ORGANIZATION_ID, ANTHROPIC_SERVICE_ACCOUNT_ID, ANTHROPIC_WORKSPACE_ID и ANTHROPIC_IDENTITY_TOKEN_FILE для каждого окружения.

from anthropic import Anthropic, WorkloadIdentityCredentials, IdentityTokenFile

client = Anthropic(
    credentials=WorkloadIdentityCredentials(
        identity_token_provider=IdentityTokenFile(
            "/var/run/secrets/anthropic.com/token"
        ),
        federation_rule_id="fdrl_...",
        organization_id="00000000-0000-0000-0000-000000000000",
        service_account_id="svac_...",
        workspace_id="wrkspc_...",
    ),
)

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

Ответ на обмен токенами соответствует RFC 6749 §5.1. См. Ответ на обмен токенами для справки по полям.

Приоритет учётных данных

Каждый SDK разрешает учётные данные в одном и том же пятиуровневом порядке: аргументы конструктора, затем ANTHROPIC_API_KEY / ANTHROPIC_AUTH_TOKEN, затем явный ANTHROPIC_PROFILE, затем переменные окружения федерации, затем неявный активный профиль. Побеждает первый источник, который предоставляет учётные данные.

ANTHROPIC_API_KEY находится выше уровней федерации, поэтому оставшийся в окружении ключ незаметно перекрывает федерацию. При миграции рабочей нагрузки с ключей API на Workload Identity Federation убедитесь, что ANTHROPIC_API_KEY не установлен везде, где выполняется эта рабочая нагрузка (переменные окружения контейнера, секреты CI, профили оболочки). Команда CLI ant auth status сообщает, какой источник победил.

Полную таблицу приоритетов, семантику каждого уровня и схему файла профиля см. в разделе Приоритет учётных данных в справочнике по WIF.

Миграция с ключей API

Чтобы переключить существующую рабочую нагрузку со статического ключа API на федерацию без простоя:

  1. Настройте федерацию параллельно. Выполните пошаговую настройку и убедитесь, что правило федерации соответствует токену вашей рабочей нагрузки. Пока оставьте существующий ANTHROPIC_API_KEY на месте.
  2. Проверьте, какие учётные данные побеждают. Запустите ant auth status изнутри рабочей нагрузки (или изучите отладочные логи SDK). Поскольку ANTHROPIC_API_KEY находится выше уровней федерации в цепочке приоритетов, на этом этапе всё ещё побеждает ключ API.
  3. Удалите ANTHROPIC_API_KEY везде, где он внедряется. Удалите его из секретов CI, окружения контейнера и профилей оболочки (см. предупреждение выше). Повторно запустите ant auth status и убедитесь, что теперь выбран источник федерации.
  4. Отзовите ключ API. Как только рабочая нагрузка работает на федеративном токене, удалите ключ в Claude Console в разделе Settings → API keys.

Время жизни токена и обновление

Время жизни выпущенного токена Anthropic — это меньшее из (а) значения token_lifetime_seconds правила (по умолчанию 3600 секунд) и (б) удвоенного оставшегося времени жизни предъявленного вами JWT от IdP. Результат никогда не бывает меньше 60 секунд. Второе ограничение не позволяет токену Anthropic пережить вышестоящую идентификацию, из которой он был получен, более чем на небольшой запас.

SDK кэшируют токен и обновляют его по двухуровневому расписанию, смоделированному по образцу botocore:

  • Рекомендательное обновление за 120 секунд до истечения срока действия. SDK пытается выполнить новый обмен. Если конечная точка токенов недоступна, SDK продолжает использовать кэшированный токен, который остаётся действительным ещё примерно 90 секунд.
  • Обязательное обновление за 30 секунд до истечения срока действия. Неудачный обмен на этом этапе вызывает ошибку. Кэшированный токен слишком близок к истечению срока действия, чтобы быть безопасным.

Поскольку SDK перечитывает ANTHROPIC_IDENTITY_TOKEN_FILE при каждом обмене, он прозрачно подхватывает ротированные проецируемые токены (например, токены сервисных аккаунтов Kubernetes ротируются задолго до их exp).

Поставщики идентификации

Каждое руководство описывает, откуда берётся JWT на данной платформе, как выглядят его утверждения, а также конфигурацию эмитента и правила для регистрации.

AWS

Токены веб-идентификации STS или проецируемые токены EKS IRSA.

Google Cloud

Токены идентификации, подписанные Google, с сервера метаданных.

Microsoft Azure

Managed Identity (IMDS) и Entra Workload ID на AKS.

GitHub Actions

Аутентификация CI без ключей с помощью OIDC-токена Actions.

Kubernetes

Самоуправляемые и локальные кластеры с использованием проецируемых токенов сервисных аккаунтов.

SPIFFE

Рабочие нагрузки с SPIFFE JWT-SVID от SPIRE или другого совместимого эмитента.

Okta

Сервисные приложения Okta с использованием потока client-credentials.

См. также

  • Справочник по WIF: переменные окружения, схема файла профиля, правила валидации и коды ошибок
  • Аутентификация: все варианты аутентификации в SDK Anthropic

Was this page helpful?

  • Концепции
  • Сервисные аккаунты
  • Эмитенты федерации
  • Правила федерации
  • Как это работает
  • Настройка федерации
  • Аутентификация из вашей рабочей нагрузки
  • Создание клиента SDK
  • Приоритет учётных данных
  • Миграция с ключей API
  • Время жизни токена и обновление
  • Поставщики идентификации
  • См. также