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ójaA 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ú Authorization
objektumot 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
- Szabályzatszakaszok: bejövő
- Szabályzathatókörök: globális, munkaterület, termék, API, művelet
- Átjárók: klasszikus, v2, használat
Használati megjegyzések
- Konfigurálja
identity-type=jwt
, ha a kapcsolat hozzáférési szabályzata egy szolgáltatásnévhez van rendelve. A JWT csak/.default
alkalmazásalapú hatóköröket támogat.
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>
Kapcsolódó szabályzatok
Kapcsolódó tartalom
A szabályzatok használatával kapcsolatos további információkért lásd:
- Oktatóanyag: AZ API átalakítása és védelme
- Szabályzathivatkozás a szabályzatutasságok és azok beállításainak teljes listájához
- Házirend-kifejezések
- Házirendek beállítása vagy szerkesztése
- Szabályzatkonfigurációk újrafelhasználása
- Szabályzatrészletek adattára
- Szabályzatok létrehozása az Azure-hoz készült Microsoft Copilot használatával