Базовая аутентификация – это один из способов аутентификации при вызовах Edge Management API.
Например, вы можете отправить следующий запрос curl к Edge Management API, чтобы получить доступ к информации об организации:
curl -u USER_NAME:PASSWORD http://MS_IP_DNS:8080/v1/organizations/ORG_NAME
В этом примере для передачи учетных данных базовой аутентификации используется параметр curl -u. Вы также можете передать токен OIDC/OAuth2 в заголовке Authorization: Bearer, чтобы выполнить вызовы Edge Management API, как показано в следующем примере:
curl -H "Authorization: Bearer ACCESS_TOKEN" http://MS_IP_DNS:8080/v1/organizations/ORG_NAME
После того как вы включите внешний поставщик идентификационной информации для аутентификации, вы можете отключить базовую аутентификацию. Если вы отключите базовую аутентификацию, все скрипты (например, Maven, shell и apigeetool), которые используют вызовы Edge Management API с поддержкой базовой аутентификации, перестанут работать. Вам необходимо обновить все вызовы API и скрипты, в которых используется базовая аутентификация, чтобы передавать токены доступа OAuth2 в заголовке Bearer.
Как получить и обновить токены с помощью get_token
Утилита get_token использует стандартный процесс получения кода устройства OAuth 2.0 для получения токенов доступа и токенов обновления OIDC/OAuth2. Утилита предложит вам перейти по URL в браузере, чтобы пройти аутентификацию через внешнего поставщика идентификационной информации (или локальный LDAP), а затем автоматически разблокирует терминал, чтобы напечатать действительный токен доступа.
Утилита get_token безопасно сохраняет токены на диске в ~/.sso-cli/ и готова к использованию при необходимости. Он также выводит действительный токен доступа в stdout. Если существующий токен можно обновить, утилита сделает это автоматически. Если срок действия токена обновления истечет, будет инициирован новый процесс авторизации на основе браузера.
Чтобы получить токен доступа OAuth2 для вызовов Edge Management API, выполните следующие действия:
- Утилиты
get_tokenиacurlпредустановлены на узле, на котором размещена система единого входа Apigee (узел OpenLDAP), по следующему пути:/opt/apigee/apigee-openldap/bin/ - При необходимости задайте для переменной среды
SSO_LOGIN_URLURL издателя SSO в следующем формате:export SSO_LOGIN_URL="http://EDGE_SSO_IP_DNS:9099"
где EDGE_SSO_IP_DNS – IP-адрес или DNS-имя компьютера, на котором размещена система единого входа Apigee. Если вы настроили TLS в Apigee SSO, используйте
httpsи правильный номер порта TLS. - Вызовите
get_tokenс адресом электронной почты, чтобы запустить процесс получения кода устройства OAuth 2.0:/opt/apigee/apigee-openldap/bin/get_token -u EMAIL_ADDRESS
где EMAIL_ADDRESS – адрес электронной почты пользователя Edge.
- Утилита приостановит работу и выведет в терминал URL и восьмизначный код устройства:
Please visit: http://EDGE_SSO_IP_DNS:9099/device And enter code: ABCD-EFGH
- Откройте указанный URL в браузере, введите код устройства и нажмите Отправить. Вы будете перенаправлены на внешний сервис идентификации или локальную форму LDAP, чтобы пройти аутентификацию и одобрить запрос.
- После успешной аутентификации в браузере вернитесь в терминал. Утилита
get_tokenавтоматически обнаружит одобрение, получит токен доступа OAuth2, выведет его на экран и надежно сохранит в кеше. - Передайте токен доступа в вызов Edge Management API с помощью утилиты
acurl, которая автоматически считывает кешированный токен и вставляет заголовок Bearer:/opt/apigee/apigee-openldap/bin/acurl http://MS_IP_DNS:8080/v1/organizations/ORG_NAME
Вы также можете передать токен вручную, используя стандартный тег
curl:curl -H "Authorization: Bearer ACCESS_TOKEN" \ http://MS_IP_DNS:8080/v1/organizations/ORG_NAME
Как получать и обновлять токены с помощью API управления
Удалена устаревшая конечная точка /passcode. Поэтому для первоначальной аутентификации пользователям необходимо использовать утилиту get_token, как описано выше, чтобы запустить обработку кода устройства OAuth 2.0 на основе браузера.
Если вы пишете скрипты или конвейеры CI/CD, которые не могут взаимодействовать с браузером, ознакомьтесь с разделом Как автоматизировать задачи с помощью машинных пользователей. Автоматизированные пользователи или приложения с действительными учетными данными могут использовать стандартные вызовы API для получения и обновления токена.