Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee X.info
Отзыв токенов доступа и обновления
В некоторых случаях приложениям требуется явно отзывать или аннулировать токены, например, когда пользователь выходит из приложения с поддержкой OAuth. Если вы отзовете токен, его можно будет повторно утвердить в любое время до истечения срока его действия.
Процедура отзыва токена определена спецификацией отзыва токенов OAuth 2.0 .
Apigee Edge предоставляет операцию InvalidateToken, которая позволяет настроить выделенную конечную точку для аннулирования токенов. Публикуя URI этой конечной точки, вы позволяете разработчикам приложений аннулировать токены, выданные Edge.
Вот пример конфигурации политики OAuthV2 и операции InvalidateToken. В этом случае аннулируются как токен доступа, так и связанный с ним токен обновления. Технически, аннулируются оба, поскольку флаг cascade установлен в значение true. Для получения дополнительной информации о работе флага cascade см. раздел атрибутов элемента Token ниже.
<OAuthV2 name="InvalidateToken"> <Operation>InvalidateToken</Operation> <Tokens> <Token type="accesstoken" cascade="true">flow.variable</Token> </Tokens> </OAuthV2>
элемент <Токены>/<Токен>
Определяет переменную потока, указывающую на токен, подлежащий аннулированию. Если от разработчиков ожидается отправка запроса на аннулирование с использованием параметра запроса с именем access_token , например, то правильной переменной потока будет: request.queryparam.access_token . Чтобы потребовать токен в заголовке HTTP, например, установите это значение равным request.header.access_token .
Атрибуты
-
type(обязательно, строка): Тип токена, определяемый указанной переменной. Поддерживаемые значения:accesstokenиrefreshtoken:- Для отзыва токена доступа укажите тип accesstoken.
- Чтобы отозвать как токен доступа, так и токен обновления, укажите тип refreshtoken. Если Edge видит тип refreshtoken, он предполагает, что это токен обновления. Если такой токен обновления найден, он отзывается. Если такой токен обновления не найден, Edge проверяет, является ли он токеном доступа. Если токен доступа существует, он отзывается.
Примечание: Если вы передадите уже аннулированный токен в политику InvalidateToken, политика не вернет ошибку, хотя вы могли бы этого ожидать. Такая операция не окажет никакого эффекта.
-
cascade(необязательный, логический, по умолчанию: true) Основное назначение этого атрибута — аннулирование токена обновления без аннулирования связанного с ним токена доступа. Рассмотрим следующие случаи:- Отзывайте только токен обновления, но не отзывайте связанный с ним токен доступа. Для этого установите тип <Token> в значение
refreshtokenи параметр cascade вfalse. - Отзовите как токен доступа, так и токен обновления. Для этого установите тип <Token> в
accesstoken. Значение параметра cascade может быть либоtrue(по умолчанию), либоfalse. Если вы установите его вtrue, то будут отозваны как токен доступа, так и токен обновления. Если вы установите его вfalse, токен доступа будет отозван, а токен обновления станет непригодным для использования. Дополнительные пояснения см. в примечании ниже. - Отзыв токена доступа без отзыва связанного с ним токена обновления. Не поддерживается. Дополнительные пояснения см. в примечании ниже.
- Отзывайте только токен обновления, но не отзывайте связанный с ним токен доступа. Для этого установите тип <Token> в значение
Примечание: В целях безопасности, если вы отзываете токен доступа, связанный с ним токен обновления также будет отозван. Поэтому вы не можете использовать атрибут cascade для отзыва только токена доступа. Например, если вы установите тип <Token> в accesstoken и зададите cascade=false , токен доступа будет отозван (как и ожидалось); однако связанный с ним токен обновления станет непригодным для использования. Его нельзя будет использовать для обновления отозванного токена доступа. Основной сценарий использования атрибута cascade — это когда вы хотите отозвать только токен обновления. В этом случае установите тип <Token> в refreshtoken и задайте cascade=false . Токен обновления будет отозван, но связанный с ним токен доступа останется действительным (пока не истечет срок его действия или он не будет отозван). Для получения дополнительной информации см. это обсуждение на форуме сообщества .
Подтверждение токенов доступа и обновления
Используйте операцию ValidateToken для «повторного подтверждения» отозванного токена. То есть, при применении этой операции статус целевого токена доступа или обновления изменяется с «отозван» на «подтвержден». Вы можете подтвердить любой отозванный токен, срок действия которого еще не истек.
<OAuthV2 name="ValidateToken"> <Operation>ValidateToken</Operation> <Tokens> <Token type="refreshtoken" cascade="true">flow.variable</Token> </Tokens> </OAuthV2>
элемент <Токены>/<Токен>
Определяет переменную потока, которая задает токен для проверки. Если от разработчиков ожидается отправка запроса на проверку с использованием параметра запроса с именем access_token , например, то правильной переменной потока будет: request.queryparam.access_token . Чтобы, например, потребовать токен в заголовке HTTP, установите это значение равным request.header.access_token .
Атрибуты
-
type(обязательно, строка) Тип токена, определяемый указанной переменной. Поддерживаемые значения:accesstokenиrefreshtoken. -
cascade(необязательный, логический параметр): По умолчанию этот параметр установлен вtrue, и проверка распространяется на связанные токены. Таким образом, если проверка применяется к токену обновления, проверяется и связанный с ним токен доступа. Если проверка применяется к токену доступа, проверяется и связанный с ним токен обновления. Если установить значениеfalse, то проверяется только указанный токен доступа или обновления.