Claude Platform Docs
АдминистрированиеАутентификация

Справочник WIF

Переменные окружения, правила валидации, конфигурация профилей и справочник ошибок для Workload Identity Federation.

Эта страница собирает поверхности конфигурации, ограничения валидации и сопоставления ошибок для Workload Identity Federation. Пошаговые руководства по настройке см. в руководствах по провайдерам.

Запрос обмена токенами

POST /v1/oauth/token принимает тело JSON с использованием гранта jwt-bearer из RFC 7523. SDK формирует этот запрос за вас на основе переменных окружения; примеры cURL в каждом руководстве по провайдеру показывают необработанное тело запроса.

ПолеОбязательноеОписание
grant_typeДаВсегда urn:ietf:params:oauth:grant-type:jwt-bearer.
assertionДаOIDC JWT, выданный вашим провайдером идентификации.
federation_rule_idДаТегированный ID (fdrl_...) правила федерации, которое нужно проверить.
organization_idДаUUID вашей организации Anthropic.
service_account_idДаТегированный ID (svac_...) целевой сервисной учётной записи.
workspace_idУсловноТегированный ID (wrkspc_...) рабочего пространства, которым ограничивается выпущенный токен. Обязателен, если правило включено более чем для одного рабочего пространства. Если он опущен, сервер выбирает единственное включённое рабочее пространство правила. Литерал default также работает для рабочего пространства по умолчанию (Default Workspace) организации, но считается устаревшим; используйте ID wrkspc_... этого рабочего пространства.

Ответ обмена токенами

POST /v1/oauth/token возвращает стандартный ответ токена OAuth 2.0 (RFC 6749 §5.1):

ПолеТипОписание
access_tokenstringКороткоживущий токен Anthropic с префиксом sk-ant-oat01-.... Передавайте его как Authorization: Bearer <token>.
token_typestringВсегда Bearer.
expires_inintegerСекунды до истечения срока действия токена.
scopestringОбласть действия OAuth, предоставленная совпавшим правилом.

Переменные окружения

SDK читает эти переменные для выполнения федеративного обмена токенами без аргументов конструктора.

ПеременнаяОбязательнаяОписаниеПример
ANTHROPIC_FEDERATION_RULE_IDДаТегированный ID правила федерации, которое нужно проверить.fdrl_...
ANTHROPIC_ORGANIZATION_IDДаUUID вашей организации Anthropic. Его можно найти в Claude Console в разделе Settings > Organization.00000000-0000-0000-0000-000000000000
ANTHROPIC_IDENTITY_TOKEN_FILEОдна из _TOKEN_FILE или _TOKENПуть в файловой системе к JWT, выданному вашим провайдером идентификации (IdP). SDK перечитывает этот файл при каждом обмене, поэтому проецируемые токены, которые ротируются на диске, всегда актуальны./var/run/secrets/anthropic.com/token
ANTHROPIC_IDENTITY_TOKENОдна из _TOKEN_FILE или _TOKENСам JWT в виде строки. Используйте, когда ваша платформа внедряет токен как переменную окружения, а не как файл.eyJhbGciOiJSUzI1NiIs...
ANTHROPIC_SERVICE_ACCOUNT_IDДаТегированный ID целевой сервисной учётной записи Anthropic, от имени которой действует выданный токен доступа.svac_...
ANTHROPIC_WORKSPACE_IDУсловноТегированный ID рабочего пространства, которым ограничивается выпущенный токен. Обязателен, если правило федерации включено более чем для одного рабочего пространства; необязателен, если правило привязано к одному рабочему пространству. Выпущенный токен ограничивается этим рабочим пространством в момент обмена, поэтому для смены рабочего пространства требуется новый обмен. Литерал default также работает для рабочего пространства по умолчанию, но считается устаревшим; используйте его ID wrkspc_....wrkspc_...
ANTHROPIC_PROFILEНетИмя профиля конфигурации для загрузки. Имеет приоритет над переменными окружения федерации из этой таблицы.staging-profile

Прямой путь федерации через переменные окружения активируется только тогда, когда ANTHROPIC_FEDERATION_RULE_ID, ANTHROPIC_ORGANIZATION_ID, ANTHROPIC_SERVICE_ACCOUNT_ID и одна из ANTHROPIC_IDENTITY_TOKEN_FILE или ANTHROPIC_IDENTITY_TOKEN все установлены. ANTHROPIC_WORKSPACE_ID читается наряду с ними, но не управляет активацией.

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

SDK разрешает учётные данные в этом порядке. Побеждает первый источник, который даёт учётные данные.

