Získání kontextu autorizace
PLATÍ PRO: Všechny úrovně služby API Management
get-authorization-context
Pomocí zásad získáte autorizační kontext zadaného připojení (dříve označovaného jako autorizace) ke zprostředkovateli přihlašovacích údajů, který je nakonfigurovaný v instanci služby API Management.
Zásady načítají a ukládají autorizační a obnovovací tokeny z nakonfigurovaného zprostředkovatele přihlašovacích údajů pomocí připojení.
Poznámka:
Nastavte prvky zásad a podřízené prvky v pořadí uvedeném v prohlášení o zásadách. Přečtěte si další informace o tom, jak nastavit nebo upravit zásady služby API Management.
Prohlášení o zásadách
<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" />
Atributy
Atribut | Popis | Požaduje se | Výchozí |
---|---|---|---|
provider-id | Identifikátor prostředku zprostředkovatele přihlašovacích údajů. Výrazy zásad jsou povolené. | Yes | – |
authorization-id | Identifikátor prostředku připojení. Výrazy zásad jsou povolené. | Yes | – |
název kontextové proměnné | Název kontextové proměnné pro příjem objektuAuthorization . Výrazy zásad jsou povolené. |
Yes | – |
typ identity | Typ identity pro kontrolu zásad přístupu připojení - managed : spravovaná identita přiřazená systémem instance služby API Management. - jwt : Nosný token JWT zadaný v atributu identity .Výrazy zásad jsou povolené. |
No | managed |
Identity | Nosný token Microsoft Entra JWT pro kontrolu oprávnění připojení. Ignorováno pro identity-type jiné než jwt . Očekávané deklarace identity: -obecenstvo: https://azure-api.net/authorization-manager - oid : ID objektu oprávnění - tid : ID tenanta oprávněníVýrazy zásad jsou povolené. |
No | – |
ignore-error | Logický. Pokud získání kontextu autorizace způsobí chybu (například prostředek připojení nebyl nalezen nebo je ve stavu chyby): - true : Kontextová proměnná má přiřazenou hodnotu null. - false :vrátit 500 Pokud nastavíte hodnotu na false hodnotu a konfigurace zásady obsahuje on-error oddíl, chyba je k dispozici ve context.LastError vlastnosti.Výrazy zásad jsou povolené. |
No | false |
Objekt autorizace
Kontextová proměnná autorizace přijímá objekt typu Authorization
.
class Authorization
{
public string AccessToken { get; }
public IReadOnlyDictionary<string, object> Claims { get; }
}
Název vlastnosti | Popis |
---|---|
AccessToken | Nosný přístupový token pro autorizaci požadavku HTTP back-endu |
Žádosti | Deklarace identity vrácené z rozhraní API odpovědi tokenu autorizačního serveru (viz RFC6749#section-5.1). |
Využití
- Oddíly zásad: příchozí
- Obory zásad: globální, produkt, rozhraní API, operace
- Brány: Classic, v2, consumption
Poznámky k využití
- Nakonfigurujte
identity-type=jwt
, kdy se k instančnímu objektu přiřadí zásady přístupu pro připojení. JWT podporuje pouze/.default
obory jen pro aplikace.
Příklady
Získání tokenu zpět
<!-- 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>
Získání tokenu zpět pomocí dynamicky nastavených atributů
<!-- 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>
Připojení tokenu k back-endovému volání
<!-- 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>
Získání tokenu z příchozího požadavku a návratového tokenu
<!-- 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>
Související zásady
Související obsah
Další informace o práci se zásadami najdete v tématech:
- Kurz: Transformace a ochrana rozhraní API
- Referenční informace o zásadách pro úplný seznam prohlášení o zásadách a jejich nastavení
- Výrazy zásad
- Nastavení nebo úprava zásad
- Opakované použití konfigurací zásad
- Úložiště fragmentů zásad
- Vytváření zásad pomocí Microsoft Copilotu v Azure