API Token
В начале работы с API консоли управления Enterprise необходимо пройти аутентификацию, в результате которой вы указываете данные своей учетной записи и взамен получаете Access Token. Вместо учетных данных можно указать API Token, который принадлежит пользователю тенанта. API Token удобно использовать для работы различных API-клиентов, в т. ч. скриптов для автоматизации управления.
- API Token
Идентификатор, выпущенный пользователем. Позволяет изменить способ аутентификации и получить Access Token для авторизации дальнейших вызовов API.
API Token создается и удаляется в консоли управления Enterprise.
API Token бессрочный, но может быть отозван пользователем.
- Access Token
Идентификатор сессии, который используется для авторизации при вызовах API.
Access Token создается при аутентификации с помощью стандартного способа аутентификации (с использованием логина и пароля) или API Token (с помощью вызова метода API, описанного ниже).
Срок жизни Access Token определяется сроком жизни сессии, которым управляет провайдер Cloud.
Ограничения API Token
При аутентификации с помощью API Token пропадают следующие возможности:
изменение паролей пользователей;
управление пользователями (создание, удаление, изменение);
создание других API Token;
просмотр и отзыв других API Token.
Генерация API Token
Примечание
Убедитесь, что для роли администратора организации включено право (для управления своим API Token) и право Manage all user’s API tokens (для управления API Token других пользователей тенанта). Они необходимы для генерации и управления API Token, и без указанных прав блок Access Tokens будет недоступен в интерфейсе консоли.
Чтобы сгенерировать API Token для текущего пользователя, выполните следующие шаги в консоли управления Enterprise:
Справа сверху раскройте меню пользователя и нажмите User preferences.
В блоке Access Tokens нажмите NEW.
Укажите название API Token и нажмите CREATE.
Скопируйте сгенерированный API Token.
Важно
API Token можно скопировать только на этом шаге.
Нажмите OK.
Далее проверьте доступ с помощью полученного API Token.
Получение доступа с помощью API Token
Получите Access Token, который добавляется во все запросы сессии. Если раньше для этого необходимо было указать данные учетной записи, теперь используется API Token.
Чтобы получить Access Token необходимо знать:
{MY-API-TOKEN}
— сгенерированный API Token.{SITE}
— зависит от региона, в котором размещается ваш виртуальный ЦОД. Он отображается в ссылке на консоль управления Enterprisehttps://{SITE}/tenant/my-tenant/
. Ее мы отправляем при подключении услуги. Например, для региона PD01 параметр{SITE}
принимает значениеvcd.sbercloud.ru
, для PD11 —vcd11.msk.sbercloud.ru
.{TENANT-NAME}
— название тенанта, которое можно посмотреть в URL-адресе для входа в консоль управления Enterprisehttps://{SITE}/tenant/{TENANT-NAME}
.
Отправьте POST-запрос:
curl -k --header "Accept: application/json" --header "Content-Type: application/x-www-form-urlencoded" --header "Content-Length: 71" --data "grant_type=refresh_token&refresh_token={MY-API-TOKEN}" --request POST "https://{SITE}/oauth/tenant/{TENANT-NAME}/token"
curl -k --header "Accept: application/json" --header "Content-Type: application/x-www-form-urlencoded" --header "Content-Length: 71" --data "grant_type=refresh_token&refresh_token=pkAtl..." --request POST "https://vcd.sbercloud.ru/oauth/tenant/my-tenant/token"
POST https://vcd.sbercloud.ru/oauth/tenant/my-tenant/token
Headers:
- KEY: Accept
- VALUE: application/json
- KEY: Content-Type
- VALUE: application/x-www-form-urlencoded
- KEY: Content-Length
- VALUE: 71
Body:
grant_type=refresh_token&refresh_token=pkAtl...
Вы получите ответ с Access Token:
200 ОК
{
"access_token": "eyJhbG...",
"token_type": "Bearer",
...
}
API Token действителен даже после выхода пользователя из системы. После истечения срока действия Access Token приложение может получить новый Access Token с помощью API Token.
Проверка получения доступа
Отправьте любой запрос, используя Access Token, и убедитесь, что он выполнился корректно. Например, запросите список доступных тенантов.
curl -k --header "Accept: application/*;version=36.1" --header "Authorization: Bearer {access_token}" --request GET "https://{SITE}/api/org/"
curl -k --header "Accept: application/*;version=36.1" --header "Authorization: Bearer eyJhbG..." --request GET "https://vcd.sbercloud.ru/api/org/"
GET https://vcd.sbercloud.ru/api/org/
Headers:
- KEY: Accept
- VALUE: application/*;version=36.1
Authorization:
- Type: Bearer Token
- Token: eyJhbG...
Вы получите ответ вида:
<OrgList>
<Org
href="https://{SITE}/api/org/{ORG-ID}"
name="{TENANT-NAME}"/>
...
</OrgList>
См.также
Подробнее про работу с API.
Отзыв API Token
Пользователь с ролью Organization Administrator может отозвать API Token любых пользователей тенанта. Остальным пользователям доступен отзыв только своих API Token.
Чтобы отозвать API Token, сгенерированный в консоли управления Enterprise:
Справа сверху раскройте меню пользователя и нажмите User preferences.
В блоке Access Tokens выберите API Token.
Нажмите на
напротив API Token и выберите Revoke.
Все сессии, которые используют отозванный API Token, станут недействительными.