Базовая аутентификация – это один из способов аутентификации при вызовах Edge Management API.
Например, чтобы получить информацию о своей организации, вы можете отправить в Edge Management API следующий запрос curl:
curl -u userName:pWord https://ms_IP_DNS:8080/v1/organizations/orgName
В этом примере для передачи учетных данных базовой аутентификации используется параметр curl -u. Вы также можете передать токен OAuth2 в заголовке Bearer, чтобы выполнить вызовы Edge Management API, как показано в следующем примере:
curl -H "Authorization: Bearer access_token" https://ms_IP_DNS:8080/v1/organizations/orgName
После включения внешнего поставщика идентификационной информации для аутентификации вы можете отключить базовую аутентификацию. Если вы отключите базовую аутентификацию, все скрипты (например, Maven, shell и apigeetool), которые используют вызовы Edge Management API с поддержкой базовой аутентификации, перестанут работать. Вам необходимо обновить все вызовы API и скрипты, в которых используется базовая аутентификация, чтобы передавать токены доступа OAuth2 в заголовке Bearer.
Как получить и обновить токены с помощью get_token
Утилита get_token обменивает ваши учетные данные базовой аутентификации (и в некоторых случаях код доступа) на токен доступа и токен обновления OAuth2. Утилита get_token принимает ваши учетные данные и возвращает действительный токен доступа. Если токен можно обновить, утилита обновляет и возвращает его. Если срок действия токена обновления истечет, пользователю будет предложено ввести учетные данные.
Утилита get_token сохраняет токены на диске, чтобы их можно было использовать при необходимости. Кроме того, в stdout будет выведен действительный токен доступа. Затем вы можете использовать расширение браузера, например Postman, или встроить его в переменную среды для использования в curl.
Чтобы получить токен доступа OAuth2 для вызовов Edge Management API, выполните следующие действия:
- Скачайте пакет
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, используйте
httpsи правильный номер порта TLS. - Распакуйте пакет
ssocli-bundle.zip, как показано в примере ниже.unzip ssocli-bundle.zip
- Установите
get_tokenв/usr/local/bin, как показано в следующем примере:./install -b path
Параметр
-bпозволяет указать другое местоположение. - Задайте для переменной среды
SSO_LOGIN_URLURL входа в следующем формате:export SSO_LOGIN_URL="http://edge_sso_IP_DNS:9099"
где edge_sso_IP_DNS – IP-адрес компьютера, на котором размещен модуль системы единого входа Apigee. Если вы настроили TLS в системе единого входа Apigee, используйте
httpsи правильный номер порта TLS. - (Только для SAML) В браузере перейдите по следующему URL, чтобы получить одноразовый код доступа:
http://edge_sso_IP_DNS:9099/passcode
Если вы настроили TLS в системе единого входа Apigee, используйте
httpsи правильный номер порта TLS.Этот запрос возвращает одноразовый код доступа, который остается действительным, пока вы не обновите URL, чтобы получить новый код, или не используете код с
get_tokenдля создания токена доступа.Обратите внимание, что код доступа можно использовать только при аутентификации с помощью поставщика идентификационной информации SAML. Вы не можете использовать код доступа для аутентификации с помощью поставщика идентификационной информации LDAP.
- Вызовите
get_token, чтобы получить токен доступа OAuth2, как показано в примере ниже.get_token -u emailAddress
где emailAddress – адрес электронной почты пользователя Edge.
(Только SAML) Введите в командной строке код доступа в дополнение к адресу электронной почты, как показано в примере ниже.
get_token -u emailAddress -p passcode
Утилита
get_tokenполучает токен доступа OAuth2, выводит его на экран и записывает его и токен обновления в файл~/.sso-cli. - Передайте токен доступа в вызов Edge Management API в качестве заголовка
Bearer, как показано в следующем примере:curl -H "Authorization: Bearer access_token" https://ms_IP:8080/v1/organizations/orgName
- После того как вы впервые получите новый токен доступа, вы сможете получать его и передавать в вызов API одной командой, как показано в примере ниже.
header=`get_token` && curl -H "Authorization: Bearer $header" https://ms_IP:8080/v1/o/orgName
Если токен доступа устарел, он будет автоматически обновлен, пока не истечет срок действия токена обновления.
(Только для SAML) После истечения срока действия токена обновления get_token запрашивает новый код доступа. Чтобы сгенерировать новый токен доступа OAuth, перейдите по URL, указанному на шаге 3, и создайте новый код доступа.
Используйте Management API, чтобы получать и обновлять токены.
В статье Использование OAuth2 с Apigee Edge Management API рассказывается, как использовать Edge Management API для получения и обновления токенов. Вы также можете использовать вызовы Edge API, чтобы получать токены, сгенерированные из утверждений SAML.
Единственное различие между вызовами API, описанными в статье Использование безопасности OAuth2 с API управления Apigee Edge, заключается в том, что URL вызова должен ссылаться на название вашей зоны. Кроме того, для создания начального токена доступа с поставщиком идентификационной информации SAML необходимо включить код доступа, как показано на шаге 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 / https://edge_sso_IP_DNS:9099/oauth/token -s / -d 'grant_type=password&response_type=token'
(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'
Обратите внимание, что для аутентификации с помощью поставщика идентификационной информации SAML требуется временный код доступа, а для поставщика идентификационной информации 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=refreshToken'