DeleteOAuthV2Info ポリシー

概要

指定された 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">
属性 説明 デフォルト 要否
async

リクエスト / レスポンス フローを処理するプールとは異なるスレッドプールでポリシーを実行するように指定するには、true に設定します。デフォルトは false です。

この設定は、内部最適化にのみ使用されます。

false 省略可
continueOnError

多くの場合、障害の発生時にポリシーがエラーを返すように設定します。この属性を true に設定すると、フロー実行が失敗したときに続行されます。

false 省略可
enabled ポリシーを適用するかどうかを設定します。false に設定すると、ポリシーは「オフ」になり、適用されません(ポリシーはフローに接続されたままになります)。 true 省略可
name

ポリシーの内部名。この名前は、ポリシーをフローに接続するときに Step 要素で参照されます。

注: 名前に使用できる文字は、A-Z0-9._\-$ % のみです。管理 UI では、この他にも制限があります。たとえば、英数字以外の文字は自動的に削除されます。

なし 必須

<AccessToken> 要素

削除するアクセス トークンが格納されている変数を指定します。たとえば、アクセス トークンが 「access_token」というクエリ パラメータとしてリクエスト メッセージに接続されている場合は、request.queryparam.access_token を指定します。トークンを参照する有効な変数を使用できます。まれなケースですが、リテラル トークン文字列を渡すこともできます。

 <AccessToken ref="request.queryparam.access_token"></AccessToken>
デフォルト: なし
要否: <AccessToken> または <AuthorizationCode> が必須です。
型: 文字列

属性

属性 説明 デフォルト 要否
ref

アクセス トークン変数。通常、フロー変数から取得します。たとえば、request.header.tokenrequest.queryparam.token などです。

なし 省略可

<AuthorizationCode> 要素

削除する認可コードが格納されている変数を指定します。たとえば、認可コードが 「code」というクエリ パラメータとしてリクエスト メッセージに添付されている場合は、request.queryparam.code を指定します。トークンを参照する有効な変数を使用できます。まれなケースですが、リテラル トークン文字列を渡すこともできます。

 <AccessToken ref="request.queryparam.access_token"></AccessToken>
デフォルト: なし
要否: <AccessToken> または <AuthorizationCode> が必須です。
型: 文字列

属性

属性 説明 デフォルト 要否
ref

アクセス トークン変数。通常、フロー変数から取得します。たとえば、request.header.coderequest.queryparam.code などです。

なし 省略可

<DisplayName> 要素

管理 UI のプロキシ エディタでポリシーに設定する自然言語のラベル名です。省略すると、ポリシーの name 属性が使用されます。

<DisplayName>DeleteOAuthV2Info 1</DisplayName>
デフォルト: ポリシーの name 属性の値。
要否: 省略可
型: String

エラー リファレンス

このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Edge によって設定される障害変数について説明します。 これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきこと障害の処理をご覧ください。

ランタイム エラー

このエラーは、ポリシーの実行時に発生することがあります。

障害コード HTTP ステータス 原因
steps.oauth.v2.invalid_access_token 401 ポリシーに送信されたアクセス トークンが無効です。
steps.oauth.v2.invalid_request-authorization_code_invalid 401 ポリシーに送信された認証コードが無効です。
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound 401 このエラーのトラブルシューティングについては、こちらの Apigee コミュニティの投稿をご覧ください。

デプロイエラー

デプロイエラーについては、UI で報告されるメッセージを参照してください。

障害変数

次の変数は、このポリシーでランタイム エラーが発生したときに設定されます。

変数 説明
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 から入手できます。

関連トピック