Дополнительные сведения о протоколе OAuth 2.0

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

Использование сторонних токенов OAuth

Подробнее об использовании сторонних токенов OAuth…

Как указать несколько URL обратного вызова

При использовании типа предоставления кода авторизации необходимо указать URL обратного вызова при регистрации приложения для разработчиков. URL обратного вызова обычно указывает на URL приложения, которое предназначено для получения кода авторизации от имени клиентского приложения. Кроме того, эта строка URL используется для проверки. Клиент должен отправить этот URL в Apigee Edge при запросе кодов авторизации и токенов доступа. Параметр redirect_uri должен совпадать с зарегистрированным. Также ознакомьтесь с информацией о том, как запрашивать токены доступа и коды авторизации.

Пример:

http://myorg-test.apigee.net/weather/oauth/authorizationcode?client_id=123456&response_type=code&redirect_uri=http://example.com/callback&scope=scope1%20scope2&state=abc

В одном прокси-приложении можно указать несколько URL обратного вызова. Например, вам может потребоваться аутентификация для нескольких доменов. Например:

  • http://myexample.com/callback
  • http://myexample.uk/callback
  • http://myexample.ja/callback

Edge не поддерживает указание нескольких URL обратного вызова или использование подстановочных знаков при регистрации приложения разработчика. Чтобы реализовать этот вариант использования, при регистрации приложения разработчика укажите пустой URL обратного вызова, а затем добавьте в правило JavaScript логику для проверки входящих URI перенаправления.

Изменение поведения по умолчанию для операции GenerateAuthCode

По умолчанию операция GenerateAuthCode правила OAuthV2 возвращает переадресацию 302 на URL обратного вызова с параметром запроса ?code, содержащим код авторизации.

В некоторых случаях вам может понадобиться изменить это поведение. Например, вы можете вернуть ответ 200 со структурированным JSON, содержащим код.

Один из способов реализовать этот вариант использования – задать для свойства GenerateResponse правила OAuthV2 значение false. Используйте правило ExtractVariable, чтобы получить значение кода авторизации из переменной oauthv2authcode.{policy_name}.code. Затем вы можете использовать правило AssignMessage, чтобы вернуть код в полезной нагрузке JSON со статусом 200.

Как проверять согласие конечных пользователей приложения

Вам может потребоваться подтвердить, что конечный пользователь приложения авторизовал его. Для этого можно использовать Audit API Apigee Edge.

Пример исходящего OAuth

Пример outbound-oauth можно найти в репозитории Apigee api-platform-samples на GitHub. Вы можете клонировать, развернуть и запустить пример. В этом примере для перевода твитов используется API переводчика Microsoft Azure. Для этого он выполняет исходящий вызов, чтобы получить токен доступа OAuth, а затем кеширует токен, используя правила кеширования API Services, и повторно использует кешированный токен при каждом исходящем вызове. Также в него входит демонстрационное браузерное приложение, используемое для вызова прокси-сервера API.