ПорядокИсточникПримечания
1Аргумент конструктора (api_key=, auth_token=, credentials=)Всегда переопределяет всё остальное.
2ANTHROPIC_API_KEY или ANTHROPIC_AUTH_TOKENПолностью затеняет федерацию. Сбросьте их при миграции с ключей API.
3ANTHROPIC_PROFILEЗагружает <config_dir>/configs/<name>.json. Отсутствующий именованный профиль — это ошибка, а не переход дальше.
4Переменные окружения федерацииANTHROPIC_FEDERATION_RULE_ID + ANTHROPIC_ORGANIZATION_ID + ANTHROPIC_SERVICE_ACCOUNT_ID + ANTHROPIC_IDENTITY_TOKEN[_FILE].
5Активный профильРазрешается из <config_dir>/active_config, с откатом к профилю с именем default.

Когда профиль загружен, переменные окружения заполняют любые поля, которые профиль опускает, но никогда не переопределяют поля, которые профиль устанавливает явно. Например, ANTHROPIC_WORKSPACE_ID заполняет workspace_id только тогда, когда активный профиль его не устанавливает.

Файл конфигурации профиля

Профиль — это именованный файл конфигурации, который читают и SDK, и CLI ant. Профили позволяют вам поставлять параметры федерации вместе с образом контейнера или переключаться между окружениями без изменения кода.

Каталог конфигурации

SDK находит каталог конфигурации в этом порядке:

  1. $ANTHROPIC_CONFIG_DIR
  2. ~/.config/anthropic в Linux и macOS
  3. %APPDATA%\Anthropic в Windows

Активный профиль

Имя активного профиля разрешается в этом порядке:

  1. $ANTHROPIC_PROFILE
  2. Содержимое <config_dir>/active_config (однострочный файл, записываемый ant profile activate <name>)
  3. Литеральное имя default

Claude Code и Claude Agent SDK соблюдают этот же порядок разрешения, поэтому профиль федерации, настроенный здесь, также аутентифицирует эти инструменты без дополнительной настройки.

Структура файлов

ПутьСодержимоеЧувствительность
<config_dir>/configs/<profile>.jsonversion, блок authentication, organization_id, workspace_id и base_url.Несекретно. Безопасно коммитить или встраивать в образ.
<config_dir>/credentials/<profile>.jsonversion, кэшированный access_token, expires_at и (для интерактивного входа) refresh_token.Секретно. Записывается SDK с режимом 0600.

И файл конфигурации, и файл учётных данных несут строковое поле version верхнего уровня в формате major.minor (в настоящее время "1.0"). SDK записывает это поле автоматически, чтобы будущие выпуски могли обнаруживать и мигрировать более старые форматы; опустите его при создании конфигурации вручную, и SDK будет рассматривать файл как текущую версию.

Пример профиля федерации

configs/production.json
{
  "version": "1.0",
  "authentication": {
    "type": "oidc_federation",
    "federation_rule_id": "fdrl_...",
    "service_account_id": "svac_...",
    "identity_token": {
      "source": "file",
      "path": "/var/run/secrets/anthropic.com/token"
    }
  },
  "organization_id": "00000000-0000-0000-0000-000000000000",
  "workspace_id": "wrkspc_...",
  "base_url": "https://api.anthropic.com"
}

Если authentication.identity_token опущено, SDK откатывается к ANTHROPIC_IDENTITY_TOKEN_FILE или ANTHROPIC_IDENTITY_TOKEN из окружения.

Области действия OAuth

oauth_scope, который вы устанавливаете для правила федерации, определяет, какие конечные точки Claude API может вызывать выпущенный токен доступа.

Область действияПредоставляет доступ к
workspace:developerВсе неадминистративные конечные точки Claude API в рабочем пространстве правила: Messages (включая потоковую передачу и подсчёт токенов), Models, Managed Agents и их сессии, Files и Skills. Это соответствует доступу, который имеет ключ API рабочего пространства в том же рабочем пространстве.
workspace:inferenceКонечные точки вывода в рабочем пространстве правила: Messages (включая потоковую передачу и подсчёт токенов), Models и OpenAI-совместимая конечная точка чата. Используйте это для рабочих нагрузок, которым нужно только вызывать Claude и никогда не нужно управлять Files, Skills или другими ресурсами.
workspace:manage_tunnelsAPI туннелей MCP: создание, перечисление и получение туннелей, регистрация и архивирование сертификатов CA, раскрытие и ротация токена туннеля, а также архивирование туннелей. Модальное окно создания туннеля в Console блокирует эту область действия, когда вы создаёте правило из него.
org:adminПолный доступ к Admin API (члены организации, приглашения, рабочие пространства, ключи API и остальное). Токен OAuth org:admin может создавать или изменять только правила с областью действия workspace:developer или workspace:inference и не может обновлять эмитента, который поддерживает правило с любой другой областью действия; см. ограничения.

Запрос к конечной точке вне области действия токена возвращает HTTP 403. Более детализированные области действия (по ресурсу или чтение против записи) в настоящее время недоступны.

Границы разрешений

