このページの内容は Apigee に適用されます。Apigee ハイブリッドには適用されません。
Apigee Edge のドキュメントはこちらをご覧ください。
概要
VerifyIAM は、OAuthv2 ポリシーと同様に、API アクセスの認証と認可を管理する Google Cloud IAM ベースの方法の一部です。IAM ベースのアクセス制御ソリューションに VerifyIAM を含める方法については、IAM ベースの API 認証の概要をご覧ください。
このポリシーは、標準ポリシーであり、任意の環境タイプにデプロイできます。ポリシータイプと各環境タイプで使用可能かどうかは、ポリシータイプをご覧ください。
要素リファレンス
このリファレンスでは、VerifyIAM ポリシーの要素と属性について説明します。
<VerifyIAM async="false" continueOnError="false" enabled="true" name="MyVerifyIAMPolicy"> <DisplayName>Custom label used in UI</DisplayName> <CredentialSource>flow_variable_name_containing_credential_value</CredentialSource> </VerifyIAM>
<VerifyIAM> 属性
<VerifyIAM async="false" continueOnError="false" enabled="true" name="MyVerifyIAMPolicy">
次の表に、すべてのポリシーの親要素に共通する属性を示します。
属性 | 説明 | デフォルト | 要否 |
---|---|---|---|
name |
ポリシーの内部名。 管理 UI プロキシ エディタで |
なし | 必須 |
continueOnError |
ポリシーが失敗したときにエラーを返す場合は、 ポリシーが失敗した後もフローの実行を続行する場合は、 |
false | 省略可 |
enabled |
ポリシーを適用するには、 ポリシーを無効にするには、 |
true | 省略可 |
async |
この属性は非推奨となりました。 |
false | 非推奨 |
<DisplayName> 要素
管理 UI プロキシ エディタで name
属性と一緒に使用して、ポリシーのラベルに使用する自然言語名を指定します。
<DisplayName>Policy Display Name</DisplayName>
デフォルト |
なし この要素を省略した場合、ポリシーの |
---|---|
要否 | 省略可 |
タイプ | 文字列 |
<CredentialSource> 要素
<CredentialSource>flow_variable_name_containing_credential_value</CredentialSource>
この要素は、認証情報の値を含むフロー変数を指定します。この要素には次の特性があります。
- 通常、クライアントはクエリ パラメータ、HTTP ヘッダー、またはフォーム パラメータで値を送信します。文字列には、対応するフロー変数を
request.queryparam.token
の形式で指定する必要があります。 - 参照から読み取る場合は、直接値が想定されます。たとえば、接頭辞として「Bearer」は使用できません。
- 省略した場合、ポリシーの実行では、値が認可ヘッダーにあり、標準形式「Bearer xyz」であると想定されます。
デフォルト | 該当なし |
---|---|
要否 | 省略可 |
型 | フロー変数 |
例:
<VerifyIAM async="false" continueOnError="false" enabled="true" name="Verify-IAM-Permissions-1"> <DisplayName>VerifyIAM policy for flow 1</DisplayName> <CredentialSource>request.queryparam.token</CredentialSource> </VerifyIAM>
エラー リファレンス
このセクションでは、このポリシーによってエラーがトリガーされたときに返される障害コードとエラー メッセージ、Apigee によって設定される障害変数について説明します。これは、障害に対処する障害ルールを作成するうえで重要な情報です。詳細については、ポリシーエラーについて知っておくべきことと障害の処理をご覧ください。
ランタイム エラー
このエラーは、ポリシーの実行時に発生することがあります。
障害コード | HTTP ステータス | 原因 |
---|---|---|
steps.verifyiam.CredentialSourceRefUnresolved |
400 |
認証情報ソース内で指定されたフロー変数を解決できませんでした。 |
steps.verifyiam.CredentialValueNotProvided |
400 |
認証情報が見つかりません。認証情報のソース参照が指定されていない場合は、認可ヘッダーなどのデフォルトの場所が参照されます。 |
steps.verifyiam.Forbidden |
403 |
十分な権限がない、アクセス スコープがない、またはその他の関連する問題があるため、リクエストを転送できませんでした。 |
steps.verifyiam.MiscellaneousAuthorizationConfigurationError |
500 |
IAM への認証リクエストに関する問題。API プロデューサーは、エラー レスポンスの詳細に基づいてこのエラーを修正する必要があります。 |
steps.verifyiam.Unauthorized |
401 |
認証情報に関する問題(値が無効である、有効期限が切れているなど)。 |
steps.verifyiam.UnexpectedAuthorizationInfrastructureError |
500 |
内部エラー。 |
デプロイエラー
このポリシーは、ポリシー固有のデプロイ エラーを返しません。
障害変数
次の変数は、このポリシーでランタイム エラーが発生したときに設定されます。
変数 | 説明 | 例 |
---|---|---|
fault.name="fault_name" |
fault_name は、上記のランタイム エラーの表に記載されている障害の名前です。障害名は、障害コードの最後の部分です。 | fault.name="Unauthorized" |
verifyiam.policy_name.failed |
policy_name は、障害をスローしたポリシーのユーザー指定の名前です。 | verifyiam.Verify-IAMToken.failed = true |