Edge для частного облака v4.18.01
При использовании 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 машинный пользователь добавить --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 . Если ваша установка не использует эти значения по умолчанию, укажите их соответствующим образом.
- Войдите в пользовательский интерфейс Edge, добавьте адрес электронной почты пользователя компьютера в свои организации и назначьте пользователю компьютера необходимую роль. Дополнительную информацию см. в разделе Добавление глобальных пользователей .
Получить и обновить токен пользователя компьютера
Используйте Edge API для получения и обновления токенов OAuth2, передавая учетные данные пользователя компьютера вместо пароля.
Чтобы получить токены OAuth2 для пользователя компьютера:
- Используйте следующий вызов API для создания токенов первоначального доступа и обновления:
> curl -H "Тип контента: application/x-www-form-urlencoded;charset=utf-8" /
-H "принять: application/json;charset=utf-8" /
-H "Авторизация: базовая ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST /
http:// edge_sso_IP_DNS :9099/oauth/токен -s/
-d 'grant_type=пароль&имя_пользователя= m_user_email &пароль= m_user_password '
Вызов выводит на экран токены доступа и обновления. Сохраните жетоны для дальнейшего использования. - Передайте токен доступа в вызов API управления Edge в качестве заголовка Bearer:
> curl -H "Авторизация: токен доступа на предъявителя" http:// ms_IP_DNS :8080/v1/organizations/ orgName
где orgName — название организации, в которой находится пользователь компьютера. - Чтобы позже обновить токен доступа, используйте следующий вызов, включающий токен обновления:
> curl -H "Content-Type:application/x-www-form-urlencoded;charset=utf-8" /
-H "Принять: application/json;charset=utf-8" /
-H "Авторизация: базовая ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST /
http:// edge_sso_IP_DNS :9099/oauth/токен/
-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 'Принять: application/json' / -H 'Тип контента: 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, чтобы создать пользователя компьютера, передав токен, полученный на предыдущем шаге:
> завиток "http:// edge_sso_IP_DNS :9099/Users" -i -X POST /
-H «Принять: приложение/json» -H «Тип контента: приложение/json» /
-d '{"userName": " machine_user_email ", "name": {"formatted":"DevOps", "familyName": " last_name ", "givenName": " first_name "}, "emails": [ {"значение ": " machine_user_email ", "основной": true } ], "active": true, "verified": true, "password": " machine_user_password " }' /
-H "Авторизация: токен на предъявителя"
На последующих шагах вам понадобится пароль пользователя компьютера. - Войдите в пользовательский интерфейс Edge, добавьте адрес электронной почты пользователя компьютера в свои организации и назначьте пользователю компьютера необходимую роль. Дополнительную информацию см. в разделе Добавление глобальных пользователей .