oauth_scope правила федерации — это потолок: выпущенный токен никогда не может его превысить. organization_role целевой сервисной учётной записи (developer или admin) определяет, какие области действия можно предоставить, поэтому правило, предоставляющее org:admin, должно нацеливаться на сервисную учётную запись с organization_role=admin. Эффективные разрешения — это пересечение области действия правила и роли сервисной учётной записи.

oauth_scope правилаorganization_role сервисной учётной записиЭффективные разрешения
workspace:developeradminДоступ к Claude API только в рабочем пространстве правила. Область действия ограничивает токен ниже роли.
org:adminadminПолный доступ к Admin API (члены организации, приглашения, рабочие пространства, ключи API и остальное), за вычетом исключений для вызывающего OAuth; см. ограничения.

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

Anthropic применяет эти ограничения, когда вы создаёте или обновляете эмитентов и правила, а также при проверке входящего JWT во время обмена.

Полные сведения о параметрах и схемах ответов см. в справочнике по API сервисных учётных записей, справочнике по API эмитентов федерации и справочнике по API правил федерации.

Поля ресурсов

ПолеОграничение
name эмитента, правила и сервисной учётной записиДолжно соответствовать ^[a-z0-9-]+$, длина от 1 до 255 символов.
workspace_idТребуется при создании, если applies_to_all_workspaces не равно true. Рабочее пространство (wrkspc_...), чьи квота, биллинг и ограничения скорости применяются к токенам, выпущенным по этому правилу. Должно быть рабочим пространством в той же организации, и целевая сервисная учётная запись должна быть членом этого рабочего пространства.
applies_to_all_workspacesБулево значение. Установите true, чтобы включить правило в каждом рабочем пространстве организации вместо указания одного; при создании требуется либо это, либо workspace_id.
token_lifetime_secondsЦелое число между 60 и 86400 (от 1 минуты до 24 часов). По умолчанию 3600. Значения вне этого диапазона отклоняются во время запроса. См. Время жизни и обновление токена.

Поля URL

Поля issuer_url, jwks.discovery_base и jwks.url валидируются:

ОграничениеДеталь
СхемаДолжна быть https.
ПортДолжен быть 443 (явный или по умолчанию).
ХостДолжен быть публичным DNS-именем хоста для вашего OIDC-провайдера. Должен разрешаться в публичные IP-адреса; IP-литералы не принимаются.

Сбои валидации URL возвращают 400 invalid_request_error с именем поля в качестве префикса в сообщении об ошибке (например, issuer_url: url must use https scheme).

Проверка JWT

ОграничениеПодробности
Максимальный размерJWT assertion должен быть не более 16 КиБ.
Алгоритм подписиПринимаются только асимметричные алгоритмы (семейства RSA и ECDSA: ES256, ES384, ES512, RS256, RS384, RS512, PS256, PS384, PS512). HMAC (HS256, HS384, HS512) и none отклоняются.
ID ключаЗаголовок JWT должен содержать kid, соответствующий ключу в JWKS эмитента. Токены без kid отклоняются.
Обязательные утвержденияsub должно присутствовать. iat должно присутствовать и не находиться в будущем. exp должно присутствовать и находиться в будущем.
Однократное использованиеУтверждение, содержащее утверждение jti, может быть обменено только один раз для каждого эмитента: повторный обмен с тем же jti отклоняется как повтор. Поле эмитента check_jti (включено по умолчанию) управляет этой проверкой; утверждения без jti ей не подлежат. См. справочник по API эмитентов федерации.
Максимальное время жизниВремя жизни токена (exp минус iat) не должно превышать настроенный максимум эмитента (по умолчанию 1 час, настраивается для каждого эмитента в Claude Console).
Расхождение часовК exp, nbf и iat применяется допуск в 30 секунд.

Семантика сопоставления правил

Блок match правила федерации определяет, принимается ли входящий JWT. Все заполненные поля оцениваются с семантикой AND: JWT должен удовлетворять каждому заполненному сопоставителю. Должно быть установлено хотя бы одно из subject_prefix, claims или condition; блок match, содержащий только audience (или вообще без сопоставителей), отклоняется. Это защищает от правил, которые принимали бы каждый токен от эмитента.

СопоставительТипСемантика
subject_prefixstringТочное совпадение с утверждением JWT sub. Завершающая * делает его совпадением по префиксу (значение sub должно начинаться с символов перед *). Чувствительно к регистру.
audiencestringУтверждение JWT aud должно содержать эту точную строку. Когда aud является массивом, любой элемент, точно совпадающий, удовлетворяет проверке.
claimsmap<string, string>Каждый ключ — это имя утверждения верхнего уровня, а каждое значение — требуемое точное строковое значение. Для вложенных, числовых, булевых или сложных утверждений, таких как списки и карты, используйте вместо этого condition с выражением CEL.
conditionstring (CEL)Выражение CEL, которое должно оцениваться как true.

Среда оценки CEL