Diese Seite gilt für Apigee, aber nicht für Apigee Hybrid.
Apigee Edge-Dokumentation aufrufen
Mit der VerifyIAM-Richtlinie können Sie Autorisierungsprüfungen für den API-Zugriff auf Grundlage von Google Cloud IAM erzwingen. Dies ist eine Alternative zur OAuthv2-Richtlinie und zur VerifyAPIKey-Richtlinie. Informationen dazu, wie Sie VerifyIAM in eine IAM-basierte Zugriffssteuerungslösung einbinden, finden Sie unter IAM-basierte API-Authentifizierung – Übersicht.
Diese Richtlinie ist eine Standardrichtlinie, die in jeder Umgebung bereitgestellt werden kann. Informationen zu Richtlinientypen und zur Verfügbarkeit bei jedem Umgebungstyp finden Sie unter Richtlinientypen.
Elementverweis
In dieser Referenz werden die Elemente und Attribute der VerifyIAM-Richtlinie beschrieben.
<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>-Attribute
<VerifyIAM async="false" continueOnError="false" enabled="true" name="MyVerifyIAMPolicy">
In der folgenden Tabelle werden Attribute beschrieben, die für alle übergeordneten Richtlinienelemente gelten:
| Attribut | Beschreibung | Standard | Presence |
|---|---|---|---|
name |
Der interne Name der Richtlinie. Der Wert des Attributs Optional können Sie das Element |
– | Erforderlich |
continueOnError |
Legen Sie Legen Sie |
false | Optional |
enabled |
Setzen Sie den Wert auf Legen Sie |
true | Optional |
async |
Dieses Attribut wurde verworfen. |
false | Verworfen |
<DisplayName>-Element
Wird zusätzlich zum Attribut name verwendet, um die Richtlinie im Proxy-Editor der Verwaltungs-UI mit einem anderen Namen in einer natürlichen Sprache zu versehen.
<DisplayName>Policy Display Name</DisplayName>
| Standard |
– Wenn Sie dieses Element weglassen, wird der Wert des Namensattributs |
|---|---|
| Presence | Optional |
| Typ | String |
<CredentialSource>-Element
<CredentialSource>flow_variable_name_containing_credential_value</CredentialSource>
Mit diesem Element wird die Ablaufvariable angegeben, die den Anmeldedatenwert enthält. Es hat die folgenden Merkmale:
- In der Regel sendet der Client den Wert in einem Abfrageparameter, einem HTTP-Header oder einem Formularparameter. Im String muss die entsprechende Ablaufvariable in der Form
request.queryparam.tokenangegeben werden. - Beim Lesen aus dem Verweis wird ein direkter Wert erwartet. Das Präfix „Bearer“ sollte beispielsweise nicht vorhanden sein.
- Wird er weggelassen, wird bei der Richtlinienausführung davon ausgegangen, dass sich der Wert im Autorisierungsheader befindet und das Standardformat „Bearer xyz“ verwendet wird.
| Standard | – |
|---|---|
| Präsenz | Optional |
| Typ | Ablaufvariable |
Beispiel:
<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>Fehlerreferenz
This section describes the fault codes and error messages that are returned and fault variables that are set by Apigee when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.
Runtime errors
These errors can occur when the policy executes.
| Fault code | HTTP status | Cause |
|---|---|---|
steps.verifyiam.CredentialSourceRefUnresolved |
400 |
Flow variable provided inside credential source could not be resolved. |
steps.verifyiam.CredentialValueNotProvided |
400 |
Credential not found. If the credential source reference is not provided, we look at the default place like authorization header. |
steps.verifyiam.Forbidden |
403 |
Request could not be forwarded due to lack of sufficient permissions or missing access scopes or any other related issues. |
steps.verifyiam.MiscellaneousAuthorizationConfigurationError |
500 |
An issue with the authentication request to IAM. The API producer needs to fix this error based on details in the error response. |
steps.verifyiam.Unauthorized |
401 |
Problem with the credential, such as the value being invalid or expired. |
steps.verifyiam.UnexpectedAuthorizationInfrastructureError |
500 |
Internal error. |
Deployment errors
This policy does not return any policy-specific deployment errors.
Fault variables
These variables are set when this policy triggers an error at runtime.
| Variables | Where | Example |
|---|---|---|
fault.name="fault_name" |
fault_name is the name of the fault, as listed in the Runtime errors table above. The fault name is the last part of the fault code. | fault.name="Unauthorized" |
verifyiam.policy_name.failed |
policy_name is the user-specified name of the policy that threw the fault. | verifyiam.Verify-IAMToken.failed = true |