Политика SetOAuthV2Info

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

Что

Позволяет добавлять или обновлять пользовательские атрибуты, связанные с токеном доступа. Пользовательские атрибуты могут включать в себя такие вещи, как название отдела, идентификатор клиента или идентификатор сеанса. См. также Настройка токенов и кодов авторизации .

Вы можете только добавлять или изменять пользовательские атрибуты. Вы не можете использовать эту политику для изменения таких полей, как область действия, статус, expires_in, Developer_email, client_id, org_name илиrefresh_count. Если атрибут уже существует, эта политика обновляет его. Если он не существует, политика добавляет его. Упомянутый токен доступа должен быть действительным и находиться в утвержденном состоянии.

Образцы

Базовый пример

Ниже приведен пример политики, используемой для обновления токена доступа OAuth 2.0. В приведенном ниже примере токен доступа находится в сообщении запроса путем поиска параметра запроса с именем access_token . Когда токен доступа предоставляется клиентским приложением, приведенная ниже политика обнаружит токен доступа в параметре запроса. Затем он обновит профиль токена доступа. Он добавляет в профиль настраиваемое свойство с именем department.id .

<SetOAuthV2Info name="SetOAuthV2Info"> 
  <AccessToken ref="request.queryparam.access_token"></AccessToken>
  <Attributes>
    <Attribute name="department.id" ref="request.queryparam.department_id"></Attribute>
  </Attributes>
</SetOAuthV2Info>

Ссылка на элемент

Ссылка на элемент описывает элементы и атрибуты политики SetOAuthV2.

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

Атрибуты <SetOAuthV2Info>

<SetOAuthV2Info async="false" continueOnError="false" enabled="true" name="Set-OAuth-v20-Info-1">

В следующей таблице описаны атрибуты, общие для всех родительских элементов политики:

Атрибут Описание По умолчанию Присутствие
name

Внутреннее имя политики. Значение атрибута name может содержать буквы, цифры, пробелы, дефисы, подчеркивания и точки. Это значение не может превышать 255 символов.

При необходимости используйте элемент <DisplayName> , чтобы пометить политику в редакторе прокси-сервера пользовательского интерфейса управления другим именем на естественном языке.

Н/Д Необходимый
continueOnError

Установите значение false , чтобы возвращать ошибку в случае сбоя политики. Это ожидаемое поведение для большинства политик.

Установите значение true , чтобы выполнение потока продолжалось даже после сбоя политики.

ЛОЖЬ Необязательный
enabled

Установите значение true , чтобы обеспечить соблюдение политики.

Установите значение false , чтобы отключить политику. Политика не будет применена, даже если она останется привязанной к потоку.

истинный Необязательный
async

Этот атрибут устарел.

ЛОЖЬ Устарело

Элемент <DisplayName>

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

<DisplayName>Policy Display Name</DisplayName>
По умолчанию

Н/Д

Если вы опустите этот элемент, будет использовано значение атрибута name политики.

Присутствие Необязательный
Тип Нить

Элемент <AccessToken>

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

 <AccessToken ref="request.queryparam.access_token"></AccessToken>
По умолчанию: Н/Д
Присутствие: Необходимый
Тип: Нить

Атрибуты

Атрибут Описание По умолчанию Присутствие
ссылка

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

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

Элемент <Атрибуты>

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

По умолчанию: Н/Д
Присутствие: Необходимый
Тип: Н/Д

Элемент <Атрибуты>/<Атрибут>

Отдельный атрибут для обновления.

Атрибут name определяет пользовательское свойство профиля токена доступа, которое необходимо обновить. В этом примере показано, как использовать значение указанной переменной и статическое значение.

  <Attributes>
    <Attribute name="department.id" ref="request.queryparam.department_id"></Attribute>
    <Attribute name="foo">bar</Attribute>
  </Attributes>
По умолчанию: Н/Д
Присутствие: Необязательный
Тип: Н/Д

Атрибуты

Атрибут Описание По умолчанию Присутствие
имя Имя атрибута профиля, который нужно добавить или изменить. Н/Д
ссылка

Значение, которое необходимо присвоить атрибуту профиля.

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

Переменные потока

В случае успеха будут установлены следующие переменные потока:

  • oauthv2accesstoken.{policyName}.access_token
  • oauthv2accesstoken.{policyName}.client_id
  • oauthv2accesstoken.{policyName}.refresh_count
  • oauthv2accesstoken.{policyName}.organization_name
  • oauthv2accesstoken.{policyName}.expires_in //--in seconds
  • oauthv2accesstoken.{policyName}.refresh_token_expires_in //--in seconds
  • oauthv2accesstoken.{policyName}.issued_at
  • oauthv2accesstoken.{policyName}.status
  • oauthv2accesstoken.{policyName}.api_product_list
  • oauthv2accesstoken.{policyName}.token_type
  • oauthv2accesstoken.{policyName}.{custom_attribute_name}

Схема

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

Ссылка на ошибку

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

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

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

Код неисправности Статус HTTP Причина
steps.oauth.v2.access_token_expired 500 Срок действия маркера доступа, отправленного в политику, истек.
steps.oauth.v2.invalid_access_token 500 Токен доступа, отправленный в политику, недействителен.
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound 401 Пожалуйста, прочтите этот пост сообщества Apigee для получения информации об устранении этой ошибки.

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

Обратитесь к сообщению, отображаемому в пользовательском интерфейсе, для получения информации об ошибках развертывания.

Переменные неисправности

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

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

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

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

Пример правила неисправности

<FaultRule name=SetOAuthV2Info Faults">
    <Step>
        <Name>AM-InvalidTokenResponse</Name>
        <Condition>(fault.name = "invalid_access_token")</Condition>
    </Step>
    <Condition>(oauthV2.failed = true) </Condition>
</FaultRule>

Связанные темы