Yetkilendirme bağlamı alma
UYGULANANLAR: Tüm API Management katmanları
API Management örneğinde get-authorization-context
yapılandırılmış bir kimlik bilgisi sağlayıcısına belirtilen bağlantının (eski adı yetkilendirme) yetkilendirme bağlamını almak için ilkeyi kullanın.
İlke, bağlantıyı kullanarak yapılandırılan kimlik bilgisi sağlayıcısından yetkilendirme ve yenileme belirteçlerini getirir ve depolar.
Not
İlkenin öğelerini ve alt öğelerini ilke bildiriminde sağlanan sırayla ayarlayın. API Management ilkelerini ayarlama veya düzenleme hakkında daha fazla bilgi edinin.
İlke bildirimi
<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" />
Özellikler
Öznitelik | Açıklama | Zorunlu | Varsayılan |
---|---|---|---|
sağlayıcı kimliği | Kimlik bilgisi sağlayıcısı kaynak tanımlayıcısı. İlke ifadelerine izin verilir. | Yes | Yok |
authorization-id | Bağlantı kaynağı tanımlayıcısı. İlke ifadelerine izin verilir. | Yes | Yok |
context-variable-name | Nesneyi alacak bağlam değişkeninin Authorization adı. İlke ifadelerine izin verilir. |
Yes | Yok |
kimlik türü | Bağlantının erişim ilkesine karşı denetlenecek kimlik türü. - managed : API Management örneğinin sistem tarafından atanan yönetilen kimliği. - jwt : Özniteliğinde identity belirtilen JWT taşıyıcı belirteci.İlke ifadelerine izin verilir. |
Hayır | managed |
identity | Bağlantı izinlerini denetlemek için bir Microsoft Entra JWT taşıyıcı belirteci. dışında jwt için identity-type yoksayıldı. Beklenen talepler: -Seyirci: https://azure-api.net/authorization-manager - oid : İzin nesnesi kimliği - tid : İzin kiracı kimliğiİlke ifadelerine izin verilir. |
Hayır | YOK |
ignore-error | Boole. Yetkilendirme bağlamını almak bir hatayla sonuçlanırsa (örneğin, bağlantı kaynağı bulunamadıysa veya hata durumundaysa): - true : bağlam değişkenine null değeri atanır. - false :Dönüş 500 değerini olarak false ayarlarsanız ve ilke yapılandırması bir on-error bölüm içeriyorsa, hata özelliğinde context.LastError kullanılabilir.İlke ifadelerine izin verilir. |
Hayır | false |
Yetkilendirme nesnesi
Yetkilendirme bağlam değişkeni türünde Authorization
bir nesnesi alır.
class Authorization
{
public string AccessToken { get; }
public IReadOnlyDictionary<string, object> Claims { get; }
}
Özellik Adı | Açıklama |
---|---|
AccessToken | Arka uç HTTP isteğini yetkilendirmek için taşıyıcı erişim belirteci. |
Talepler | Yetkilendirme sunucusunun belirteç yanıt API'sinden döndürülen talepler (bkz . RFC6749#section-5.1). |
Kullanım
- İlke bölümleri: gelen
- İlke kapsamları: genel, çalışma alanı, ürün, API, işlem
- Ağ geçitleri: klasik, v2, tüketim
Kullanım notları
- Bağlantı için erişim ilkesininbir hizmet sorumlusuna atandığı zaman yapılandırın
identity-type=jwt
. JWT için yalnızca/.default
uygulama kapsamları desteklenir.
Örnekler
Belirteci geri alma
<!-- 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>
Dinamik olarak ayarlanmış özniteliklerle belirteci geri alma
<!-- 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>
Belirteci arka uç çağrısına ekleme
<!-- 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>
Gelen istekten belirteç alma ve belirteç döndürme
<!-- 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>
İlgili ilkeler
İlgili içerik
İlkelerle çalışma hakkında daha fazla bilgi için bkz: