Базовая аутентификация — это один из способов аутентификации при вызовах API управления Edge. Например, вы можете сделать следующий запрос curl
к API управления Edge, чтобы получить доступ к информации о вашей организации:
curl -u USER_NAME:PASSWORD https://MS_IP_DNS:8080/v1/organizations/ORG_NAME
В этом примере вы используете параметр curl
-u
для передачи учетных данных базовой аутентификации. Альтернативно вы можете передать токен OAuth2 в заголовке Bearer
для выполнения вызовов API управления Edge, как показано в следующем примере:
curl -H "Authorization: Bearer ACCESS_TOKEN" https://MS_IP_DNS:8080/v1/organizations/ORG_NAME
После включения внешнего IDP для аутентификации вы можете при желании отключить базовую аутентификацию. Если вы отключите базовую аутентификацию, все сценарии (такие как Maven, оболочка и apigeetool
), использующие вызовы API управления Edge, поддерживающие базовую аутентификацию, больше не будут работать. Необходимо обновить все вызовы API и сценарии, использующие базовую аутентификацию для передачи токенов доступа OAuth2 в заголовке Bearer
.
Получайте и обновляйте токены с помощью get_token
Утилита get_token
заменяет ваши учетные данные базовой аутентификации (а в некоторых случаях и пароль) на токен доступа и обновления OAuth2. Утилита get_token
принимает ваши учетные данные и возвращает действительный токен доступа. Если токен можно обновить, утилита обновляет и возвращает его. Если срок действия токена обновления истечет, будут запрошены учетные данные пользователя.
Утилита get_token
сохраняет токены на диске, готовые к использованию при необходимости. Он также выводит действительный токен доступа на stdout
. Оттуда вы можете использовать расширение браузера, такое как Postman, или встроить его в переменную среды для использования в curl
.
Чтобы получить токен доступа OAuth2 для выполнения вызовов API управления Edge:
- Загрузите пакет
sso-cli
:curl http://EDGE_SSO_IP_DNS:9099/resources/scripts/sso-cli/ssocli-bundle.zip -o "ssocli-bundle.zip"
Где EDGE_SSO_IP_DNS — это IP-адрес или DNS-имя компьютера, на котором размещен модуль Apigee SSO. Если вы настроили TLS в Apigee SSO, используйте
https
и правильный номер порта TLS. - Разархивируйте пакет
ssocli-bundle.zip
, как показано в следующем примере:unzip ssocli-bundle.zip
- Установите
get_token
в/usr/local/bin
, как показано в следующем примере:./install -b PATH
Опция
-b
указывает другое местоположение. - Задайте для переменной среды
SSO_LOGIN_URL
URL-адрес входа в следующую форму:export SSO_LOGIN_URL="http://EDGE_SSO_IP_DNS:9099"
Где EDGE_SSO_IP_DNS — это IP-адрес компьютера, на котором размещен модуль Apigee SSO. Если вы настроили TLS в Apigee SSO, используйте
https
и правильный номер порта TLS. - (Только для SAML) В браузере перейдите по следующему URL-адресу, чтобы получить одноразовый код доступа:
http://EDGE_SSO_IP_DNS:9099/passcode
Если вы настроили TLS в Apigee SSO, используйте
https
и правильный номер порта TLS.Этот запрос возвращает одноразовый код доступа, который остается действительным до тех пор, пока вы не обновите этот URL-адрес для получения нового кода доступа или не используете код доступа с
get_token
для создания токена доступа.Обратите внимание, что вы можете использовать пароль только при аутентификации с помощью SAML IDP. Вы не можете использовать пароль для аутентификации с помощью LDAP IDP.
- Вызовите
get_token
, чтобы получить токен доступа OAuth2, как показано в следующем примере:get_token -u EMAIL_ADDRESS
Где EMAIL_ADDRESS — это адрес электронной почты пользователя Edge.
(Только для SAML) Введите код доступа в командной строке в дополнение к адресу электронной почты, как показано в следующем примере:
get_token -u EMAIL_ADDRESS -p PASSCODE
Утилита
get_token
получает токен доступа OAuth2, выводит его на экран и записывает его и токен обновления в~/.sso-cli
. - Передайте токен доступа в вызов API управления Edge в качестве заголовка
Bearer
, как показано в следующем примере:curl -H "Authorization: Bearer ACCESS_TOKEN" https://MS_IP:8080/v1/organizations/ORG_NAME
- После того как вы впервые получите новый токен доступа, вы можете получить токен доступа и передать его вызову API с помощью одной команды, как показано в следующем примере:
header=`get_token` && curl -H "Authorization: Bearer $header" https://MS_IP:8080/v1/o/ORG_NAME
При использовании этой формы команды, если срок действия токена доступа истек, он автоматически обновляется до тех пор, пока не истечет срок действия токена обновления.
(Только для SAML) По истечении срока действия токена обновления get_token
запросит новый код доступа. Прежде чем вы сможете создать новый токен доступа OAuth, вам необходимо перейти по URL-адресу, показанному выше на шаге 3, и создать новый пароль.
Используйте API управления для получения и обновления токенов.
Использование безопасности OAuth2 с API управления Apigee Edge показывает, как использовать API управления Edge для получения и обновления токенов. Вы также можете использовать вызовы Edge API для получения токенов, сгенерированных на основе утверждений SAML.
Единственное различие между вызовами API, описанными в разделе «Использование безопасности OAuth2 с API управления Apigee Edge», заключается в том, что URL-адрес вызова должен ссылаться на имя вашей зоны. Кроме того, для создания исходного токена доступа с помощью SAML IDP необходимо указать пароль, как показано на шаге 3 процедуры выше.
Для авторизации передайте зарезервированные учетные данные клиента OAuth2 в заголовке Authorization
. Вызов выводит на экран токены доступа и обновления.
Получить токен доступа
(LDAP) Используйте следующий вызов 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=USER_EMAIL&password=USER_PASSWORD'
(SAML) Используйте следующий вызов 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 \ https://EDGE_SSO_IP_DNS:9099/oauth/token -s \ -d 'grant_type=password&response_type=token&passcode=PASSCODE'
Обратите внимание, что для аутентификации с помощью IDP SAML требуется временный код доступа, тогда как для IDP LDAP этого не требуется.
Обновить токен доступа
Чтобы позже обновить токен доступа, используйте следующий вызов, включающий токен обновления:
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 \ https://EDGE_SSO_IP_DNS:9099/oauth/token \ -d 'grant_type=refresh_token&refresh_token=REFRESH_TOKEN'