Автоматизация задач с помощью пользователей-машин

При использовании внешнего поставщика идентификационной информации с Edge API стандартный процесс получения токенов доступа OIDC/OAuth2 из интерфейса командной строки – это поток кода устройства OAuth 2.0. В этом случае вы используете утилиту get_token, которая предлагает вам перейти по URL в браузере, чтобы пройти аутентификацию через поставщика идентификационной информации, а затем автоматически разблокирует терминал.

Однако ваша среда разработки может поддерживать автоматизацию стандартных задач, например автоматическое тестирование или конвейеры CI/CD. Чтобы автоматизировать эти задачи при включенном внешнем поставщике идентификационной информации, вам нужен способ получать и обновлять токены OAuth2 без взаимодействия с браузером.

Edge поддерживает автоматическое создание токенов с помощью пользователей без интерфейса. Пользователь компьютера может получать токены OIDC/OAuth2 с помощью стандартных разрешений паролей без использования браузера. Это означает, что вы можете полностью автоматизировать процесс получения и обновления токенов для своих скриптов.

Как создать аккаунт машинного пользователя

Вы можете создать одного машинного пользователя для всех организаций или отдельного машинного пользователя для каждой организации.

Пользователь-машина создается и хранится непосредственно в локальном каталоге OpenLDAP и явно помечается как пользователь-машина (employeeType: machineuser). Это позволяет Apigee SSO безопасно выполнять аутентификацию пользователя-машины с помощью предоставления пароля, даже если для пользователей-людей строго применяется федеративный SAML/OIDC.

Подробные инструкции по созданию, просмотру и управлению пользователями-машинами приведены в статье Управление пользователями-машинами с помощью apigee-machineuser.sh.

Получение и обновление токенов пользователей компьютера

Чтобы получить токены для пользователей-машин, можно использовать утилиты get_token и acurl, доступные в /opt/apigee/apigee-openldap/bin/, или стандартную утилиту curl.

  • Использование утилит Apigee. Оболочки get_token и acurl автоматически обрабатывают кеширование токенов, создание полезной нагрузки и автоматическое обновление. Подробные инструкции и примеры использования этих инструментов приведены в статье Как использовать утилиты get_token и acurl.
  • Использование стандартной команды curl. Если у ваших скриптов автоматизации нет доступа к оболочкам Apigee, вы можете взаимодействовать с системой единого входа Apigee напрямую, используя следующие стандартные команды curl:

Чтобы получить и обновить токены с помощью стандартного curl:

  1. Чтобы сгенерировать начальный токен доступа и токен обновления непосредственно из системы единого входа Apigee, используйте следующий вызов API:
    curl -H "Content-Type: application/x-www-form-urlencoded;charset=utf-8" \
      -H "accept: application/json;charset=utf-8" \
      -X POST http://Edge_SSO_IP_DNS:9099/token -s \
        -d 'grant_type=password&username=machineUserEmail&password=machineUserPassword&client_id=edgecli&client_secret=edgeclisecret&scope=openid%20profile%20email%20offline_access'
      
  2. Передайте токен доступа в вызове API управления Edge в заголовке Authorization: Bearer:
    curl -H "Authorization: Bearer access_token" \
      http://MS_IP_DNS:8080/v1/organizations/org_name
  3. Чтобы обновить токен доступа, используйте следующий вызов, включающий токен обновления:
    curl -H "Content-Type:application/x-www-form-urlencoded;charset=utf-8" \
      -H "Accept: application/json;charset=utf-8" \
      -X POST http://Edge_SSO_IP_DNS:9099/token \
      -d 'grant_type=refresh_token&refresh_token=refreshToken&client_id=edgecli&client_secret=edgeclisecret'