Использование службы Edge OAuth2 для получения токенов

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

Вы можете использовать сервис Edge OAuth2 для обмена ваших учетных данных на токены доступа и обновления, которые затем используются для вызова конечных точек Edge в ваших рабочих процессах OAuth .

В дополнение к методам, описанным в этом разделе, вы также можете использовать утилиты acurl и get_token для получения токенов OAuth2.

Путь

POST https://login.apigee.com/oauth/token

Если вы обращаетесь к службе Edge OAuth2 из организации с поддержкой SAML в Edge для публичного облака, необходимо указать имя зоны в пути. Например:

POST https://zone.login.apigee.com/oauth/token

Заголовки запроса

Параметр Ценить
Content-Type "application/x-www-form-urlencoded"
Accept "application/json;charset=utf-8"
Authorization

"Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0"

Вы можете экспортировать это значение в переменную окружения, чтобы повторно использовать его в этих вызовах API. Например:

export CLIENT_AUTH=ZWRnZWNsaTplZGdlY2xpc2VjcmV0
curl ... -H "Authorization: Basic $CLIENT_AUTH" ...

Параметры формы

Параметр Необходимый? Ценить
username Необязательно. Требуется комбинация имени пользователя и пароля или код доступа. Ваше имя пользователя в Apigee, которое обычно совпадает с адресом электронной почты, связанным с вашей учетной записью Apigee.
password Необязательно. Требуется комбинация имени пользователя и пароля или код доступа. Пароль от вашей учетной записи Apigee.
mfa_token Необязательный Действительный код многофакторной аутентификации (МФА) для вашей учетной записи. Требуется только в том случае, если у вас включена МФА .
passcode Необязательно. Требуется комбинация имени пользователя и пароля или код доступа. Одноразовый код доступа, который можно использовать вместо пароля. Код доступа необходим при аутентификации с SAML IDP и может использоваться для аутентификации с LDAP IDP.
grant_type Необходимый

Определяет, получите ли вы новый токен доступа или обновите существующий. Допустимые значения:

  • "password": Получить новый токен доступа. Если grant_type имеет значение "password", необходимо включить ваши учетные данные Apigee в запрос.
  • "refresh_token": Отправьте токен обновления, чтобы получить новый токен доступа. Если grant_type имеет значение "refresh_token", вам не нужно включать свои учетные данные в запрос.
refresh_token Необязательный Токен, который вы передаете для получения нового токена доступа после истечения срока действия текущего токена доступа. Этот параметр обязателен, если grant_type имеет значение "refresh_token".

Примеры

Получите новый токен доступа

Чтобы получить новый токен доступа, установите grant_type в значение "password":

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://login.apigee.com/oauth/token \
      -d 'username=ahamilton@example.com&password=mypassw0rd&grant_type=password'

Получите новый токен доступа с многофакторной аутентификацией (MFA).

Чтобы получить новый токен доступа с включенной многофакторной аутентификацией (МФА), получите код МФА , а затем установите параметр mfa_token в его значение:

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://login.apigee.com/oauth/token?mfa_token=424242 \
  -d 'username=ahamilton@example.com&password=mypassw0rd&grant_type=password'

Обновить токен доступа

Для обновления токена доступа установите grant_type в значение "refresh_token" и добавьте существующий токен обновления в качестве параметра формы:

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://login.apigee.com/oauth/token \
  -d 'grant_type=refresh_token&refresh_token=YOUR_REFRESH_TOKEN'

Обратите внимание, что при обновлении токена доступа вам не нужно передавать свои учетные данные.

Ответы

В случае успеха вы получите токен доступа, токен обновления и соответствующую информацию. Например:

