Apigee предоставляет утилиты get_token и acurl, упрощающие взаимодействие с Apigee SSO и Edge Management API. Эти инструменты автоматически генерируют, кешируют, обновляют и внедряют токены.
Утилиты устанавливаются на узел OpenLDAP в папку /opt/apigee/apigee-openldap/bin/.
Утилита get_token
Утилита get_token отвечает за получение токенов доступа и обновления OIDC/OAuth2. Она поддерживает два основных процесса аутентификации и включает встроенное кеширование токенов.
Процедуры аутентификации
- Поток кода устройства (RFC 8628). Предназначен для аутентификации пользователей через внешнего поставщика идентификационной информации (например, SAML, Okta или OIDC). Если вы передаете только адрес электронной почты (
-u <email>), утилита запускает этот процесс, предлагая вам URL и код для подтверждения в браузере. - Password Grant (ROPC). Предназначен для пользователей безголовых машин и автоматических скриптов. Если вы передаете и имя пользователя, и пароль (
-u <user>:<password>), аутентификация выполняется непосредственно в системе единого входа Apigee без взаимодействия с браузером.
Кеширование и автоматическое обновление токенов
Утилита get_token автоматически управляет жизненным циклом токенов, поэтому вам не нужно вручную отслеживать сроки их действия.
- Проверка кеша. При вызове
get_tokenпроверяет локальный кеш в~/.sso-cli/<username>-token.json. Если действительный токен существует и срок его действия не истек, он будет использован повторно без повторной аутентификации. - Автоматическое обновление. Если срок действия кешированного токена доступа истек, но действительный токен обновления существует, утилита автоматически обменивает токен обновления в Apigee SSO на новый токен доступа.
Переменные среды
При необходимости вы можете настроить поведение get_token, используя следующие переменные среды:
SSO_LOGIN_URL– URL системы единого входа Apigee (по умолчаниюhttp://localhost:9099).CLIENT_ID– идентификатор клиента OAuth2 (по умолчанию:edgecli).CLIENT_SECRET– секретный код клиента OAuth2 (по умолчаниюedgeclisecret).
Утилита acurl
Утилита acurl – это прозрачная оболочка для стандартной утилиты curl. Он гарантирует, что каждый запрос к API содержит действительный токен на предъявителя.
- Разделение аргументов. Утилита извлекает аргумент
-u <user:password>или-u <user>и передает его вget_token. Остальные аргументы (например,-X,-H,-d,-v,-s) передаются непосредственно в стандартный атрибутcurl. - Выполнение. После того как
get_tokenуспешно получит или извлечет действительный токен,acurlавтоматически добавит заголовок-H "Authorization: Bearer <token>"в вызовcurl.
Примеры использования
Пример 1. Интерактивный вход для пользователя-человека
/opt/apigee/apigee-openldap/bin/acurl -u developer@apigee.com http://MS_IP_DNS:8080/v1/organizations
Эта команда приостанавливает работу, предлагает пользователю перейти в браузер для аутентификации через внешний IDP, а затем выполняет вызов API после одобрения.
Пример 2. Вход без графического интерфейса для пользователя-машины
/opt/apigee/apigee-openldap/bin/acurl -u jenkins-bot@apigee.com:Secret123! http://MS_IP_DNS:8080/v1/organizations
Эта команда выполняет аутентификацию напрямую с помощью Password Grant и сразу же выполняет вызов API.
Пример 3. Повторное использование токена из кеша
/opt/apigee/apigee-openldap/bin/acurl http://MS_IP_DNS:8080/v1/users
Поскольку токен был сохранен в кеше на предыдущих шагах, вам не нужно снова указывать аргумент -u. Утилита считывает кешированный токен и автоматически вставляет его.