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

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

При использовании 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) для управления аккаунтами машинных пользователей. Инструкции по использованию командной строки для управления пользователями машин приведены в следующих разделах.

Как использовать интерфейс командной строки

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

Формат вызова CLI:

usermgmt_platform [command] [flags]

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

Платформа 32-разрядная 64 бит
Linux usermgmt_linux_386 usermgmt_linux_amd64
macOS usermgmt_darwin_386 usermgmt_darwin_amd64
Windows usermgmt_windows_386 usermgmt_windows_amd64

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

Команда Дополнительная информация
create Как создать машинного пользователя в зоне идентификации
delete Как удалить пользователя-машину в зоне идентификации
help Как получить помощь по использованию CLI
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, введите команду usermgmt_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

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

Создайте машинного пользователя в зоне идентификации с помощью команды usermgmt_platform create. Список поддерживаемых платформ приведен в разделе Как использовать 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

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

Чтобы получить список всех пользователей-машин в зоне идентификации, используйте команду usermgmt_platform list. Список поддерживаемых платформ приведен в разделе Использование CLI.

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

    Появится список пользователей машин в зоне идентификации:

    Machine users in the zone:
    machineuser1@mycompany.com
        

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

Сбросьте пароль пользователя машины в зоне идентификации с помощью команды usermgmt_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

Как удалить пользователя-машину в зоне идентификации

Удалите машинного пользователя в зоне идентификации с помощью команды usermgmt_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. © Google LLC, 2023.
Инструменты usermgmt, acurl и get_token предоставляются как "Программное обеспечение" в соответствии с соглашением, регулирующим использование Google Cloud Platform, в том числе условиями использования отдельных сервисов, с которыми можно ознакомиться здесь: https://cloud.google.com/terms/service-terms.