Evolution
Тема интерфейса

Аутентификация в API

Для аутентификации в API:

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

Вы можете создать сервисный аккаунт через личный кабинет.


  1. Перейдите в раздел Пользователи, на вкладку Сервисные аккаунты.

    ../_images/service_account.png
  2. В правом верхнем углу нажмите Создать сервисный аккаунт.

    ../_images/service_account_create.png
  3. Задайте для сервисного аккаунта название и описание.

  4. Назначьте доступы и роль. Роль определяет права доступа сервисного аккаунта. Чтобы аккаунт мог совершать какие-либо действия с ресурсами, рекомендуем выбирать роль «Администратор проектов».

  5. Нажмите Создать.

Шаг 2. Сгенерируйте API-ключ

Примечание

В рамках учетной записи можно создать до 10 ключей доступа. Если вы достигли лимита, удалите неактуальные ключи.

Для создания персонального ключа доступа:

  1. Перейдите в Мой профиль, нажав в правом верхнем углу на инициалы → имя пользователя.

  2. Перейдите на вкладку Ключи доступа.

  3. Нажмите Создать ключ.

  4. Введите описание ключа, которое поможет в будущем идентифировать его среди других ключей.

  5. Задайте время жизни ключа: от 1 до 10 000 дней. По умолчанию срок жизни ключа — 365 дней. По окончании срока ключ перестанет быть активным. Также доступен вариант «Бессрочно».

    Примечание

    Бессрочные ключи менее безопасны, рекомендуем выбирать ограничение по периоду действия или обновлять ключи самостоятельно не менее одного раза в год.

  6. Нажмите Создать.

../_images/create_key.png

После этого будут сгенерированы Key ID (логин) и Key Secret (пароль).

Примечание

Сохраните значение Key Secret. После того как вы закроете окно, повторно посмотреть значение будет нельзя.

Шаг 3. Получите токен

Отправьте запрос на получение токена, используя значения Key ID и Key Secret. Вы можете отправить Python-запрос или cURL-запрос.


import requests
def get_token(client_id, client_secret):
data = {
'client_id': client_id,
'client_secret': client_secret,
'grant_type':'client_credentials'
}
resp = requests.post("https://auth.iam.cloud.ru/auth/system/openid/token", json=data)
resp.raise_for_status()
resp = resp.json()
return resp["access_token"]
client_id = "<client_id>"
client_secret = "<client_secret>"
token = get_token(client_id, client_secret)

Используйте полученный токен для параметра token при каждом API-запросе к сервису.