概要
指定された 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 |
リクエスト / レスポンス フローを処理するプールとは異なるスレッドプールでポリシーを実行するように指定するには、 この設定は、内部最適化にのみ使用されます。 |
false | 省略可 |
continueOnError |
多くの場合、障害の発生時にポリシーがエラーを返すように設定します。この属性を |
false | 省略可 |
enabled | ポリシーを適用するかどうかを設定します。false に設定すると、ポリシーは「オフ」になり、適用されません(ポリシーはフローに接続されたままになります)。 |
true | 省略可 |
name |
ポリシーの内部名。この名前は、ポリシーをフローに接続するときに Step 要素で参照されます。 注: 名前に使用できる文字は、 |
なし | 必須 |
<AccessToken> 要素
削除するアクセス トークンが格納されている変数を指定します。たとえば、アクセス トークンが 「access_token」というクエリ パラメータとしてリクエスト メッセージに接続されている場合は、request.queryparam.access_token
を指定します。トークンを参照する有効な変数を使用できます。まれなケースですが、リテラル トークン文字列を渡すこともできます。
<AccessToken ref="request.queryparam.access_token"></AccessToken>
デフォルト: | なし |
要否: | <AccessToken> または <AuthorizationCode> が必須です。 |
型: | 文字列 |
属性
属性 | 説明 | デフォルト | 要否 |
---|---|---|---|
ref |
アクセス トークン変数。通常、フロー変数から取得します。たとえば、 |
なし | 省略可 |
<AuthorizationCode> 要素
削除する認可コードが格納されている変数を指定します。たとえば、認可コードが 「code」というクエリ パラメータとしてリクエスト メッセージに添付されている場合は、request.queryparam.code
を指定します。トークンを参照する有効な変数を使用できます。まれなケースですが、リテラル トークン文字列を渡すこともできます。
<AccessToken ref="request.queryparam.access_token"></AccessToken>
デフォルト: | なし |
要否: | <AccessToken> または <AuthorizationCode> が必須です。 |
型: | 文字列 |
属性
属性 | 説明 | デフォルト | 要否 |
---|---|---|---|
ref |
アクセス トークン変数。通常、フロー変数から取得します。たとえば、 |
なし | 省略可 |
<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 から入手できます。