Правило DeleteOAuthV2Info

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

Что

Удаляет указанный код авторизации или токен доступа OAuth V2.

Примеры

Удалить токен доступа

Ниже приведен пример правил, используемых для удаления токена доступа OAuth 2.0. В примере ниже показано, как найти токен доступа, который нужно удалить из сообщения запроса, с помощью заголовка access_token.

<DeleteOAuthV2Info name="DeleteAccessToken">
     <AccessToken ref="request.header.access_token"></AccessToken>
</DeleteOAuthV2Info>

Как удалить код авторизации

Ниже приведен пример правила, используемого для удаления кода авторизации OAuth 2.0. В примере ниже код авторизации, который нужно удалить из сообщения запроса, определяется по параметру запроса code.

<DeleteOAuthV2Info name="DeleteAuthCode">
     <AuthorizationCode ref="request.queryparam.code"></AuthorizationCode>
</DeleteOAuthV2Info>

Справочник элементов

В справочнике по элементам описаны элементы и атрибуты правила DeleteOAuthV2Info.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<DeleteOAuthV2Info async="false" continueOnError="false" enabled="true" name="DeleteOAuthV2Info-1">    
    <DisplayName>Delete OAuth v2.0 Info 1</DisplayName>
    <AccessToken ref={some-variable}></AccessToken>
    <!--<AuthorizationCode ref={some-variable}></AuthorizationCode>-->
    <Attributes/>
</DeleteOAuthV2Info

Атрибуты <DeleteOAuthV2Info>

<DeleteOAuthV2Info async="false" continueOnError="false" enabled="true" name="Delete-OAuth-v20-Info-1">
Атрибут Описание По умолчанию Тип поля
асинхронный

Установите значение true, чтобы указать, что правило должно выполняться в пуле потоков, отличном от пула, обслуживающего поток запросов и ответов. Значение по умолчанию – false.

Эта настройка используется только для внутренней оптимизации.

false Необязательно
continueOnError

Большинство правил должны возвращать ошибку при сбое. Если задать для этого атрибута значение true, выполнение потока будет продолжено при сбое.

false Необязательно
включено Определяет, применяется ли правило. Если задано значение false, правило "отключается" и не применяется (даже если оно по-прежнему связано с потоком). true Необязательно
name

Внутреннее название правила. Это название используется в элементах шага, чтобы прикрепить правило к потоку.

Примечание. В названии можно использовать только следующие символы: A-Z0-9._\-$ %. В интерфейсе управления действуют дополнительные ограничения, например автоматически удаляются небуквенно-цифровые символы.

Н/Д Обязательно

Элемент <AccessToken>

Определяет переменную, в которой находится токен доступа, который нужно удалить. Например, если токен доступа прикреплен к сообщению запроса в виде параметра запроса с названием "access_token", укажите request.queryparam.access_token. Вы можете использовать любую допустимую переменную, которая ссылается на токен. или передать строку токена (редкий случай).

 <AccessToken ref="request.queryparam.access_token"></AccessToken>
По умолчанию: Н/Д
Присутствие Также теперь обязательно использовать свойство <AccessToken> или <AuthorizationCode>.
Тип: Строка

Атрибуты

Атрибут Описание По умолчанию Тип поля
ref

Переменная токена доступа. Обычно извлекается из переменной потока. Примеры: request.header.token или request.queryparam.token.

Н/Д Необязательно

Элемент <AuthorizationCode>

Указывает переменную, в которой находится код авторизации, который нужно удалить. Например, если код авторизации прикреплен к сообщению запроса в виде параметра запроса с названием "code", укажите request.queryparam.code. Вы можете использовать любую допустимую переменную, которая ссылается на токен. или передать строку токена (редкий случай).

 <AuthorizationCode ref="request.queryparam.code"></AuthorizationCode>
По умолчанию: Н/Д
Присутствие Также теперь обязательно использовать свойство <AccessToken> или <AuthorizationCode>.
Тип: Строка

Атрибуты

Атрибут Описание По умолчанию Тип поля
ref

Переменная токена доступа. Обычно извлекается из переменной потока. Примеры: request.header.code или request.queryparam.code.

Н/Д Необязательно

Элемент <DisplayName>

Название на естественном языке, которое используется для обозначения правила в редакторе прокси-сервера интерфейса управления. Если не указано, используется атрибут имени правила.

<DisplayName>DeleteOAuthV2Info 1</DisplayName>
По умолчанию: Значение атрибута name правила.
Присутствие Необязательно
Тип: Строка

Справочник по ошибкам

В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые задаются Edge, когда это правило вызывает ошибку. Эта информация важна, если вы разрабатываете правила обработки ошибок. Подробнее о том, что нужно знать об ошибках в правилах и об обработке ошибок…

Ошибки времени выполнения

Эти ошибки могут возникать при выполнении правил.

Код ошибки Статус HTTP Причина
steps.oauth.v2.invalid_access_token 401 Токен доступа, отправленный в правило, недействителен.
steps.oauth.v2.invalid_request-authorization_code_invalid 401 Код авторизации, отправленный правилу, недействителен.
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound 401 Информацию об устранении этой ошибки можно найти в сообществе Apigee.

Ошибки развертывания

Информацию об ошибках развертывания можно найти в сообщении, которое показывается в интерфейсе.

Переменные ошибок

Эти переменные задаются, когда правило вызывает ошибку во время выполнения.

Переменные Место Пример
fault.name="fault_name" fault_name – название ошибки, указанное в таблице Ошибки выполнения выше. Название ошибки – это последняя часть кода ошибки. fault.name = "invalid_access_token"
oauthV2.policy_name.failed policy_name – заданное пользователем название правила, которое вызвало ошибку. oauthV2.DeleteTokenInfo.failed = true
oauthV2.policy_name.fault.name policy_name – заданное пользователем название правила, которое вызвало ошибку. oauthV2.DeleteTokenInfo.fault.name = invalid_access_token
oauthv2.policy_name.fault.cause policy_name – заданное пользователем название правила, которое вызвало ошибку. oauthV2.DeleteTokenInfo.cause = Invalid Access Token

Пример ответа об ошибке

{
  "fault": {
    "faultstring": "Invalid Access Token",
    "detail": {
      "errorcode": "keymanagement.service.invalid_access_token"
    }
  }
}

Пример правила обработки ошибок

<faultrule name="VariableOfNonMsgType"></faultrule><FaultRule name="DeleteOAuthV2Info_Faults">
    <Step>
        <Name>AM-InvalidTokenResponse</Name>
    </Step>
    <Condition>(fault.name = "invalid_access_token")</Condition>
</FaultRule>

Схема

Каждый тип правил определяется схемой XML (.xsd). Схемы правил доступны на GitHub.

Статьи по теме