{
  "access_token": "eyJhbGciOiJSUzI1NiJ9.eyJqdGkiOimYyD8IP2IyYS1jNmNiLTQ4NTgtYjZkMS1mZjkyNGFkYTk1YWUiLCJzdWIiOiI0X0KLSNjZlNjM0ZC0zZjlhLTRiNYmFjNi1kYjE2M2M5OGEzOGYiLCJzY29wZSI6WyJzYbmlkIiwicGFzc3dvcmQud3JpdGUiLCJhcHByb3ZhbHMubWUiLCJvYXV0aC5hcHByb3ZhbHMiXSwiY2xpZW50X2lkIjoiZWRnZWNsaSIsImNpZCI6ImVkZ2VjbGkiLCJhenAiOiJlZGdlY2xpIiwiZ3JhbnRfdHlwZSI6InBhc3N3b3JkIiwidXNlcl9pZCI6IjQ2NmU2MzRkLTNmOWEtNGI0MS1iYWM2LWRiMTYzYzk4YTM4ZiIsIm9yaWdpbiI6InVzZXJncmlkIiwidXNlcl9uYW1lIjoid3dpdG1hbkBhcGlnZWUuY29tIiwiZW1haWwiOiJ3d2l0bWFuQGFwaWdlZS5jb20iLCJhdXRoX3RpbWUiOjE0NzMyNjU4NzcsImFsIjoyLCJyZXZfc2lnIjoiZTc0ZGY0M2QiLCJpYXQiOjE0NzMyNjU4NzcsImV4cCI6MTQ3MzI2NzY3NywiaXNzIjoiaHR0cHM6Ly9sb2dpbi5hcGlnZWUuY29tL29hdXRoL3Rva2VuIiwiemlkIjoidWFhIiwi2ltLm1lIiwib3BlYXVkIjpbImVkZ2VjbGkiLCJzY2ltIiwib3BlbmlkIiwicGFzc3dvcmQiLCJhcHByb3ZhbHMiLCJvYXV0aCJdfQ.AFuevkeGGUGSPED8leyEKaT-xg1xk_VEiKJLEpipVvQBXIqEc9wqcpm-ZuoatA9DhjASRuFSRaHH8Fasx_vBxEBsUNhRY-GTMw7_8fv4yRMOb2AO3WUl_NWwPkC8XRSI1zCMbAZicojsJ1n3OSP487Mu9dl9ByX5A_QfHV2_cj4l9-SD7u6vOdfdbBxbNMAQkfZLrVIEU8myF2dhKnNeMiuoHSHANsQFcx0_BFA1HnSUnVi4RYj1FlTs9SbcPnS1d7t7eVdxWz_q2OFVXNIBMELAvvM0WhXPYTW3Osve3UvvUs6ekGs-K-RCPSok-4-NJbdCDpZQQTgqHsrf77NTsw",
  "token_type": "bearer",
  "refresh_token": "eyJhbGciOiJSUzI1NiJ9.eyJqdGkiOiJmZTIIMZWI0ZS00YzFmLTRjOTEtYmY5Mi1mMzZLEMzNjZhMDctciIsInN1YiI6IjQ2NmU2MzRkLTNmOWEtNGI0MS1iY17LLWRiMTYzYzk4YTM4ZiIsInNjb3BlIjpbInNjaW0ubWUiLCJvcGVuaWQiLCJwYXNzd29yZC53cml0ZSIsImFwcHJvdmFscy5tZSIsIm9hdXRoLmFwcHJvdmFscyJdLCJpYXQiOjE0NzMyNjU4NzcsImV4cCI6MTQ3NsaSIsImNsaWVudF9pZCI6ImVkZ2VjbGkiLCJpc3MiOiJodHRwczovL2xvZ2luLmFwaWdlZS5jb20vb2F1dGgvdG9rZW4iLCJ6aWQiOiJ1YWEiLCJncmFudF90eXBlIjoicGFzc3dvcmQiLCJ1c2VyX25hbWUiOiJ3d2l0bWFuQGFwaWdlZS5jbMzM1MDQ3NywiY2lkIjoiZWRnZW20iLCJvcmlnaW4iOiJ1c2VyZ3JpZCIsInVzZXJfaWQiOiI0NjZlNjM0ZC0zZjlhLTRiNDEtYmFjNi1kYjE2M2M5OGEzOGYiLCJhbCI6MiwicmV2X3NpZyI6ImU3NGRmNDNkIiwiYXVkIjpbImVkZ2VjbGkiLCJzY2ltIiwib3BlbmlkIiwicGFzc3dvcmQiLCJhcHByb3ZhbHMiLCJvYXV0aCJdfQ.kBP5AkbRS7Tnp-5VAfTLVfkUbUer4gFEU6A7g202KTKiXbqTwPSmOIGFTK12XevVPQYmAaSMFAnempWKfY7sjaY7HC7q3mGl53_A18cnkKhtNq15wCnyMom_bX_MYLW1RQPFytJ6akSJ-JkoPFU0x_FQg1JIvub1A8eqQxcR0KP-QRCxYAS4HTjH80vDIxHNt1tg7clmpa3RlHri0dlPVVsSpTXXhkpXRg5QbiWMrpkACSV22c0x0KiNu7vx5A520VOCO7hQ7IzmVIcSWcRqI97L7WdCjH_q4105bs2qmW73670MC0UGiJ9t5B1S1cxwqpUEd-NAuCsY8SVn6eWzbA",
  "expires_in": 1799,
  "scope": "scim.me openid password.write approvals.me oauth.approvals",
  "jti": "9bf2cb2a-c6cb-4858-b6d1-ff924ada95ae"
}

Сохраните значения ответа:

  • Используйте access_token в вызовах к Edge API.
  • Используйте refresh_token , когда срок действия вашего токена доступа истекает и вам необходимо его обновить.

Если вы получите ответ, подобный следующему:

{
  "error": "unauthorized",
  "error_description": "Bad credentials"
}

Убедитесь, что вы использовали именно ту строку, которая указана выше ("ZWRnZWNsaTplZGdlY2xpc2VjcmV0"), для заголовка Authorization в вашем запросе.