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

Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X.
Информация

Утилита acurl(1) представляет собой удобный контейнер для стандартной команды curl. acurl:

  • Обменивает учетные данные Apigee на токен доступа OAuth2.
  • Обнаруживает, когда срок действия токена доступа истек, и использует токен обновления, чтобы получить новый токен доступа.
  • Передает этот токен в заголовке Authorization запроса к API.

Токены доступа используются для вызова конечных точек Edge API с помощью OAuth2, в том числе рабочих процессов LDAP и SAML.

Если вы используете OAuth2 для доступа к Edge API, но не используете acurl, то вам нужно самостоятельно получить токен доступа и добавить его в заголовок запроса к API. Один из способов получить токен доступа – использовать утилиту get_token.

Как установить acurl

Чтобы использовать acurl, его нужно установить.

Синтаксис acurl

Утилита acurl использует следующий синтаксис:

acurl API_URL -u USERNAME:PASSWORD [-m MFACODE]

или

acurl API_URL -p PASSCODE

Где:

Option Обязательно? Описание
API_URL Обязательно Конечная точка API Apigee Edge. Полный список конечных точек приведен в справочнике по Apigee Edge API.
USERNAME Необязательно. Требуется указать имя пользователя и пароль или код доступа. Имя пользователя Apigee, которое обычно совпадает с адресом электронной почты, связанным с аккаунтом Apigee. При первом звонке на номер get_token необходимо ввести имя пользователя или код доступа. Вам не нужно будет снова указывать адрес электронной почты, пока не истечет срок действия токенов доступа и обновления. Если вы кешируете токены для нескольких пользователей, в каждом вызове необходимо указывать имя пользователя.
PASSWORD Необязательно. Требуется указать имя пользователя и пароль или код доступа. Пароль от аккаунта Apigee. Если вы не укажете пароль, вам будет предложено ввести его при первом использовании acurl и при всех последующих вызовах без действительного токена обновления. Если вы не хотите использовать пароль непосредственно в команде, вместо него можно указать одноразовый код доступа.
MFACODE Необязательно Временный шестизначный код многофакторной аутентификации (МФА). Этот код необходим, если вы используете -u и включили многофакторную аутентификацию. Если вы не укажете его, вам будет предложено это сделать (если не включен режим кода доступа). Если многофакторная аутентификация не включена или вы используете скрипт, укажите значение -m "", чтобы избежать запросов.
PASSCODE Необязательно. Требуется указать имя пользователя и пароль или код доступа. Одноразовый код доступа, который можно использовать вместо пароля. Код доступа требуется при аутентификации с помощью поставщика идентификационной информации SAML и может использоваться для аутентификации с помощью поставщика идентификационной информации LDAP.

Пример:

acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval
acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval -u ahamilton@apigee.com
acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval -u ahamilton@apigee.com -p 424242
acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval -u ahamilton@apigee.com:mypassw0rd
acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval -u ahamilton@apigee.com:mypassw0rd -m 123456

Помимо перечисленных выше вариантов, acurl принимает все варианты curl. Например, вы можете передать заголовки, указать HTTP-метод, добавить тело и включить подробный вывод с помощью стандартных параметров curl:

Option acurl meaning curl meaning
-u username username
-m MFA code max time (необходимо использовать длинную форму --max-time)
-p passcode proxy tunnel (необходимо использовать длинную форму --proxytunnel)
-v verbose verbose
-h help help (необходимо использовать длинную форму --help)
acurl -v -X POST -H 'Content-Type: application/json' \
    https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval/apiproducts/myproduct/attributes/attr \
    -u ahamilton@apigee.com -d '{"value":42}'

При успешном вызове acurl возвращаются результаты в зависимости от того, какую конечную точку Edge API вы вызвали. Кроме того, acurl сохраняет токены доступа и обновления в ~/.sso-cli.

Вы можете продолжать совершать звонки без ввода учетных данных (пароля и необязательной многофакторной аутентификации или кода доступа), пока не истечет срок действия токена доступа и токена обновления, как описано в разделе Срок действия токена.

Как перейти с curl

Если вы используете curl, переход на утилиту acurl будет простым и позволит вам не кодировать учетные данные вручную. После того как вы скачаете и установите утилиту, вы сможете заменить:

curl -u username
с:
acurl -u username

Утилита acurl зашифрует ваши учетные данные и время от времени будет запрашивать дополнительные учетные данные, необходимые для получения новых пар токенов.

Утилиту acurl также можно использовать для замены curl для пользователей устройств. Подробнее о OAuth2 для машинных пользователей и машинных пользователях в зонах SAML…

Как впервые вызвать acurl

При первом вызове API с помощью acurl вы предоставляете свои учетные данные Apigee (имя пользователя и пароль аккаунта Apigee или код доступа), чтобы acurl мог обменять их на токен доступа и токен обновления.

В примере ниже показан начальный вызов acurl для получения информации об организации с помощью конечной точки Get organization (Получить организацию):

acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \
  -u ahamilton@apigee.com
Enter the password for user 'ahamilton@apigee.com':
[hidden input]
Enter the six-digit code (no spaces) if 'ahamilton@apigee.com' is MFA-enabled or press ENTER:
1a2b3c
{
  "createdAt" : 1491854501264,
  "createdBy" : "noreply_iops@apigee.com",
  "displayName" : "ahamilton",
  "environments" : [ "prod", "test" ],
  "lastModifiedAt" : 1491854501264,
  "lastModifiedBy" : "noreply_iops@apigee.com",
  "name" : "ahamilton",
  "properties" : {
    "property" : [ {
      "name" : "features.isSmbOrganization",
      "value" : "false"
    }, {
      "name" : "features.isCpsEnabled",
      "value" : "true"
    } ]
  },
  "type" : "trial"
}

Утилита acurl получает токен доступа и вставляет его в вызов конечной точки Edge API:

curl -H "Authorization: Bearer oauth2_access_token" ...

Токен доступа хранится локально в ~/.sso-cli и используется для последующих вызовов.

Когда срок действия токена доступа истекает, acurl автоматически использует токен обновления, чтобы получить новый токен доступа. Когда срок действия токена обновления истечет, acurl запросит учетные данные Apigee.

Этот запрос позволяет получить информацию об организации ahamilton-eval. Полный список конечных точек Edge API приведен в Справочнике по Apigee Edge API.


1. © Google LLC, 2023.
Инструмент acurl предоставляется как "Программное обеспечение" в соответствии с соглашением, регулирующим использование Google Cloud Platform, в том числе условиями использования отдельных сервисов, с которыми можно ознакомиться здесь: https://cloud.google.com/terms/service-terms.