Автоматизируйте задачи для внешних ВПЛ

При использовании внешнего поставщика идентификации (IDP) с Edge API процесс получения токенов доступа и обновления OAuth2 от этого поставщика называется потоком ввода пароля . В рамках потока ввода пароля вы используете браузер для получения одноразового пароля, который затем используется для получения токенов OAuth2.

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

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

Существует два способа создания пользователя машины для организации, поддерживающей IDP:

Каждый из этих методов описан в следующих разделах.

Невозможно создать пользователя для машины в организациях, в которых не включен внешний поставщик идентификационных данных (IDP).

Создайте пользователя на компьютере с помощью apigee-ssoadminapi.sh

Используйте утилиту apigee-ssoadminapi.sh для создания пользователя машины в организации с поддержкой IDP. Дополнительные сведения см. в разделе «Использование apigee-ssoadminapi.sh» . Вы можете создать одного пользователя машины, который будет использоваться всеми вашими организациями, или создать отдельного пользователя машины для каждой организации.

Пользователь машины создается и хранится в хранилище данных Edge, а не в вашем поставщике идентификации (IDP). Поэтому вы не несете ответственности за поддержание учетной записи пользователя машины с помощью пользовательского интерфейса Edge и API управления Edge.

При создании пользователя компьютера необходимо указать адрес электронной почты и пароль. После создания пользователя компьютера вы назначаете его одной или нескольким организациям.

Для создания пользователя на компьютере с помощью apigee-ssoadminapi.sh :

  1. Для создания пользователя на этом компьютере используйте следующую команду apigee-ssoadminapi.sh :
    apigee-ssoadminapi.sh saml machineuser add --admin SSO_ADMIN_NAME \
      --secret SSO_ADMIN_SECRET --host Edge_SSO_IP_or_DNS \
      -u machine_user_email -p machine_user_password

    Где:

    • SSO_ADMIN_NAME — это имя пользователя администратора, определенное свойством SSO_ADMIN_NAME в конфигурационном файле, используемом для настройки модуля Apigee SSO. По умолчанию используется ssoadmin .
    • SSO_ADMIN_SECRET — это пароль администратора, указанный в свойстве SSO_ADMIN_SECRET в конфигурационном файле.

      В этом примере вы можете опустить значения для --port и --ssl поскольку модуль apigee-sso использует значения по умолчанию: 9099 для --port и http для --ssl . Если в вашей системе эти значения по умолчанию не используются, укажите их соответствующим образом.

  2. Войдите в пользовательский интерфейс Edge и добавьте адрес электронной почты пользователя компьютера в вашу организацию, а затем назначьте пользователю компьютера необходимую роль. Дополнительные сведения см. в разделе «Добавление глобальных пользователей» .

Создайте пользователя машины с помощью API управления Edge.

Создать пользователя машины можно с помощью API управления Edge, а не с помощью утилиты apigee-ssoadminapi.sh .

Для создания пользователя машины с помощью API управления :

  1. Для получения токена для пользователя ssoadmin , имени пользователя административной учетной записи для apigee-sso , используйте следующую команду curl :
    curl "http://Edge_SSO_IP_DNS:9099/oauth/token" -i -X POST \
      -H 'Accept: application/json' / -H 'Content-Type: application/x-www-form-urlencoded' \
      -d "response_type=token" -d "grant_type=client_credentials" \
      --data-urlencode "client_secret=SSO_ADMIN_SECRET" \
      --data-urlencode "client_id=ssoadmin"

    Где SSO_ADMIN_SECRET — это пароль администратора, который вы установили при установке apigee-sso как указано в свойстве SSO_ADMIN_SECRET в конфигурационном файле.

    Эта команда отображает токен, необходимый для выполнения следующего вызова.

  2. Для создания пользователя на этом компьютере используйте следующую команду curl , передав токен, полученный на предыдущем шаге:
    curl "http://edge_sso_IP_DNS:9099/Users" -i -X POST \
      -H "Accept: application/json" -H "Content-Type: application/json" \
      -d '{"userName" : "machine_user_email", "name" :
        {"formatted":"DevOps", "familyName" : "last_name", "givenName" :
        "first_name"}, "emails" : [ {"value" :
        "machine_user_email", "primary" : true } ], "active" : true,
        "verified" : true, "password" : "machine_user_password" }' \
      -H "Authorization: Bearer token"

    Пароль пользователя компьютера понадобится вам на последующих этапах.

  3. Войдите в пользовательский интерфейс Edge.
  4. Добавьте адрес электронной почты пользователя компьютера в вашу организацию и назначьте пользователю компьютера необходимую роль. Дополнительные сведения см. в разделе «Добавление глобальных пользователей» .

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

Используйте API Edge для получения и обновления токенов OAuth2, передавая учетные данные пользователя машины вместо пароля.

Для получения токенов OAuth2 для пользователя машины:

  1. Для генерации начальных и обновляющих токенов используйте следующий вызов API:
    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 \
      http://Edge_SSO_IP_DNS:9099/oauth/token -s \
      -d 'grant_type=password&username=m_user_email&password=m_user_password'

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

  2. Передайте токен доступа в вызов API управления Edge в качестве заголовка Bearer , как показано в следующем примере:
    curl -H "Authorization: Bearer access_token" \
      http://MS_IP_DNS:8080/v1/organizations/org_name

    Где org_name — это название организации, в которой находится пользователь компьютера.

  3. Для последующего обновления токена доступа используйте следующий вызов, включающий токен обновления:
    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 \
      http://edge_sso_IP_DNS:9099/oauth/token \
      -d 'grant_type=refresh_token&refresh_token=refreshToken'