Edge для частного облака v4.18.05
Базовая аутентификация — это один из способов аутентификации при вызовах API управления Edge. Например, вы можете сделать следующий запрос cURL к API управления Edge, чтобы получить доступ к информации о вашей организации:
curl -u userName:pWord https://ms_IP_DNS:8080/v1/organizations/orgName
В этом примере вы используете опцию cURL -u для передачи учетных данных базовой аутентификации. Альтернативно вы можете передать токен OAuth2 в заголовке Bearer для выполнения вызовов API управления Edge. Например:
curl -H "Authorization: Bearer access_token" https://ms_IP_DNS:8080/v1/organizations/orgName
После включения SAML вы можете при желании отключить базовую аутентификацию. если вы отключите базовую аутентификацию, все сценарии (скрипты Maven, сценарии оболочки, apigeetool и т. д.), которые полагаются на вызовы API управления Edge, поддерживающие базовую аутентификацию, больше не будут работать. Необходимо обновить все вызовы API и сценарии, использующие базовую аутентификацию для передачи токенов доступа OAuth2 в заголовке носителя.
Использование get_token для получения и обновления токенов
Утилита get_token обменивает ваши учетные данные базовой аутентификации и пароль на токен доступа и обновления OAuth2. Утилита get_token принимает ваши учетные данные и печатает действительный токен доступа. Если токен можно обновить, он обновит его и распечатает. Если срок действия токена обновления истечет, будут запрошены учетные данные пользователя.
Утилита get_token сохраняет токены на диске, готовые к использованию при необходимости. Он также печатает действительный токен доступа на стандартный вывод. Оттуда вы можете использовать Postman или встроить его в переменную среды для использования в Curl.
Следующая процедура описывает, как использовать get_token для получения токена доступа 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-имени компьютера, на котором размещен модуль Edge SSO. Если вы настроили TLS для Edge SSO, используйте
https
и правильный номер порта TLS. - Разархивируйте пакет
ssocli-bundle.zip
:unzip ssocli-bundle.zip
- Установите get_token в /usr/local/bin :
> ./install Используйте опцию -b , чтобы указать другое местоположение: > ./install -b путь - Задайте для переменной среды SSO_LOGIN_URL URL-адрес входа в форме:
экспортировать SSO_LOGIN_URL="http:// edge_sso_IP_DNS :9099"
где Edge_sso_IP_DNS — это IP-адрес DNS-имени компьютера, на котором размещен модуль Edge SSO. Если вы настроили TLS для Edge SSO, используйте https и правильный номер порта TLS. - В браузере перейдите по следующему URL-адресу, чтобы получить одноразовый код доступа:
http:// edge_sso_IP_DNS :9099/пароль
Если вы настроили TLS для Edge SSO, используйте https и правильный номер порта TLS.
Примечание . Если вы еще не вошли в систему через своего провайдера удостоверений, вам будет предложено войти в систему.
Этот URL-адрес возвращает одноразовый код доступа, который остается действительным до тех пор, пока вы не обновите этот URL-адрес для получения нового кода доступа или не используете код доступа с get_token для создания токена доступа. - Вызовите get_token , чтобы получить токен доступа OAuth2:
> get_token -u адрес электронной почты
где emailAddress — это адрес электронной почты пользователя Edge. Вам будет предложено ввести одноразовый код доступа, полученный на шаге 3:
Одноразовый код (получите его по адресу https://edge_sso_IP.com/passcode).
Введите пароль, если SAML включен, или нажмите ENTER:
Введите пароль. Утилита get_token получает токен доступа OAuth2, выводит его на экран и записывает его и токен обновления в ~/.sso-cli .
Вы можете ввести пароль в командной строке, используя команду get_token в форме:
> get_token -u адрес электронной почты -p пароль - Передайте токен доступа в вызов API управления Edge в качестве заголовка Bearer:
> curl -H "Авторизация: токен доступа на предъявителя" https:// ms_IP :8080/v1/organizations/ orgName
После того, как вы впервые получите новый токен доступа, вы можете получить токен доступа и передать его вызову API с помощью одной команды, как показано ниже:
> header=`get_token` && curl -H "Авторизация: носитель $header" https:// ms_IP :8080/v1/o/ orgName
При использовании этой формы команды, если срок действия токена доступа истек, он автоматически обновляется до истечения срока действия токена обновления.
По истечении срока действия токена обновления get_token запросит новый пароль. Прежде чем вы сможете создать новый токен доступа OAuth, вам необходимо перейти по URL-адресу, показанному выше на шаге 3, и создать новый код доступа.
Использование API управления для получения и обновления токенов
Использование безопасности OAuth2 с API управления Apigee Edge содержит инструкции, показывающие, как использовать API управления Edge для получения и обновления токенов. Вы также можете использовать вызовы Edge API для токенов, созданных на основе утверждений SAML.
Единственное различие между вызовами API, описанными в разделе «Использование безопасности OAuth2 с API управления Apigee Edge», заключается в том, что URL-адрес вызова должен ссылаться на имя вашей зоны. Кроме того, для создания исходного токена доступа необходимо указать пароль, как показано на шаге 3 процедуры выше.
Например, используйте следующий вызов 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'
Для авторизации передайте зарезервированные учетные данные клиента OAuth2 в заголовке авторизации . Вызов выводит на экран токены доступа и обновления.
Чтобы позже обновить токен доступа, используйте следующий вызов, включающий токен обновления:
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'