Использование SAML с автоматизированными задачами

Edge for Private Cloud v4.18.01

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

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

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

Как создать пользователя компьютера

Используйте утилиту apigee-ssoadminapi.sh, чтобы создать пользователя компьютера для организации SAML. Подробнее об использовании apigee-ssoadminapi.sh… Вы можете создать одного пользователя-машину для всех организаций или отдельного пользователя-машину для каждой организации.

Пользователь компьютера создается и хранится в хранилище данных Edge, а не у поставщика идентификационной информации SAML. Поэтому вам не нужно поддерживать пользователя-машину с помощью Edge UI и Edge Management API.

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

Чтобы создать пользователя-машину, выполните следующие действия:

  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 в файле конфигурации, который используется для настройки модуля Edge SSO. Значение по умолчанию – ssoadmin.
    • SSO_ADMIN_SECRET – пароль администратора, указанный в свойстве SSO_ADMIN_SECRET в файле конфигурации.

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

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

Используйте Edge API, чтобы получать и обновлять токены 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. Передайте токен доступа в вызов Edge Management API в качестве заголовка Bearer:
    > curl -H "Authorization: Bearer access_token" http://ms_IP_DNS:8080/v1/organizations/orgName

    где orgName – название организации, в которой находится пользователь компьютера.
  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'

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

Вы можете создать пользователя компьютера с помощью Edge management API вместо утилиты apigee-ssoadminapi.sh. Чтобы создать пользователя компьютера, выполните следующие действия:

  1. Используйте следующую команду cURL, чтобы получить токен для пользователя ssoadmin, имени пользователя аккаунта администратора для apigee-sso:
    > 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, добавьте адрес электронной почты пользователя компьютера в организации и назначьте пользователю компьютера необходимую роль. Подробнее о том, как добавлять глобальных пользователей…