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

Вы просматриваете документацию 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.gz (1).

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

usermgmt_platform [command] [flags]

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

Платформа 32-битный 64-битная
Линукс usermgmt_linux_386 usermgmt_linux_amd64
Мак usermgmt_darwin_386 usermgmt_darwin_amd64
Окна 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

Отобразите информацию об использовании CLI с помощью команды справки usermgmt_ platform . Список поддерживаемых платформ см. в разделе «Использование 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 . Список поддерживаемых платформ см. в разделе «Использование 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 list . Список поддерживаемых платформ см. в разделе «Использование CLI» .

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

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

    Machine users in the zone:
    machineuser1@mycompany.com
        

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

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