Edge для частного облака v4.18.05
При использовании SAML с Edge API процесс, который вы используете для получения токенов доступа и обновления OAuth2 из утверждения SAML, называется потоком пароля. При использовании потока пароля вы используете браузер для получения одноразового кода доступа, который затем используете для получения токенов OAuth2.
Однако ваша среда разработки может поддерживать автоматизацию общих задач разработки, таких как автоматизация тестирования или непрерывная интеграция/непрерывное развертывание (CI/CD). Чтобы автоматизировать эти задачи при включенном SAML, вам нужен способ получать и обновлять токены OAuth2 без необходимости копировать/вставлять код доступа из браузера.
Edge поддерживает автоматическую генерацию токенов с помощью пользователей компьютеров. Пользователь компьютера может получить токены OAuth2 без необходимости указывать пароль. Это означает, что вы можете полностью автоматизировать процесс получения и обновления токенов OAuth2 с помощью API управления Edge.
Создать пользователя машины
Используйте утилиту apigee-ssoadminapi.sh
, чтобы создать пользователя компьютера для организации SAML. Дополнительную информацию см. в разделе «Использование apigee-ssoadminapi.sh» . Вы можете создать одного пользователя компьютера, который будет использоваться всеми вашими организациями, или создать отдельного пользователя компьютера для каждой организации.
Пользователь компьютера создается и сохраняется в хранилище данных Edge, а не в вашем поставщике удостоверений SAML. Таким образом, вы не несете ответственности за поддержку пользователя компьютера с помощью Edge Ui и API управления Edge.
При создании пользователя компьютера необходимо указать адрес электронной почты и пароль. После создания пользователя компьютера вы назначаете его одной или нескольким организациям.
Чтобы создать пользователя машины:
- Используйте следующую команду
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
. Если ваша установка не использует эти значения по умолчанию, укажите их соответствующим образом. - SSO_ADMIN_NAME — это имя пользователя администратора, определенное свойством
- Войдите в пользовательский интерфейс 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/orgName
Где orgName — это имя организации, в которой находится пользователь компьютера.
- Чтобы позже обновить токен доступа, используйте следующий вызов, включающий токен обновления:
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'
Создайте пользователя компьютера с помощью API управления Edge.
Вы можете создать пользователя компьютера с помощью API управления Edge вместо использования утилиты apigee-ssoadminapi.sh
.
Чтобы создать пользователя машины:
- Используйте следующую команду
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, добавьте адрес электронной почты пользователя компьютера в свои организации и назначьте пользователю компьютера необходимую роль. Дополнительную информацию см. в разделе Добавление глобальных пользователей .