Share via


Engedélyezési környezet lekérése

A KÖVETKEZŐRE VONATKOZIK: Minden API Management-szint

get-authorization-context A házirend használatával lekérheti egy megadott kapcsolat engedélyezési környezetét (korábbi nevén engedélyezés) egy olyan hitelesítőadat-szolgáltatóhoz, amely az API Management-példányban van konfigurálva.

A szabályzat lekéri és tárolja az engedélyezési és frissítési jogkivonatokat a konfigurált hitelesítőadat-szolgáltatótól a kapcsolat használatával.

Feljegyzés

Állítsa be a szabályzat elemeit és gyermekelemeit a szabályzatutasításban megadott sorrendben. További információ az API Management-szabályzatok beállításáról és szerkesztéséről.

Szabályzatutasítás

<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" />

Attribútumok

Attribútum Leírás Kötelező Alapértelmezett
provider-id A hitelesítőadat-szolgáltató erőforrás-azonosítója. A szabályzatkifejezések engedélyezettek. Igen n/a
engedélyezési azonosító A kapcsolati erőforrás azonosítója. A szabályzatkifejezések engedélyezettek. Igen n/a
környezeti változó neve Az objektum fogadásához Authorization használt környezeti változó neve. A szabályzatkifejezések engedélyezettek. Igen n/a
identitástípus A kapcsolat hozzáférési szabályzatának ellenőrzéséhez szükséges identitás típusa.
- managed: az API Management-példány rendszer által hozzárendelt felügyelt identitása.
- jwt: Az attribútumban megadott JWT-tulajdonosi identity jogkivonat.

A szabályzatkifejezések engedélyezettek.
Nem managed
identitás Egy Microsoft Entra JWT-tulajdonosi jogkivonat a kapcsolati engedélyek ellenőrzéséhez. Figyelmen kívül hagyva a identity-type nem jwt.

Várt jogcímek:
-Közönség: https://azure-api.net/authorization-manager
- oid: Engedélyobjektum azonosítója
- tid: Engedély-bérlő azonosítója

A szabályzatkifejezések engedélyezettek.
Nem N.A.
ignore-error Logikai. Ha az engedélyezési környezet beszerzése hibát eredményez (például a kapcsolati erőforrás nem található vagy hibaállapotban van):
- true: a környezeti változó értéke null.
- false:Vissza 500

Ha az értéket a következőre falseállítja, és a szabályzatkonfiguráció tartalmaz egy szakaszt on-error , a hiba a context.LastError tulajdonságban érhető el.

A szabályzatkifejezések engedélyezettek.
Nem false

Engedélyezési objektum

Az Engedélyezési környezeti változó egy típusú Authorizationobjektumot kap.

class Authorization
{
    public string AccessToken { get; }
    public IReadOnlyDictionary<string, object> Claims { get; }
}
Tulajdonság neve Leírás
AccessToken Tulajdonosi hozzáférési jogkivonat egy háttérbeli HTTP-kérés engedélyezéséhez.
Igénylések Az engedélyezési kiszolgáló jogkivonat-válasz API-jából visszaadott jogcímek (lásd RFC6749#section-5.1).

Használat

Használati megjegyzések

Példák

Jogkivonat visszakérése

<!-- 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>

Jogkivonat visszakérése dinamikusan beállított attribútumokkal

<!-- 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>

A jogkivonat csatolása a háttérhíváshoz

<!-- 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>

Jogkivonat lekérése a bejövő kérésből és a visszatérési jogkivonatból

<!-- 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>

A szabályzatok használatával kapcsolatos további információkért lásd: