Автоматизируйте процесс генерации токенов

Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee
X.info

При использовании SAML с Edge API процесс получения токенов доступа и обновления OAuth2 из утверждения SAML называется потоком ввода пароля . В этом потоке вы используете браузер для получения одноразового пароля, который затем используется для получения токенов OAuth2.

Однако ваша среда может поддерживать автоматизацию для распространенных задач разработки, таких как автоматизация тестирования или непрерывная интеграция/непрерывное развертывание (CI/CD). Для автоматизации этих задач при включенном SAML вам необходим способ получения и обновления токенов OAuth2 без необходимости копирования/вставки пароля из браузера.

О пользователях машины

Apigee Edge поддерживает машинных пользователей в вашей организации с поддержкой SAML. Машинные пользователи используются исключительно для автоматизации и не имеют прямого доступа со стороны человека.

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

Этапы автоматизации процесса генерации токенов

Для автоматизации процесса генерации токенов:

Шаг Описание
1 Создайте пользователя машины в вашей зоне идентификации SAML.
2 Назначьте необходимые роли пользователю компьютера в вашей организации Edge.
3 Получите токены OAuth2 пользователей машины.

Видео: Посмотрите короткое видео, чтобы узнать, как автоматизировать доступ к API Apigee Edge с помощью учетных данных машинного пользователя.

Управление пользователями машин для зон идентификации SAML.

Apigee предоставляет интерфейс командной строки (CLI) для управления учетными записями пользователей машин. Пошаговое описание использования CLI для управления учетными записями пользователей машин приведено в следующих разделах.

Используйте командную строку.

Чтобы использовать интерфейс командной строки управления пользователями машины, сначала загрузите и распакуйте следующий файл: usermgmt.tar.gz (1)

Формат вызова интерфейса командной строки следующий:

usermgmt_platform [command] [flags]

В таблице ниже приведено краткое описание поддерживаемых платформ и соответствующая команда для вызова интерфейса командной строки управления пользователями компьютера. (Исполняемые файлы находятся в каталоге usermgmt .)

Платформа 32-битный 64-бит
Linux usermgmt_linux_386 usermgmt_linux_amd64
Мак usermgmt_darwin_386 usermgmt_darwin_amd64
Windows usermgmt_windows_386 usermgmt_windows_amd64

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

Командование Более подробная информация
create Создайте пользователя машины в зоне идентификации.
delete Удаление пользователя машины в зоне идентификации
help Получите помощь по использованию командной строки.
list Перечислите всех пользователей машин в зоне идентификации.
reset Сбросить пароль для пользователя компьютера в зоне идентификации.

При желании вы можете передать один из следующих флагов для отображения справки по указанной команде: -h или --help.

Войдите в интерфейс командной строки.

При первом запуске CLI в течение 24 часов вам будет предложено ввести учетные данные вашей учетной записи zoneadmin .

Enter your Apigee credentials
Username: zoneadmin-username
Password: zoneadmin-password
If your user is opted with MFA, enter MFA code. Otherwise press enter to skip.
MFA: mfa-code_or_enter_to_skip

Интерфейс командной строки для управления пользователями компьютера сохраняет токен доступа на вашем локальном компьютере, поэтому вам нужно входить в систему только один раз в 24 часа.

Получите помощь по использованию командной строки.

Отображение информации об использовании CLI осуществляется с помощью команды platform help` . Список поддерживаемых платформ см. в разделе «Использование CLI» .

usermgmt_platform help

Отображается следующая справочная информация:

A command-line interface (CLI) to manage machine user accounts to automate
Apigee identity zone management. Use the CLI to create, list, delete,
and reset the password for machine users.

Usage:
  usermgmt [flags]
  usermgmt [command]

Available Commands:
  create  Creates a machine users in an identity zone.
  delete  Deletes a machine users in an identity zone.
  help    Help about any command
  list    Lists the machine users in an identity zone.
  reset   Resets the password for a machine user in an identity zone.

Flags:
  -h, --help               help for usermgmt

Use "usermgmt [command] --help" for more information about a command.

Чтобы отобразить справку по конкретной команде, передайте в командной строке как саму команду, так и флаг -h или --help .

Например, чтобы получить справку по команде list:

usermgmt_platform list -h

Отображается следующая справочная информация:

Lists the machine users in an identity zone.

Usage:
  usermgmt list [flags]

Flags:
  -h, --help   help for list

Создайте пользователя машины в зоне идентификации.

Создайте пользователя компьютера в зоне идентификации с помощью команды platform . Список поддерживаемых платформ см. в разделе «Использование CLI» .

  1. Введите следующую команду:
    usermgmt_platform create

    Отображается список зон идентификации:

    myzone1
    myzone2
  2. В появившемся окне введите название зоны:
    Enter a zone name: myzone1
  3. Введите имя пользователя для компьютера:
    Create a Machine User
    Username: machineuser1@mycompany.com
  4. Введите пароль для пользователя компьютера. Повторно введите пароль при появлении соответствующего запроса.
    Password: password
    Re-enter password: password 

    Пользователь создан.

    Created machine user machineuser1@mycompany.com

Перечислите всех пользователей машин в зоне идентификации.

Вывести список всех пользователей компьютера в зоне идентификации можно с помощью команды platform . Список поддерживаемых платформ см. в разделе «Использование CLI» .

  1. Введите следующую команду:
    usermgmt_platform list
    Отображается список зон идентификации:
    myzone1
    myzone2
  2. В появившемся окне введите название зоны:
    Enter a zone name: myzone1

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

    Machine users in the zone:
    machineuser1@mycompany.com
        

Сбросить пароль для пользователя компьютера в зоне идентификации.

Сбросьте пароль пользователя компьютера в зоне идентификации с помощью команды platform reset . Список поддерживаемых платформ см. в разделе «Использование CLI» .

  1. Введите следующую команду:
    usermgmt_platform reset

    Отображается список зон идентификации:

    myzone1
    myzone2
  2. В появившемся окне введите название зоны:
    Enter a zone name: myzone1
  3. Введите имя пользователя компьютера, для которого вы хотите сбросить пароль:
    Reset User Password
    Enter the username for the machine user
    Username: machineuser1@mycompany.com
  4. Введите новый пароль для пользователя компьютера. Повторно введите пароль при появлении соответствующего запроса.
    Enter the new password: password
    Re-enter password: password

    Пароль сброшен.

    Reset password for machine user machineuser1@mycompany.com

Удаление пользователя машины в зоне идентификации

Удалите пользователя компьютера в зоне идентификации с помощью команды platform delete` . Список поддерживаемых платформ см. в разделе «Использование CLI» .

  1. Введите следующую команду:
    usermgmt_platform delete
    Отображается список зон идентификации:
    myzone1
    myzone2
  2. В появившемся окне введите название зоны:
    Enter a zone name: myzone1
  3. Введите имя пользователя компьютера, которого вы хотите удалить:
    Delete User
    Enter the username for the machine user
    Username: machineuser1@mycompany.com 

    Пользователь компьютера удален.

    Deleted user machineuser1@mycompany.com

Назначьте необходимые роли пользователю компьютера в вашей организации Edge.

С помощью пользовательского интерфейса добавьте пользователя компьютера в вашу организацию Edge с поддержкой SAML и назначьте ему необходимые роли (например, администратора организации), как описано в разделе «Добавление пользователей» .

Получите токены OAuth2 пользователя машины.

Вы можете автоматизировать процесс генерации токенов и управлять кэшированием токенов для пользователей машин с помощью утилит acurl (1) и get_token (1) , как описано в OAuth2 для пользователей машин и Пользователи машин в зонах SAML .

Чтобы получить токены OAuth2 пользователя машины вручную с помощью curl :

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

    Предупреждение: Используйте внутренний Инструмент кодирования URL-адресов, гарантирующий, что учетные данные пользователя компьютера не будут скомпрометированы.

  2. Для генерации начальных токенов доступа и обновления вызовите конечную точку для токенов SAML, как показано в следующем примере:
    curl -H "Content-Type: application/x-www-form-urlencoded;charset=utf-8" \
      -H "accept: application/json;charset=utf-8" \
      -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \
      https://zoneName.login.apigee.com/oauth/token -s \
      -d 'grant_type=password&username=machineusername&password=machineuserpassword'

    Для авторизации передайте зарезервированные учетные данные клиента OAuth2, ZWRnZWNsaTplZGdlY2xpc2VjcmV0 , в заголовке Authorization . Вызов выводит токены доступа и обновления в stdout .

  3. Передайте токен доступа в вызов API управления Edge в качестве заголовка Bearer:
    curl -H "Authorization: Bearer ACCESS_TOKEN" \
      https://api.enterprise.apigee.com/v1/organizations/orgName
  4. Когда срок действия токена доступа истекает, вы можете обновить его, отправив токен обновления на конечную точку токена SAML, как показано в следующем примере:
    curl -H "Content-Type:application/x-www-form-urlencoded;charset=utf-8" \
      -H "Accept: application/json;charset=utf-8" \
      -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \
      https://zoneName.login.apigee.com/oauth/token \
      -d 'grant_type=refresh_token&refresh_token=REFRESH_TOKEN'

(1) Авторское право 2023 Google LLC
Инструменты usermgmt , acurl и get_token предоставляются в качестве «программного обеспечения» в соответствии с соглашением, регулирующим использование вами платформы Google Cloud Platform, включая условия предоставления услуг, доступные по адресу https://cloud.google.com/terms/service-terms .