Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
GÄLLER FÖR: Alla API Management-nivåer
get-authorization-context Använd principen för att hämta auktoriseringskontexten för en angiven anslutning (kallades tidigare auktorisering) till en provider för autentiseringsuppgifter som har konfigurerats i API Management-instansen.
Principen hämtar och lagrar auktoriserings- och uppdateringstoken från den konfigurerade providern för autentiseringsuppgifter med hjälp av anslutningen.
Kommentar
Ange principens element och underordnade element i den ordning som anges i principbeskrivningen. Läs mer om hur du anger eller redigerar API Management-principer.
Principuttryck
<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
| Attribut | beskrivning | Obligatoriskt | Standardvärde |
|---|---|---|---|
| provider-id | Resursidentifieraren för autentiseringsprovidern. Principuttryck tillåts. | Ja | Ej tillämpligt |
| authorization-id | Anslutningsresursidentifieraren. Principuttryck tillåts. | Ja | Ej tillämpligt |
| context-variable-name | Namnet på kontextvariabeln som ska ta emot Authorization objektet. Principuttryck tillåts. |
Ja | Ej tillämpligt |
| identitetstyp | Typ av identitet som ska kontrolleras mot anslutningens åtkomstprincip. - managed: systemtilldelad hanterad identitet för API Management-instansen. - jwt: JWT-ägartoken som anges i attributet identity .Principuttryck tillåts. |
Nej | managed |
| identitet | En Microsoft Entra JWT-ägartoken för att kontrollera anslutningsbehörigheterna. Ignoreras för identity-type andra än jwt. Förväntade anspråk: -publik: https://azure-api.net/authorization-manager - oid: Behörighetsobjekt-ID - tid: Behörighetsklient-IDPrinciputtryck tillåts. |
Nej | Ej tillämpligt |
| ignore-error | Boolesk. Om anskaffning av auktoriseringskontexten resulterar i ett fel (till exempel att anslutningsresursen inte hittas eller är i ett feltillstånd): - true: kontextvariabeln tilldelas värdet null. - false:återvända 500Om du anger värdet till false, och principkonfigurationen innehåller ett on-error avsnitt, är felet tillgängligt i egenskapen context.LastError .Principuttryck tillåts. |
Nej | false |
Auktoriseringsobjekt
Kontextvariabeln Auktorisering tar emot ett objekt av typen Authorization.
class Authorization
{
public string AccessToken { get; }
public IReadOnlyDictionary<string, object> Claims { get; }
}
| Egenskapsnamn | beskrivning |
|---|---|
| AccessToken | Ägaråtkomsttoken för att auktorisera en HTTP-begäran för serverdelen. |
| Anspråk | Anspråk som returneras från auktoriseringsserverns API för tokensvar (se RFC6749#section-5.1). |
Förbrukning
- Principavsnitt: inkommande
- Principomfattningar: global, produkt, API, åtgärd
- Gatewayer: klassisk, v2, förbrukning
Användningsanteckningar
- Konfigurera
identity-type=jwtnär åtkomstprincipen för anslutningen tilldelas till tjänstens huvudnamn. Endast/.defaultappomfattningar stöds för JWT.
Exempel
Hämta token tillbaka
<!-- 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>
Hämta token med dynamiskt inställda attribut
<!-- 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>
Koppla token till serverdelsanropet
<!-- 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>
Hämta token från inkommande begäran och returtoken
<!-- 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>
Relaterade principer
Relaterat innehåll
Mer information om hur du arbetar med principer finns i:
- Självstudie: Transformera och skydda ditt API
- Principreferens för en fullständig lista över principinstruktioner och deras inställningar
- Principuttryck
- Ange eller redigera principer
- Återanvända principkonfigurationer
- Lagringsplats för principfragment
- Lagringsplats för principlekplats
- Principverktyg för Azure API Management
- Få Hjälp med Copilot för att skapa, förklara och felsöka principer