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.
<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" />
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 |
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). |
- Richtlinienabschnitte: inbound
- Richtlinienbereiche: global, product, API, operation
- Gateways: classic, v2, consumption
- 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.
<!-- 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>
<!-- 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>
<!-- 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>
<!-- 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>
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
- Erstellen von Richtlinien mit Microsoft Copilot in Azure