При использовании внешнего IDP с Edge API процесс, который вы используете для получения токенов доступа и обновления OAuth2 в результате взаимодействия с IDP, называется потоком пароля . При использовании потока пароля вы используете браузер для получения одноразового кода доступа, который затем используете для получения токенов OAuth2.
Однако ваша среда разработки может поддерживать автоматизацию общих задач разработки, таких как автоматизация тестирования или CI/CD . Чтобы автоматизировать эти задачи, когда включен внешний IDP, вам нужен способ получать и обновлять токены 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
:
- Используйте следующую команду
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
QUESTION/TBD: Does apigee-ssoadminapi.sh also take "ldap" as an argument?
Где:
- SSO_ADMIN_NAME — это имя пользователя администратора, определенное свойством
SSO_ADMIN_NAME
в файле конфигурации, используемом для настройки модуля Apigee SSO. По умолчанию используетсяssoadmin
. - SSO_ADMIN_SECRET — это пароль администратора, указанный в свойстве
SSO_ADMIN_SECRET
в файле конфигурации.В этом примере вы можете опустить значения
--port
и--ssl
поскольку модульapigee-sso
использует значения по умолчанию 9099 для--port
и http для--ssl
. Если ваша установка не использует эти значения по умолчанию, укажите их соответствующим образом.
- SSO_ADMIN_NAME — это имя пользователя администратора, определенное свойством
- Войдите в пользовательский интерфейс Edge, добавьте адрес электронной почты пользователя компьютера в свои организации и назначьте пользователю компьютера необходимую роль. Дополнительную информацию см. в разделе Добавление глобальных пользователей .
Создайте пользователя компьютера с помощью API управления Edge.
Вы можете создать пользователя компьютера с помощью API управления Edge вместо использования утилиты apigee-ssoadminapi.sh
.
Чтобы создать пользователя компьютера с помощью API управления :
- Используйте следующую команду
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
в файле конфигурации.Эта команда отображает токен, который вам понадобится для следующего вызова.
- Используйте следующую команду
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"
На последующих шагах вам понадобится пароль пользователя компьютера.
- Войдите в пользовательский интерфейс Edge.
- Добавьте адрес электронной почты пользователя компьютера в свою организацию и назначьте пользователю компьютера необходимую роль. Дополнительную информацию см. в разделе Добавление глобальных пользователей .
Получение и обновление токенов пользователя компьютера.
Используйте Edge API для получения и обновления токенов OAuth2, передавая учетные данные пользователя компьютера вместо пароля.
Чтобы получить токены OAuth2 для пользователя компьютера:
- Используйте следующий вызов 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'
Сохраните жетоны для дальнейшего использования.
- Передайте токен доступа в вызов API управления Edge в качестве заголовка
Bearer
, как показано в следующем примере:curl -H "Authorization: Bearer access_token" \ http://MS_IP_DNS:8080/v1/organizations/org_name
Где org_name — это название организации, в которой находится пользователь компьютера.
- Чтобы позже обновить токен доступа, используйте следующий вызов, включающий токен обновления:
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'