Поддержка аутентификации OAuth 2.0 для утилит VMware Cloud Automation Tools
Поддержка аутентификации OAuth 2.0 для утилит VMware Cloud Automation Tools
Автор: Александр Самойленко
Дата: 29/03/2023
|
На днях компания VMware объявила о том, что решения VMware Cloud on AWS Terraform Provider и Python Automation Utility for VMware Cloud on AWS теперь поддерживают аутентификацию приложений OAuth 2.0 для VMware Cloud, что позволяет зарегистрировать средства автоматизации с поддержкой этого типа аутентификации. Теперь администраторы могут управлять учетными данными, привязанными к API-токенам доступа отдельных разработчиков, на уровне организации.
Объекты OAuth app действуют как сущности в рамках коммуникаций server-to-server и могут быть использованы в разных организациях. Только пользователь, создавший API-токен, может управлять им, а владелец OAuth app - это организация, которая управляется администратором с ролью Developer. Поэтому для использования API, где не требуется связывание токена с пользователем (например, полностью автоматизированные решения), рекомендуется не использовать API-токены персональных аккаунтов.
Это позволяет избежать ситуации, когда аккаунт этого человека был деактивирован или устарел, для него изменилась роль и т.п., что может повлиять на сервисы, использующие этот токен. Вместо этого владелец объекта Organization создает OAuth App с App ID и App Secret, чтобы дать доступ приложению по API. Детали этого процесса на платформе VMware Cloud on AWS приведены вот в этой статье.
Итак, здесь есть 2 важных шага по созданию OAuth: создать объект App и назначить его объекту Org.
Для создания App нужно сделать следующее:
- Логинимся в CSP, кликаем на имя пользователя и выбираем для него View Organization
- Переходим на вкладку OAuth Apps в самом верху страницы
- Нажимаем Create App и выбираем Server to server app

- Определяем имя приложения, описание, время жизни токена (Access Token TTL, рекомендуется 30 минут). Надо помнить, что как только токен создан - уже нет способа отозвать доступ, поэтому не надо задавать слишком большое время.
- Нажимаем Create. Надо помнить, что стоит максимально ограничивать роли для сервисов и действий в рамках организации минимально необходимыми привилегиями.
- Скачиваем копию App ID и App Secret.
Помните, что после этого экрана вы уже не сможете скачать App Secret, но вы можете просмотреть App ID, а сам App Secret можно сгенерировать снова. Другие свойства приложения также можно редактировать после создания.
Назначаем объект App объекту Org:
- Нажимаем Add после того, как вы создали App, чтобы добавить приложение в текущую организацию.
- Переходим на страницу OAuth Apps со страницы View Organization (у пользователя должны быть права по добавлению в эту организацию)

Последний релиз VMware Cloud on AWS Terraform Provider был обновлен и теперь включает два новых поля в файле переменных variables.tf: client_id и client_secret. Параметр client_id - это идентификатор объекта OAuth App, ассоциированный с организацией, а client_secret - это его пароль. Оба этих параметра вместе используются для аутентификации при вызове VMware Cloud Services API. Помимо этой комбинации, вы можете использовать и один параметр api_token.

Решение Python Automation Utility for VMware Cloud on AWS также было обновлено, чтобы поддерживать метод аутентификации OAuth 2.0 app. Чтобы использовать его, нужно указать параметры oauth_clientId и oauth_clientSecret в файле config.ini, как показано в примере ниже:

По умолчанию механизм аутентификации использует API-токен, указанный в поле refresh_Token файла config.ini. Чтобы использовать новый метод аутентификации OAuth app, нужно добавить параметр -oauth при запуске команд, указанных ниже.
Пример команды для использования аутентификации по умолчанию с использованием refresh_Token:
./pyVMC.py sddc show-sddcs
А вот так нужно запускать эту команду для использования аутентификации OAuth app:
./pyVMC.py sddc show-sddcs –oauth
Для получения полного списка команд и инструкций по использованию средства Python Utility for VMware Cloud on AWS обратитесь к этому документу.
|