Попробовать

Авторизация

Чтобы авторизоваться и начать использовать API, выполните следующие шаги:

Запрос версий API

  1. Отправьте GET-запрос на https://vcloud.sbercloud.ru/api/versions, чтобы получить список версий API и узнать URL для авторизации.

  2. Выберите из списка любую актуальную версию API. Если номер версии не принципиален, рекомендуем выбрать последнюю актуальную.

    У актуальных версий атрибут deprecated принимает значение false, у неактуальных true. Актуальных и неактуальных версий может быть несколько.

    В примере ниже первые две версии не актуальны, а вторые две актуальны.

  3. Для выбранной версии узнайте ее номер (Version) и URL для авторизации (LoginUrl). Они понадобятся для создания сессии.

    В примере ниже для последней актуальной версии API:

    • {VERSION}35.0;

    • {LOGINURL}https://vcd.sbercloud.ru/api/sessions.

Request

curl -X GET "https://vcd.sbercloud.ru/api/versions"

Response

<SupportedVersions>

   <VersionInfo deprecated="true">
      <Version>30.0</Version>
      <LoginUrl>https://vcd.sbercloud.ru/api/sessions</LoginUrl>
   </VersionInfo>

   <VersionInfo deprecated="true">
        <Version>31.0</Version>
        <LoginUrl>https://vcd.sbercloud.ru/api/sessions</LoginUrl>
   </VersionInfo>

   <VersionInfo deprecated="false">
       <Version>34.0</Version>
       <LoginUrl>https://vcd.sbercloud.ru/api/sessions</LoginUrl>
   </VersionInfo>

   <VersionInfo deprecated="false">
      <Version>35.0</Version>
      <LoginUrl>https://vcd.sbercloud.ru/api/sessions</LoginUrl>
   </VersionInfo>

   ...

</SupportedVersions>

Создание сессии

Чтобы создать сессию нужно знать:

  • {VERSION} — номер версии API;

  • {LOGINURL} — URL для авторизации;

  • tenant_name — название тенанта, которое можно посмотреть в URL-адресе для входа на портал VMware Cloud Director htmls://vcd.sbercloud.ru/tenant/<tenant_name>;

  • user — логин для входа на портал VMware Cloud Director;

  • password — пароль для входа на портал VMware Cloud Director.

Первые два параметра получены на предыдущем шаге, а данные для входа на портал VMware Cloud Director мы отправляем при подключении услуги.

Request

Отправьте POST-запрос на {LOGINURL}.

curl -X POST "{LOGINURL}" -i -H "Accept: application/*;version={VERSION}" -H "Authorization: Basic {CREDENTIALS}"
  • Basic / Basic Auth — тип авторизации.

  • {CREDENTIALS} — учетные данные от VMware Cloud Director в формате user@tenant_name:password в кодировке MIME Base64.

    Чтобы получить {CREDENTIALS} вы можете воспользоваться любым инструментом для перевода из текстового формата в MIME Base64, например Base64-онлайн декодировщик.

Подсказка

Для формирования заголовка Authorization удобно использовать Postman, поскольку не нужно отдельно переводить данные в формат MIME Base64. На вкладке Authorization:

  1. В поле Type выберите «Basic Auth».

  2. В поле Username укажите логин и название тенанта в формате user@tenant_name.

  3. В поле Password укажите пароль.

Чтобы скопировать полученный заголовок Authorization, откройте код запроса.

Response

Если запрос составлен корректно, сервер вернет:

  • статус 200 ОК;

  • заголовок x-vmware-vcloud-access-token: {TOKEN};

  • заголовок x-vmware-vcloud-token-type: {TYPE};

    Раскрыть

    HTTP/1.1 200 OK
    x-vmware-vcloud-access-token: eyJhbG...
    x-vmware-vcloud-token-type: Bearer
    
  • ссылки на объекты, к которым есть доступ для указанной учетной записи.

    Раскрыть

    <Session>
    
       <Link
          rel="down"
          href="https://vcd.sbercloud.ru/api/org/"
          type="application/vnd.vmware.vcloud.orgList+xml"/>
    
       <Link
          rel="down"
          href="https://vcd.sbercloud.ru/api/org/"
          type="application/vnd.vmware.vcloud.orgList+json"/>
    
       <Link
          rel="remove"
          href="https://vcd.sbercloud.ru/api/session"/>
    
       ...
    
    </Session>
    

После отправки запроса могут появиться следующие ошибки:

Код ошибки

Причина ошибки

Возможное решение

403

В запросе отсутствует заголовок Authorization.

Добавьте в запрос заголовок Authorization с учетными данными для входа.

401

Учетные данные некорректные.

В заголовке Authorization проверьте корректность учетных данных и формата, в котором они указаны.

Добавление токена в заголовок Authorization

Для последующих запросов в данной сессии добавьте в заголовок Authorization:

  • токен из заголовка x-vmware-vcloud-access-token;

  • тип токена из заголовка x-vmware-vcloud-token-type.

-H "Authorization: {TYPE} {TOKEN}"

После добавления токена в запросы может появиться ошибка:

Код ошибки

Причина ошибки

Возможное решение

403: Forbidden

Срок действия токена истекает, если REST-клиент 30 минут не отправляет запросы. Ошибка указывает на то, что пользователь не авторизован или запрашиваемый объект не существует.

После истечения срока действия токена, создайте новую сессию. Если срок действия токена не истек, рекомендуем проверить наличие запрашиваемых объектов и правильность указания их идентификаторов в запросе.