الحصول على سياق التخويل
ينطبق على: جميع مستويات إدارة واجهة برمجة التطبيقات
استخدم النهج get-authorization-context
للحصول على سياق التخويل لاتصال محدد (يسمى سابقا تخويل) إلى موفر بيانات اعتماد تم تكوينه في مثيل APIM.
يجلب النهج ويخزن الرموز المميزة للتخويل والتحديث من موفر بيانات الاعتماد المكون باستخدام الاتصال.
إشعار
تعيين عناصر النهج والعناصر التابعة بالترتيب الوارد في بيان النهج. تعلم كيفية إعداد نُهج APIM أو تعديلها.
نهج السياسة
<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" />
سمات
السمة | الوصف | مطلوبة | افتراضي |
---|---|---|---|
مزود معرف | معرف مورد موفر بيانات الاعتماد. يتم السماح بتعبيرات النهج. | نعم | غير متوفر |
معرّف التخويل | معرف مورد الاتصال. يتم السماح بتعبيرات النهج. | نعم | غير متوفر |
اسم متغير السياق | اسم متغير السياق لاستقبال Authorization العنصر. يتم السماح بتعبيرات النهج. |
نعم | غير متوفر |
نوع الهوية | نوع الهوية التي يجب التحقق منها مقابل نهج الوصول للاتصال. - managed : الهوية المدارة المعينة من قبل النظام لمثيل APIM. - jwt : الرمز المميز لحامل JWT المحدد في السمة identity .يتم السماح بتعبيرات النهج. |
لا | managed |
الهوية | رمز مميز لحامل Microsoft Entra JWT للتحقق مقابل أذونات الاتصال. تم تجاهله لـ identity-type بخلاف jwt . المطالبات المتوقعة: - الجمهور: https://azure-api.net/authorization-manager - oid : معرف عنصر الإذن - tid : معرف مستأجر الإذنيتم السماح بتعبيرات النهج. |
لا | غير متاح |
تجاهل الخطأ | منطقي. إذا كان الحصول على سياق التخويل يؤدي إلى حدوث خطأ (على سبيل المثال، لم يتم العثور على مورد الاتصال أو في حالة خطأ): - true : يتم تعيين قيمة خالية إلى متغير السياق. - false : الرجوع 500 إذا قمت بتعيين القيمة إلى false ، وكان تكوين النهج يتضمن قسما on-error ، يتوفر الخطأ في الخاصية context.LastError .يتم السماح بتعبيرات النهج. |
لا | false |
عنصر التخويل
يتلقى متغير سياق التخويل عنصراً من النوع Authorization
.
class Authorization
{
public string AccessToken { get; }
public IReadOnlyDictionary<string, object> Claims { get; }
}
اسم الخاصية | الوصف |
---|---|
AccessToken | رمز وصول الحامل لتفويض طلب HTTP الخلفي. |
المطالبات | المطالبات التي تم إرجاعها من واجهة برمجة تطبيقات استجابة الرمز المميز لخادم التخويل (راجع RFC6749#section-5.1). |
الاستخدام
- أقسام النهج:الواردة.
- نطاقات النهج: العمومية، والمنتج، وواجهة برمجة التطبيقات، والتشغيل
- البوابات: الكلاسيكية، الإصدار 2، الاستهلاك
ملاحظات الاستخدام
- تكوين
identity-type=jwt
عند تعيين نهج الوصول للاتصال إلى كيان الخدمة./.default
يتم دعم نطاقات التطبيق فقط ل JWT.
الأمثلة
الحصول على الرمز المميز مرة أخرى
<!-- 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>
الحصول على الرمز المميز مرة أخرى مع تعيين السمات ديناميكيا
<!-- 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>
إرفاق الرمز المميز باستدعاء الخلفية
<!-- 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>
الحصول على الرمز المميز من الطلب الوارد والرمز المميز للرجوع
<!-- 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>
النهج ذات الصلة
المحتوى ذو الصلة
لمزيد من المعلومات حول العمل مع النُهج، راجع: