Как использовать утилиты get_token и acurl

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. Утилита считывает кешированный токен и автоматически вставляет его.