Autorisierungskontext abrufen
GILT FÜR: Alle API Management-Ebenen
Verwenden Sie die Richtlinie get-authorization-context
, um den Autorisierungskontext einer angegebenen Verbindung (zuvor als Autorisierung bezeichnet) mit einem Anmeldeinformationsanbieter abzurufen, die in der API Management-Instanz konfiguriert ist.
Die Richtlinie ruft über die Verbindung Autorisierungs- und Aktualisierungstoken vom konfigurierten Anmeldeinformationsanbieter ab.
Hinweis
Legen Sie die Elemente und untergeordneten Elemente einer Richtlinie in der Reihenfolge fest, die in der Richtlinienanweisung angegeben ist. Erfahren Sie mehr darüber, wie Sie API Management-Richtlinien festlegen oder bearbeiten.
Richtlinienanweisung
<get-authorization-context
provider-id="credential provider id"
authorization-id="connection id"
context-variable-name="variable name"
identity-type="managed | jwt"
identity="JWT bearer token"
ignore-error="true | false" />
Attribute
Attribut | BESCHREIBUNG | Erforderlich | Standard |
---|---|---|---|
provider-id | Der Ressourcenbezeichner des Anmeldeinformationsanbieters. Richtlinienausdrücke sind zulässig. | Ja | – |
authorization-id | Der Ressourcenbezeichner der Verbindung. Richtlinienausdrücke sind zulässig. | Ja | – |
context-variable-name | Der Name der Kontextvariablen, um das Authorization -Objekt zu empfangen. Richtlinienausdrücke sind zulässig. |
Ja | – |
identity-type | Typ der Identität, der über die Zugriffsrichtlinie der Verbindung überprüft werden soll. - managed : vom System zugewiesene verwaltete Identität für die API Management-Instanz. - jwt : JWT-Bearertoken, das im identity -Attribut angegeben ist.Richtlinienausdrücke sind zulässig. |
Nein | managed |
identity | Ein Microsoft Entra-JWT-Bearertoken, das über die Verbindungsberechtigungen überprüft werden soll. Ignoriert für anderen identity-type als jwt . Erwartete Ansprüche: - audience (Zielgruppe): https://azure-api.net/authorization-manager - oid : Berechtigungsobjekt-ID - tid : Berechtigungsmandanten-IDRichtlinienausdrücke sind zulässig. |
Nein | – |
ignore-error | Boolesch. Wenn das Abrufen des Autorisierungskontexts zu einem Fehler führt (z. B. kann die Verbindungsressource nicht gefunden werden, oder sie befindet sich in einem Fehlerzustand): - true : Der Kontextvariablen wird ein Wert von Null zugewiesen. - false : 500 zurückgeben.Wenn Sie den Wert auf false festlegen und die Richtlinienkonfiguration den Abschnitt on-error enthält, ist der Fehler in der Eigenschaft context.LastError verfügbar.Richtlinienausdrücke sind zulässig. |
Nein | false |
Autorisierungsobjekt
Die Autorisierungskontextvariable empfängt ein Objekt vom Typ Authorization
.
class Authorization
{
public string AccessToken { get; }
public IReadOnlyDictionary<string, object> Claims { get; }
}
Eigenschaftenname | BESCHREIBUNG |
---|---|
AccessToken | Bearer-Zugriffstoken zum Autorisieren einer Back-End-HTTP-Anforderung. |
Ansprüche | Ansprüche, die von der Tokenantwort-API des Autorisierungsservers zurückgegeben werden (siehe RFC6749#section-5.1). |
Verwendung
- Richtlinienabschnitte: inbound
- Richtlinienbereiche: global, product, API, operation
- Gateways: classic, v2, consumption
Hinweise zur Verwendung
- Konfigurieren Sie
identity-type=jwt
, wenn die Zugriffsrichtlinie für die Verbindung einem Dienstprinzipal zugewiesen ist. Für JWT werden ausschließlich reine/.default
-App-Bereiche unterstützt.
Beispiele
Rückgabe des Tokens
<!-- Add to inbound policy. -->
<get-authorization-context
provider-id="github-01"
authorization-id="auth-01"
context-variable-name="auth-context"
identity-type="managed"
ignore-error="false" />
<!-- Return the token -->
<return-response>
<set-status code="200" />
<set-body template="none">@(((Authorization)context.Variables.GetValueOrDefault("auth-context"))?.AccessToken)</set-body>
</return-response>
Rückgabe des Tokens mit dynamisch festgelegten Attributen
<!-- Add to inbound policy. -->
<get-authorization-context
provider-id="@(context.Request.Url.Query.GetValueOrDefault("authorizationProviderId"))"
authorization-id="@(context.Request.Url.Query.GetValueOrDefault("authorizationId"))" context-variable-name="auth-context"
ignore-error="false"
identity-type="managed" />
<!-- Return the token -->
<return-response>
<set-status code="200" />
<set-body template="none">@(((Authorization)context.Variables.GetValueOrDefault("auth-context"))?.AccessToken)</set-body>
</return-response>
Anfügen des Tokens an den Back-End-Aufruf
<!-- Add to inbound policy. -->
<get-authorization-context
provider-id="github-01"
authorization-id="auth-01"
context-variable-name="auth-context"
identity-type="managed"
ignore-error="false" />
<!-- Attach the token to the backend call -->
<set-header name="Authorization" exists-action="override">
<value>@("Bearer " + ((Authorization)context.Variables.GetValueOrDefault("auth-context"))?.AccessToken)</value>
</set-header>
Abrufen des Tokens aus der eingehenden Anforderung und Rückgabe des Tokens
<!-- Add to inbound policy. -->
<get-authorization-context
provider-id="github-01"
authorization-id="auth-01"
context-variable-name="auth-context"
identity-type="jwt"
identity="@(context.Request.Headers["Authorization"][0].Replace("Bearer ", ""))"
ignore-error="false" />
<!-- Return the token -->
<return-response>
<set-status code="200" />
<set-body template="none">@(((Authorization)context.Variables.GetValueOrDefault("auth-context"))?.AccessToken)</set-body>
</return-response>
Verwandte Richtlinien
Zugehöriger Inhalt
Weitere Informationen zum Arbeiten mit Richtlinien finden Sie hier:
- Tutorial: Transformieren und Schützen Ihrer API
- Unter Richtlinien für die API-Verwaltung finden Sie eine komplette Liste der Richtlinienanweisungen und der zugehörigen Einstellungen.
- Richtlinienausdrücke
- Festlegen oder Bearbeiten von Richtlinien
- Wiederverwenden von Richtlinienkonfigurationen
- Repository für Richtliniencodeausschnitte
- Azure API Management-Richtlinientoolkit
- Erstellen von Richtlinien mit Microsoft Copilot in Azure