Uzyskiwanie kontekstu autoryzacji
DOTYCZY: Wszystkie warstwy usługi API Management
get-authorization-context
Użyj zasad, aby uzyskać kontekst autoryzacji określonego połączenia (wcześniej nazywanego autoryzacją) dostawcy poświadczeń skonfigurowanego w wystąpieniu usługi API Management.
Zasady pobierają i przechowują tokeny autoryzacji i odświeżania ze skonfigurowanego dostawcy poświadczeń przy użyciu połączenia.
Uwaga
Ustaw elementy zasad i elementy podrzędne w kolejności podanej w instrukcji zasad. Dowiedz się więcej na temat ustawiania lub edytowania zasad usługi API Management.
Instrukcja zasad
<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" />
Atrybuty
Atrybut | opis | Wymagani | Wartość domyślna |
---|---|---|---|
provider-id | Identyfikator zasobu dostawcy poświadczeń. Wyrażenia zasad są dozwolone. | Tak | Nie dotyczy |
identyfikator autoryzacji | Identyfikator zasobu połączenia. Wyrażenia zasad są dozwolone. | Tak | Nie dotyczy |
nazwa-zmiennej kontekstu | Nazwa zmiennej kontekstowej do odbierania Authorization obiektu. Wyrażenia zasad są dozwolone. |
Tak | Nie dotyczy |
identity-type | Typ tożsamości, która ma być sprawdzana względem zasad dostępu połączenia. - managed : przypisana przez system tożsamość zarządzana wystąpienia usługi API Management. - jwt : token elementu nośnego JWT określony w atrybucie identity .Wyrażenia zasad są dozwolone. |
Nie. | managed |
tożsamości | Token elementu nośnego Entra JWT firmy Microsoft w celu sprawdzenia uprawnień połączenia. Ignorowane dla identity-type elementu innego niż jwt . Oczekiwane oświadczenia: -audiencja: https://azure-api.net/authorization-manager - oid : identyfikator obiektu uprawnień - tid : Identyfikator dzierżawy uprawnieńWyrażenia zasad są dozwolone. |
Nie. | Nie dotyczy |
ignoruj błąd | Wartość logiczna. Jeśli uzyskanie kontekstu autoryzacji powoduje błąd (na przykład zasób połączenia nie zostanie znaleziony lub jest w stanie błędu): - true : zmienna kontekstowa ma przypisaną wartość null. - false :wrócić 500 Jeśli ustawisz wartość na false , a konfiguracja zasad zawiera sekcję on-error , błąd jest dostępny we context.LastError właściwości .Wyrażenia zasad są dozwolone. |
Nie. | false |
Obiekt autoryzacji
Zmienna kontekstowa Autoryzacja odbiera obiekt typu Authorization
.
class Authorization
{
public string AccessToken { get; }
public IReadOnlyDictionary<string, object> Claims { get; }
}
Nazwa właściwości | Opis |
---|---|
AccessToken | Token dostępu elementu nośnego w celu autoryzowania żądania HTTP zaplecza. |
Roszczenia | Oświadczenia zwrócone z interfejsu API odpowiedzi tokenu serwera autoryzacji (zobacz RFC6749#section-5.1). |
Użycie
- Sekcje zasad: ruch przychodzący
- Zakresy zasad: globalny, produkt, interfejs API, operacja
- Bramy: klasyczne, v2, zużycie
Uwagi dotyczące użycia
- Skonfiguruj
identity-type=jwt
, kiedy zasady dostępu dla połączenia są przypisane do jednostki usługi. Tylko/.default
zakresy tylko aplikacji są obsługiwane dla zestawu JWT.
Przykłady
Uzyskiwanie tokenu z powrotem
<!-- 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>
Uzyskiwanie tokenu z dynamicznym zestawem atrybutów
<!-- 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>
Dołączanie tokenu do wywołania zaplecza
<!-- 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>
Uzyskiwanie tokenu z żądania przychodzącego i tokenu zwrotnego
<!-- 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>
Powiązane zasady
Powiązana zawartość
Aby uzyskać więcej informacji na temat pracy z zasadami, zobacz:
- Samouczek: przekształcanie i ochrona interfejsu API
- Dokumentacja zasad dla pełnej listy instrukcji zasad i ich ustawień
- Wyrażenia zasad
- Ustawianie lub edytowanie zasad
- Ponowne używanie konfiguracji zasad
- Repozytorium fragmentów zasad
- Tworzenie zasad przy użyciu rozwiązania Microsoft Copilot na platformie Azure