---
title: Аутентификация
url: https://platform.claude.com/docs/ru/manage-claude/authentication
description: Аутентификация в Claude API с помощью ключей API, Workload Identity Federation или App Attest.
---

Claude API поддерживает три способа аутентификации запросов:

| Метод                                                                                                                         | Учётные данные                                                                                                                      | Лучше всего подходит для                                                                                                                                        |
| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Ключ API](https://platform.claude.com/docs/ru/manage-claude/authentication#api-keys)                                         | Статический секрет `sk-ant-api...`, отправляемый как bearer-токен в заголовке `Authorization`                                       | Локальной разработки, прототипирования, скриптов и серверов, где вы контролируете хранение секретов                                                             |
| [Workload Identity Federation](https://platform.claude.com/docs/ru/manage-claude/authentication#workload-identity-federation) | Короткоживущий bearer-токен, обмениваемый на токен идентификации вашего поставщика удостоверений                                    | Производственных рабочих нагрузок на облачных платформах (AWS, Google Cloud, Azure), CI/CD-конвейеров и Kubernetes, где вы хотите устранить статические секреты |
| [App Attest](https://platform.claude.com/docs/ru/manage-claude/authentication#app-attest)                                     | Короткоживущий токен доступа, выдаваемый подлинной, аттестованной установке вашего зарегистрированного приложения для iOS или macOS | Приложений для iOS и macOS, распространяемых среди конечных пользователей, где приложение вызывает Claude API напрямую без бэкенда или прокси                   |

Ключи API и Workload Identity Federation предоставляют одинаковый доступ к эндпоинтам Claude API. Выберите ключи API, чтобы быстро начать работу: персональный ключ для вашей собственной разработки или ключ сервисного аккаунта для всего, что используется совместно. Переходите на Workload Identity Federation, когда у вашей рабочей нагрузки уже есть выданное платформой удостоверение, которое вы можете федерировать. Используйте App Attest для приложений iOS и macOS, которые вы распространяете среди конечных пользователей.

## Ключи API

Ключи API — это статические секреты, которые вы генерируете в Claude Console и отправляете с каждым запросом как bearer-токен в заголовке `Authorization`.

### Типы ключей

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

| Тип ключа                                   | Действует как                                                                                                        | Работает в                                                                                                                                                                                                                     | Перестаёт работать, когда                                                                                                                                                                                                                                                    |
| ------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Персональный ключ**                       | Вы, пользователь, с вашими ролями и разрешениями                                                                     | Либо в одном рабочем пространстве, либо в рабочих пространствах, где ваша роль разрешает использование API, выбираемых при создании ключа                                                                                      | Вы теряете доступ к организации или, для ключа одного рабочего пространства, к этому рабочему пространству. Персональные ключи архивируются, когда вас удаляют из организации. Если вас приглашают повторно, создайте новые ключи; архивированные ключи не восстанавливаются |
| **Ключ сервисного аккаунта**                | [Сервисный аккаунт](https://platform.claude.com/docs/ru/manage-claude/workload-identity-federation#service-accounts) | Либо в одном рабочем пространстве, либо во всём, к чему имеет доступ сервисный аккаунт, выбираемом при создании ключа. Сервисный аккаунт имеет доступ к Default Workspace и к рабочим пространствам, в которые он был добавлен | Сервисный аккаунт архивируется или, для ключа одного рабочего пространства, удаляется из этого рабочего пространства                                                                                                                                                         |
| **Ключ рабочего пространства** (устаревший) | Никто: он принадлежит рабочему пространству, в котором был создан                                                    | Этому рабочему пространству                                                                                                                                                                                                    | Он истекает, отключается или удаляется, либо его рабочее пространство архивируется, независимо от того, покидает ли его создатель организацию                                                                                                                                |

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

Используйте персональный ключ для вашей собственной разработки и скриптов. Общий персональный ключ действует как один человек и ломается, когда он уходит. Для общих или автоматизированных рабочих нагрузок (CI, производственные сервисы) попросите администратора организации создать сервисный аккаунт, чтобы у рабочей нагрузки было собственное удостоверение.

Ключи API рабочих пространств по-прежнему работают, но их следует считать устаревшими; предпочтительны ключи, привязанные к удостоверению, или [Workload Identity Federation](https://platform.claude.com/docs/ru/manage-claude/workload-identity-federation). Для миграции см. [Замена ключей API рабочих пространств](https://platform.claude.com/docs/ru/manage-claude/authentication#replacing-workspace-api-keys).

### Создание и использование ключа

* **Создание ключа:** В Claude Console перейдите на страницу [API keys](https://platform.claude.com/settings/keys) (`platform.claude.com/settings/keys`) и нажмите **Create key**. Задайте имя ключа и выберите [срок действия](https://platform.claude.com/docs/ru/manage-claude/authentication#key-expiration). Установите в поле **Linked account** себя для персонального ключа или сервисный аккаунт для ключа, используемого несколькими пользователями. Вы также можете ограничить ключ определённым рабочим пространством, что позволит не указывать идентификатор рабочего пространства вручную в будущих запросах.
* **Использование ключа:** Отправляйте его как `Authorization: Bearer <key>` в прямых HTTP-запросах или задайте переменную окружения `ANTHROPIC_API_KEY`, и [клиентский SDK](https://platform.claude.com/docs/ru/cli-sdks-libraries/overview) подхватит его автоматически.

```http
POST /v1/messages
Authorization: Bearer YOUR_API_KEY
anthropic-version: 2023-06-01
content-type: application/json
```

Устаревший заголовок `x-api-key: YOUR_API_KEY` по-прежнему поддерживается вместо `Authorization`.

Храните ключи API в менеджере секретов, периодически меняйте их и отключайте или удаляйте любой ключ, который, по вашему мнению, мог утечь. На странице [API keys](https://platform.claude.com/settings/keys) в Claude Console действие **Disable** обратимо (Admin API сообщает `status` ключа как `"inactive"`, а **Re-enable** возвращает его в `"active"`), тогда как **Delete** необратимо: ключ архивируется и по-прежнему отображается в [List API Keys](https://platform.claude.com/docs/ru/api/organization/api_keys/list) со значением `status: "archived"`. Ключи с истёкшим сроком действия можно только удалить. Вы также можете задать [срок действия](https://platform.claude.com/docs/ru/manage-claude/authentication#key-expiration) при создании ключа, чтобы ограничить время, в течение которого утёкшие учётные данные остаются пригодными к использованию.

<CodeGroup>
  ```bash cURL
  curl https://api.anthropic.com/v1/messages \
    -H "x-api-key: $ANTHROPIC_API_KEY" \
    -H "anthropic-version: 2023-06-01" \
    -H "content-type: application/json" \
    -d '{
      "model": "claude-opus-5-5",
      "max_tokens": 1024,
      "messages": [{"role": "user", "content": "Hello, Claude"}]
    }'
  ```

  ```bash CLI
  # Варианты для zsh, bash и Windows см. в /docs/en/cli-sdks-libraries/cli/authentication#api-key
  export ANTHROPIC_API_KEY=sk-ant-api03-...
  ```

  ```python Python
  client = Anthropic(api_key="my-anthropic-api-key")
  # или, с ANTHROPIC_API_KEY, установленным в окружении:
  client = Anthropic()
  ```

  ```typescript TypeScript
  const client = new Anthropic({ apiKey: "my-anthropic-api-key" });
  // или, с установленным ANTHROPIC_API_KEY в окружении:
  // const client = new Anthropic();
  ```

  ```csharp C#
  using Anthropic;

  AnthropicClient client = new() { ApiKey = "my-anthropic-api-key" };
  // Или, если в окружении задана переменная ANTHROPIC_API_KEY:
  // AnthropicClient client = new();
  ```

  ```go Go
  client := anthropic.NewClient(
  	option.WithAPIKey("sk-ant-api03-..."), // defaults to os.LookupEnv("ANTHROPIC_API_KEY")
  )
  ```

  ```java Java
  import com.anthropic.client.AnthropicClient;
  import com.anthropic.client.okhttp.AnthropicOkHttpClient;

  // Явно
  AnthropicClient client = AnthropicOkHttpClient.builder()
      .apiKey("my-anthropic-api-key")
      .build();

  // Из ANTHROPIC_API_KEY (или системного свойства anthropic.apiKey)
  AnthropicClient clientFromEnv = AnthropicOkHttpClient.fromEnv();
  ```

  ```php PHP
  // Читает ANTHROPIC_API_KEY из окружения
  $client = new Client();
  // Или передайте ключ явно:
  $client = new Client(apiKey: 'my-anthropic-api-key');
  ```

  ```ruby Ruby
  anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key")
  # или, с ANTHROPIC_API_KEY, заданным в окружении:
  anthropic = Anthropic::Client.new
  ```
</CodeGroup>

### Выбор рабочего пространства

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

Если ваш ключ API не ограничен рабочим пространством, необходимо указывать идентификатор рабочего пространства в заголовке `anthropic-workspace-id` в каждом запросе. В следующем примере показано, как задать этот заголовок в запросе или в SDK.

[Admin API](https://platform.claude.com/docs/ru/manage-claude/admin-api) принимает персональный ключ или ключ сервисного аккаунта только в том случае, если ключ не ограничен определённым рабочим пространством.

ID рабочего пространства можно найти в столбце **ID** на странице [Workspaces](https://platform.claude.com/settings/workspaces) (`platform.claude.com/settings/workspaces`) в Claude Console или вызвав эндпоинт [List Workspaces](https://platform.claude.com/docs/ru/api/organization/workspaces/list). List Workspaces включает Default Workspace, только если передать `include_default=true`; его ID также содержится в [заголовке ответа](https://platform.claude.com/docs/ru/manage-claude/workspaces#identify-the-workspace-behind-an-api-response) `anthropic-workspace-id` любого запроса, выполняемого в нём.

<CodeGroup>
  ```bash cURL
  # Обязателен в каждом запросе для ключа, не привязанного к рабочей области.
  # Не указывайте заголовок anthropic-workspace-id для ключа, привязанного к одной рабочей области.
  curl https://api.anthropic.com/v1/messages \
    -H "x-api-key: $ANTHROPIC_API_KEY" \
    -H "anthropic-version: 2023-06-01" \
    -H "anthropic-workspace-id: wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ" \
    -H "content-type: application/json" \
    -d '{
      "model": "claude-opus-5-5",
      "max_tokens": 1024,
      "messages": [{"role": "user", "content": "Hello, Claude"}]
    }'
  ```

  ```bash CLI
  # Обязателен в каждой команде для ключа, не привязанного к рабочему пространству.
  # Не указывайте --workspace-id для ключа, привязанного к одному рабочему пространству.
  ant messages create \
    --workspace-id wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ \
    --model claude-opus-5-5 \
    --max-tokens 1024 \
    --message '{role: user, content: "Hello, Claude"}'
  ```

  ```python Python
  client = Anthropic()  # reads ANTHROPIC_API_KEY

  # Обязателен в каждом запросе для ключа, не привязанного к рабочему пространству.
  # Для ключа, привязанного к одному рабочему пространству, не указывайте extra_headers.
  message = client.messages.create(
      model="claude-opus-5-5",
      max_tokens=1024,
      messages=[{"role": "user", "content": "Hello, Claude"}],
      extra_headers={"anthropic-workspace-id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ"},
  )
  print(message.content)

  # Или задайте его один раз для каждого запроса от этого клиента:
  workspace_client = Anthropic(
      default_headers={"anthropic-workspace-id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ"},
  )
  ```

  ```typescript TypeScript
  const client = new Anthropic(); // reads ANTHROPIC_API_KEY

  // Обязателен в каждом запросе для ключа, не привязанного к рабочему пространству.
  // Для ключа, привязанного к одному рабочему пространству, опустите второй аргумент.
  const message = await client.messages.create(
    {
      model: "claude-opus-5-5",
      max_tokens: 1024,
      messages: [{ role: "user", content: "Hello, Claude" }]
    },
    { headers: { "anthropic-workspace-id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ" } }
  );
  console.log(message.content);

  // Или задайте его один раз для каждого запроса от этого клиента:
  const workspaceClient = new Anthropic({
    defaultHeaders: { "anthropic-workspace-id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ" }
  });
  ```

  ```csharp C#
  AnthropicClient client = new(); // reads ANTHROPIC_API_KEY

  MessageCreateParams parameters = new()
  {
      Model = Model.ClaudeOpus5_5,
      MaxTokens = 1024,
      Messages = [new UserMessageParam { Content = "Hello, Claude" }],
  };

  // Обязателен в каждом запросе для ключа, не привязанного к рабочей области.
  // Для ключа, привязанного к одной рабочей области, вызывайте client.Messages.Create(parameters) напрямую.
  var message = await client
      .WithOptions(options =>
          options with
          {
              ExtraHeaders = new Dictionary<string, string>
              {
                  ["anthropic-workspace-id"] = "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ",
              },
          }
      )
      .Messages.Create(parameters);
  Console.WriteLine(message);

  // Или задайте его один раз для всех запросов от этого клиента:
  AnthropicClient workspaceClient = new(new ClientOptions
  {
      ExtraHeaders = new Dictionary<string, string>
      {
          ["anthropic-workspace-id"] = "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ",
      },
  });
  ```

  ```go Go
  client := anthropic.NewClient() // reads ANTHROPIC_API_KEY

  // Обязателен в каждом запросе для ключа, не привязанного к рабочей области.
  // Не указывайте этот параметр для ключа, привязанного к одной рабочей области.
  message, err := client.Messages.New(context.TODO(), anthropic.MessageNewParams{
  	Model:     anthropic.ModelClaudeOpus5_5,
  	MaxTokens: 1024,
  	Messages: []anthropic.MessageParam{
  		anthropic.NewUserMessage(anthropic.NewTextBlock("Hello, Claude")),
  	},
  }, option.WithHeader("anthropic-workspace-id", "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ"))
  if err != nil {
  	log.Fatal(err)
  }
  fmt.Println(message.Content)

  // Или задайте её один раз для каждого запроса от этого клиента:
  workspaceClient := anthropic.NewClient(
  	option.WithHeader("anthropic-workspace-id", "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ"),
  )
  ```

  ```java Java
  AnthropicClient client = AnthropicOkHttpClient.fromEnv(); // reads ANTHROPIC_API_KEY

  // Обязателен в каждом запросе для ключа, не привязанного к рабочему пространству.
  // Не указывайте putAdditionalHeader для ключа, привязанного к одному рабочему пространству.
  Message message = client.messages().create(MessageCreateParams.builder()
      .model(Model.CLAUDE_OPUS_5_5)
      .maxTokens(1024)
      .addUserMessage("Hello, Claude")
      .putAdditionalHeader("anthropic-workspace-id", "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ")
      .build());

  IO.println(message.content());

  // Или задайте его один раз для каждого запроса от этого клиента:
  AnthropicClient workspaceClient = AnthropicOkHttpClient.builder()
      .fromEnv()
      .putHeader("anthropic-workspace-id", "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ")
      .build();
  ```

  ```php PHP
  $client = new Client(); // reads ANTHROPIC_API_KEY

  // Обязательно в каждом запросе для ключа, не привязанного к рабочему пространству.
  // Не указывайте requestOptions для ключа, привязанного к одному рабочему пространству.
  $message = $client->messages->create(
      model: Model::CLAUDE_OPUS_5_5,
      maxTokens: 1024,
      messages: [['role' => 'user', 'content' => 'Hello, Claude']],
      requestOptions: [
          'extraHeaders' => ['anthropic-workspace-id' => 'wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ'],
      ],
  );

  echo json_encode($message->content), PHP_EOL;
  ```

  ```ruby Ruby
  client = Anthropic::Client.new # reads ANTHROPIC_API_KEY

  # Обязателен в каждом запросе для ключа, не привязанного к рабочему пространству.
  # Не указывайте request_options для ключа, привязанного к одному рабочему пространству.
  message = client.messages.create(
    model: Anthropic::Model::CLAUDE_OPUS_5_5,
    max_tokens: 1024,
    messages: [{role: "user", content: "Hello, Claude"}],
    request_options: {extra_headers: {"anthropic-workspace-id" => "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ"}}
  )

  puts message.content
  ```
</CodeGroup>

Если запрос, сделанный с ключом, который не ограничен рабочим пространством, опускает заголовок, API возвращает 400 `invalid_request_error`:

```json JSON
{
  "type": "error",
  "error": {
    "type": "invalid_request_error",
    "message": "This API key is not scoped to a workspace, so this request must include the anthropic-workspace-id header with the ID of the workspace to use. Add the header, or use an API key that is scoped to a workspace."
  },
  "request_id": "req_011CSHoEeqs5C35K2UUqR7Fy"
}
```

Значение заголовка, которое не является допустимым ID рабочего пространства, возвращает 400 `invalid_request_error` с сообщением `anthropic-workspace-id header must be a valid workspace ID.` Если рабочее пространство не существует или пользователь или сервисный аккаунт ключа не имеет к нему доступа, API возвращает 404 `not_found_error` с сообщением ``Workspace `<id>` not found.``, тот же ответ, что и для любого неизвестного рабочего пространства.

Workload Identity Federation выбирает рабочее пространство при обмене токенами; подробности см. в [справочнике WIF](https://platform.claude.com/docs/ru/manage-claude/wif-reference).

### Срок действия ключа

При создании ключа API на странице [API keys](https://platform.claude.com/settings/keys) в Claude Console вы выбираете срок действия: предустановленный (3 часа, 1 день, 7 дней или 30 дней), произвольную длительность или **Never** для ключей, которые вы храните в менеджере секретов и меняете самостоятельно. Если в вашей организации действует политика максимального срока действия, Console ограничивает предустановленные и произвольные значения максимумом политики, а вариант **Never** недоступен. Существующие ключи сохраняют своё текущее поведение; срок действия задаётся при создании и не может быть изменён впоследствии. Тот же выбор срока действия применяется при [создании ключа Admin API](https://platform.claude.com/docs/ru/manage-claude/admin-api-keys) в Claude Console.

Anthropic отправляет создателю ключа электронное письмо по мере приближения срока действия: за 7 дней до истечения для ключей, созданных со сроком жизни не менее 14 дней, и за 1 день для ключей со сроком жизни не менее 7 дней. Ключи с более коротким сроком жизни истекают без предупреждающего письма.

После истечения срока действия ключа запросы, сделанные с ним, возвращают `401 authentication_error`. Создайте новый ключ для восстановления доступа; истёкшие ключи не могут быть повторно активированы.

Таблица ключей API в Console показывает срок действия каждого ключа, а Admin API сообщает временную метку `expires_at` каждого ключа в эндпоинтах [List API Keys](https://platform.claude.com/docs/ru/api/organization/api_keys/list) и [Retrieve API Key](https://platform.claude.com/docs/ru/api/organization/api_keys/retrieve), чтобы вы могли проверять и ротировать ключи до истечения их срока действия. Для ключей без срока действия это поле равно `null`.

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

### Замена ключей API рабочих пространств

Если у вас есть ключ рабочего пространства, вы можете захотеть заменить его на [Workload Identity Federation](https://platform.claude.com/docs/ru/manage-claude/wif-reference) или персональный ключ или ключ сервисного аккаунта. Это обеспечивает лучшую безопасность и наблюдаемость.

Подробности о настройке Workload Identity Federation, которая предпочтительнее долгоживущих ключей, см. в [справочнике по WIF](https://platform.claude.com/docs/ru/manage-claude/wif-reference).

Чтобы заменить ключ рабочего пространства на персональный ключ или ключ сервисного аккаунта:

1. **Определите тип ключа.** Ваш собственный инструментарий должен использовать персональный ключ. Общая или автономная рабочая нагрузка должна использовать ключ сервисного аккаунта.
2. **Создайте сервисный аккаунт**, если необходимо. Возможно, вам придётся попросить администратора организации создать его на странице [Service accounts](https://platform.claude.com/settings/service-accounts) (`platform.claude.com/settings/service-accounts`) в Claude Console и добавить его в соответствующее рабочее пространство.
3. **Создайте новый ключ.** Создайте его специально для рабочего пространства интеграции, если только интеграции не требуется несколько рабочих пространств.
4. **Разверните новый ключ.** Замените старый ключ везде, где интеграция его считывает, — обычно это переменная окружения `ANTHROPIC_API_KEY` или запись в менеджере секретов. Для ключа, не ограниченного рабочим пространством, также отправляйте заголовок `anthropic-workspace-id`, как показано в разделе [Выбор рабочего пространства](https://platform.claude.com/docs/ru/manage-claude/authentication#select-a-workspace).
5. **Удалите старый ключ.** Убедитесь, что запросы выполняются успешно, затем удалите ключ рабочего пространства на [странице ключей API](https://platform.claude.com/settings/keys) в Claude Console.

## Workload Identity Federation

Workload Identity Federation (WIF) позволяет рабочей нагрузке проходить аутентификацию с помощью кратковременного токена идентификации, выданного поставщиком удостоверений (IdP), которому вы уже доверяете. К таким IdP относятся AWS IAM, Google Cloud и любой совместимый со стандартами издатель OIDC (например, GitHub Actions, сервисные аккаунты Kubernetes, SPIFFE, Microsoft Entra ID или Okta). Рабочая нагрузка обменивает выданный IdP токен JWT через `POST /v1/oauth/token` на кратковременный токен доступа Claude API, а SDK автоматически обновляет этот токен до истечения его срока действия. Нет никакой строки `sk-ant-api...`, которую нужно создавать, распространять или менять.

Федерация убирает долгоживущие ключи Claude API из вашей среды, что ограничивает ущерб от утечки учётных данных и позволяет управлять доступом с помощью тех же средств контроля IdP, которые вы уже используете для облачных ресурсов. Однако сама по себе она не гарантирует сквозной безопасности: цепочка доверия надёжна лишь настолько, насколько надёжна конфигурация вашего поставщика удостоверений, и долгоживущий секрет на шаг раньше в этой цепочке (например, статические облачные учётные данные, с помощью которых можно получать токены IdP) всё равно может её подорвать. Сочетайте федерацию со средствами контроля вашего поставщика, такими как списки разрешённых IP-адресов, MFA и журналирование аудита.

Чтобы настроить федерацию, вы создаёте три ресурса в Claude Console (сервисный аккаунт, эмитент федерации и правило федерации), а затем указываете вашему SDK на это правило. См. [Workload Identity Federation](https://platform.claude.com/docs/ru/manage-claude/workload-identity-federation) для полного пошагового руководства по настройке.

## App Attest

App Attest аутентифицирует приложения для iOS и macOS, которые вызывают Claude API напрямую с устройства. Каждая установка доказывает, что она является подлинной, неизменённой сборкой приложения, зарегистрированного вами в Claude Console, с помощью сервиса Apple App Attest. Затем Anthropic выдаёт устройству кратковременный токен доступа, использование по которому оплачивается из вашего рабочего пространства. Токены ограничены вашим рабочим пространством, истекают через 1 час и разрешают только вызовы [Messages API](https://platform.claude.com/docs/ru/api/messages/create).

Чтобы зарегистрировать ваше приложение и получить client ID, см. [App Attest для приложений iOS и macOS](https://platform.claude.com/docs/ru/manage-claude/app-attest).

## Следующие шаги

<CardGroup cols={2}>
  <Card title="Настройка Workload Identity Federation" icon="lock" href="https://platform.claude.com/docs/ru/manage-claude/workload-identity-federation">
    Настройте эмитентов, правила и сервисные аккаунты, затем обменивайте токены
  </Card>

  <Card title="Руководства по поставщикам удостоверений" icon="cloud" href="https://platform.claude.com/docs/ru/manage-claude/workload-identity-federation#identity-providers">
    Пошаговые руководства для AWS, Google Cloud, Azure, GitHub Actions, Kubernetes, SPIFFE и Okta
  </Card>

  <Card title="Справочник WIF" icon="book" href="https://platform.claude.com/docs/ru/manage-claude/wif-reference">
    Переменные окружения, правила валидации, конфигурация профиля и справочник ошибок
  </Card>

  <Card title="App Attest для приложений iOS и macOS" icon="fingerprint" href="https://platform.claude.com/docs/ru/manage-claude/app-attest">
    Позвольте подлинным установкам вашего приложения вызывать Claude API без поставки ключа API
  </Card>

  <Card title="Клиентские SDK" icon="code" href="https://platform.claude.com/docs/ru/cli-sdks-libraries/overview">
    Python, TypeScript, C#, Go, Java, PHP, Ruby и CLI
  </Card>
</CardGroup>
