[Документация Yandex Cloud](../../../index.md) > [Yandex Identity and Access Management](../../index.md) > [Пошаговые инструкции](../index.md) > Сервисные аккаунты > Получение ID-токена сервисного аккаунта

# Получение ID-токена сервисного аккаунта

{% note info %}

Создание ID-токенов для сервисных аккаунтов может быть запрещено [политиками авторизации](../../concepts/access-control/access-policies.md) на уровне [каталога](../../../resource-manager/concepts/resources-hierarchy.md#folder), [облака](../../../resource-manager/concepts/resources-hierarchy.md#cloud) или [организации](../../../organization/concepts/organization.md).

{% endnote %}

Чтобы аутентифицироваться с помощью Yandex Identity and Access Management во внешней системе, поддерживающей аутентификацию по стандарту [OIDC](https://openid.net/specs/openid-connect-core-1_0.html), необходим [ID-токен](../../concepts/authorization/id-token.md). ID-токен можно получить только для [сервисного аккаунта](../../concepts/users/service-accounts.md).

Чтобы получить ID-токен:

{% list tabs group=instructions %}

- CLI {#cli}

  Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), [установите и инициализируйте его](../../../cli/quickstart.md#install).

  По умолчанию используется каталог, указанный при [создании](../../../cli/operations/profile/profile-create.md) профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду `yc config set folder-id <идентификатор_каталога>`. Также для любой команды вы можете указать другой каталог с помощью параметров `--folder-name` или `--folder-id`. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

  1. Посмотрите описание команды создания ID-токена:

      ```bash
      yc iam create-id-token --help
      ```
  1. Получите идентификатор сервисного аккаунта, от имени которого вы хотите аутентифицироваться во внешней системе:

      ```bash
      yc iam service-account list
      ```

      Результат:

      ```
      +----------------------+--------------+--------+---------------------+-----------------------+
      |          ID          |     NAME     | LABELS |     CREATED AT      | LAST AUTHENTICATED AT |
      +----------------------+--------------+--------+---------------------+-----------------------+
      | ajeg2b2et02f******** | my-robot     |        | 2024-09-08 18:59:45 | 2025-02-18 10:10:00   |
      | ajegtlf2q28a******** | account-name |        | 2023-06-27 16:18:18 | 2025-02-18 10:20:00   |
      +----------------------+--------------+--------+---------------------+-----------------------+
      ```
  1. Получите ID-токен для нужного сервисного аккаунта:

      ```
      yc iam create-id-token \
        --subject-id <идентификатор_сервисного_акканта> \
        --audience <ресурс>
      ```

      Где:

      * `--subject-id` — [идентификатор](get-id.md) сервисного аккаунта, для которого необходимо создать ID-токен.
      * `--audience` — ресурс, для которого будет предназначен получаемый токен. Необязательный параметр. Если значение параметра не задано, по умолчанию используется значение идентификатора сервисного аккаунта, заданного в параметре `subject-id`.

      В ответ команда выведет в стандартный поток вывода (`STDOUT`) [тело](../../concepts/authorization/id-token.md#token-format) созданного ID-токена сервисного аккаунта.

{% endlist %}