التحقق من صحة الرمز المميز ل Microsoft Entra
ينطبق على: جميع مستويات إدارة واجهة برمجة التطبيقات
validate-azure-ad-token
يفرض النهج وجود وصلاحية رمز ويب JSON المميز (JWT) الذي تم توفيره بواسطة خدمة Microsoft Entra (المعروف سابقا باسم Azure Active Directory) لمجموعة محددة من الأساسيات في الدليل. يمكن استخراج JWT من رأس HTTP أو معلمة استعلام أو قيمة محددة يتم توفيرها باستخدام تعبير نهج أو متغير سياق.
إشعار
استخدم النهج العام validate-jwt
للتحقق من صحة JWT الذي تم توفيره من قبل موفر هوية آخر غير Microsoft Entra.
إشعار
تعيين عناصر النهج والعناصر التابعة بالترتيب الوارد في بيان النهج. تعلم كيفية إعداد نُهج APIM أو تعديلها.
نهج السياسة
<validate-azure-ad-token
tenant-id="tenant ID or URL (for example, "https://contoso.onmicrosoft.com") of the Microsoft Entra ID tenant"
header-name="name of HTTP header containing the token (alternatively, use query-parameter-name or token-value attribute to specify token)"
query-parameter-name="name of query parameter used to pass the token (alternative, use header-name or token-value attribute to specify token)"
token-value="expression returning the token as a string (alternatively, use header-name or query-parameter attribute to specify token)"
failed-validation-httpcode="HTTP status code to return on failure"
failed-validation-error-message="error message to return on failure"
output-token-variable-name="name of a variable to receive a JWT object representing successfully validated token">
<backend-application-ids>
<application-id>Backend application ID from Microsoft Entra</application-id>
<!-- If there are multiple backend application IDs, then add additional application-id elements -->
</backend-application-ids>
<client-application-ids>
<application-id>Client application ID from Microsoft Entra</application-id>
<!-- If there are multiple client application IDs, then add additional application-id elements -->
</client-application-ids>
<audiences>
<audience>audience string</audience>
<!-- if there are multiple possible audiences, then add additional audience elements -->
</audiences>
<required-claims>
<claim name="name of the claim as it appears in the token" match="all | any" separator="separator character in a multi-valued claim">
<value>claim value as it is expected to appear in the token</value>
<!-- if there is more than one allowed value, then add additional value elements -->
</claim>
</required-claims>
<decryption-keys>
<key certificate-id="mycertificate"/>
<!-- if there are multiple keys, then add additional key elements -->
</decryption-keys>
</validate-azure-ad-token>
سمات
السمة | الوصف | مطلوبة | افتراضي |
---|---|---|---|
معرِف المستأجر | معرف المستأجر أو عنوان URL لمستأجر معرف Microsoft Entra، أو أحد المستأجرين المعروفين التاليين: - organizations أو https://login.microsoftonline.com/organizations - للسماح بالرموز المميزة من الحسابات في أي دليل تنظيمي (أي دليل Microsoft Entra)- common أو https://login.microsoftonline.com/common - للسماح بالرموز المميزة من الحسابات في أي دليل تنظيمي (أي دليل Microsoft Entra) ومن حسابات Microsoft الشخصية (على سبيل المثال، Skype، XBox)يتم السماح بتعبيرات النهج. |
نعم | غير متوفر |
header-name | اسم عنوان HTTP الذي يتضمن الرمز المميز. يتم السماح بتعبيرات النهج. | يجب تحديد واحد من header-name ، أو query-parameter-name ، أو token-value . |
Authorization |
query-parameter-name | اسم معلمة الاستعلام التي تحمل الرمز المميز. يتم السماح بتعبيرات النهج. | يجب تحديد واحد من header-name ، أو query-parameter-name ، أو token-value . |
غير متوفر |
token-value | يعيد التعبير سلسلة تحتوي على الرمز المميز. يجب عدم إعادة Bearer كجزء من قيمة الرمز المميز. يتم السماح بتعبيرات النهج. |
يجب تحديد واحد من header-name ، أو query-parameter-name ، أو token-value . |
غير متوفر |
failed-validation-httpcode | رمز حالة HTTP لإرجاع إذا لم ينجح JWT في التحقق من الصحة. يتم السماح بتعبيرات النهج. | لا | 401 |
failed-validation-error-message | رسالة خطأ لإرجاعها في نص استجابة HTTP إذا لم يجتاز JWT التحقق من الصحة. يجب أن تتضمن هذه الرسالة أي أحرف خاصة تم تخطيها بشكل صحيح. يتم السماح بتعبيرات النهج. | لا | تعتمد رسالة الخطأ الافتراضية على مشكلة التحقق من الصحة، على سبيل المثال "JWT غير موجود". |
إخراج اسم الرمز المميز المتغير | السلسلة. اسم متغير السياق الذي سيتلقى قيمة الرمز المميز كعنصر من النوع Jwt عند التحقق من صحة الرمز المميز بنجاح. تعبيرات النهج غير مسموح بها. |
لا | غير متاح |
عناصر
العنصر | الوصف | مطلوب |
---|---|---|
معرفات التطبيقات الخلفية | يحتوي على قائمة بمعرفات التطبيقات الخلفية المقبولة. هذا مطلوب فقط في الحالات المتقدمة لتكوين الخيارات ويمكن إزالته بشكل عام. تعبيرات النهج غير مسموح بها. | لا |
معرفات تطبيق العميل | يحتوي على قائمة بمعرفات تطبيق العميل المقبولة. إذا كانت عناصر متعددة application-id موجودة، تجربة كل قيمة حتى يتم استنفاد الكل (في هذه الحالة فشل التحقق من الصحة) أو حتى تنجح واحدة. إذا لم يتم توفير معرف تطبيق عميل، يجب تحديد مطالبة واحدة أو أكثر audience . تعبيرات النهج غير مسموح بها. |
لا |
audiences | يحتوي على قائمة بمطالبات الجمهور المقبولة التي يمكن أن تكون موجودة ضمن الرمز المميز. إذا كانت قيم متعددة audience موجودة، تجربة كل قيمة حتى يتم استنفاد الكل (في هذه الحالة فشل التحقق من الصحة) أو حتى تنجح واحدة. يتم السماح بتعبيرات النهج. |
لا |
required-claims | يحتوي على قائمة عناصر claim لقيم المطالبة المتوقع أن تكون موجودة على الرمز المميز ليتم اعتبارها صالحة. عند تعيين السمة match إلى all ، يجب أن تكون كل قيمة مطالبة في النهج موجودة في الرمز المميز للتحقق من الصحة للنجاح. عند تعيين السمة match إلى any ، يجب أن تكون مطالبة واحدة على الأقل موجودة في الرمز المميز للتحقق من الصحة للنجاح. يتم السماح بتعبيرات النهج. |
لا |
decryption-keys | قائمة من key العناصر الفرعية، تستخدم لفك تشفير رمز مميز موقع بمفتاح غير متماثل. إذا كانت مفاتيح متعددة موجودة، تجربة كل مفتاح حتى يتم استنفاد جميع المفاتيح (في هذه الحالة فشل التحقق من الصحة) أو نجاح المفتاح.حدد المفتاح العام باستخدام سمة certificate-id مع تعيين قيمة إلى معرف شهادة تم تحميلها إلى APIM. |
لا |
سمات المطالبة
السمة | الوصف | مطلوبة | افتراضي |
---|---|---|---|
الاسم | اسم المطالبة كما هو متوقع أن تظهر في الرمز المميز. يتم السماح بتعبيرات النهج. | نعم | غير متوفر |
match | تحدد السمة match في العنصر claim ما إذا كانت كل قيمة مطالبة في النهج يجب أن تكون موجودة في الرمز المميز للتحقق من الصحة بغرض تحقيق النجاح. القيم المحتملة هي:- all - يجب أن تكون كل قيمة مطالبة في النهج موجودة في الرمز المميز للتحقق من الصحة بغرض تحقيق النجاح.- any - يجب أن تكون قيمة مطالبة واحدة فقط موجودة في الرمز المميز للتحقق من الصحة بغرض تحقيق النجاح.يتم السماح بتعبيرات النهج. |
لا | all |
الفاصل | السلسلة. تحديد فاصل (على سبيل المثال، "،") لاستخدامه لاستخراج مجموعة من القيم من مطالبة متعددة القيم. يتم السماح بتعبيرات النهج. | لا | غير متاح |
السمات الرئيسية
السمة | الوصف | مطلوبة | افتراضي |
---|---|---|---|
مُعرِّف الشهادة | معرف كيان شهادة تم تحميله إلى APIM، يستخدم لتحديد المفتاح العام للتحقق من رمز مميز موقع بمفتاح غير متماثل. | نعم | غير متوفر |
الاستخدام
- أقسام النهج:الواردة.
- نطاقات النهج: العمومية، ومساحة العمل، والمنتج، وواجهة برمجة التطبيقات، والتشغيل
- البوابات: الكلاسيكية، الإصدار 2، الاستهلاك، المستضافة ذاتيا، مساحة العمل
ملاحظات الاستخدام
- يمكنك استخدام نُهج تقييد الوصول في نطاقات مختلفة لأغراض مختلفة. على سبيل المثال، يمكنك تأمين واجهة برمجة التطبيقات بأكملها باستخدام مصادقة Microsoft Entra عن طريق تطبيق
validate-azure-ad-token
النهج على مستوى واجهة برمجة التطبيقات، أو يمكنك تطبيقه على مستوى عملية واجهة برمجة التطبيقات واستخدامهclaims
للحصول على تحكم أكثر دقة. - معرف Microsoft Entra للعملاء (معاينة) غير مدعوم.
الأمثلة
التحقق من صحة الرمز المميز البسيط.
النهج التالي هو الحد الأدنى من شكل النهج validate-azure-ad-token
. يتوقع أن يتم توفير JWT في العنوان الافتراضي Authorization
باستخدام Bearer
النظام. في هذا المثال، يتم توفير معرف مستأجر Microsoft Entra ومعرف تطبيق العميل باستخدام القيم المسماة.
<validate-azure-ad-token tenant-id="{{aad-tenant-id}}">
<client-application-ids>
<application-id>{{aad-client-application-id}}</application-id>
</client-application-ids>
</validate-azure-ad-token>
التحقق من صحة الرمز المميز باستخدام مفتاح فك التشفير
يوضح هذا المثال كيفية استخدام النهج validate-azure-ad-token
للتحقق من صحة رمز مميز تم فك تشفيره باستخدام مفتاح فك التشفير. يتم توفير معرف مستأجر Microsoft Entra ومعرف تطبيق العميل باستخدام القيم المسماة. يتم تحديد المفتاح باستخدام معرف شهادة تم تحميلها (بتنسيق PFX) تحتوي على المفتاح العام.
<validate-azure-ad-token tenant-id="{{aad-tenant-id}}">
<client-application-ids>
<application-id>{{aad-client-application-id}}</application-id>
</client-application-ids>
<decryption-keys>
<key certificate-id="mycertificate"/>
</decryption-keys>
</validate-azure-ad-token>
التحقق من صحة الجمهور والمطالبة
يتحقق النهج التالي من أن الجمهور هو اسم المضيف لمثيل APIM وأن المطالبة ctry
هي US
. معرف مستأجر Microsoft هو المستأجر المعروف organizations
، والذي يسمح بالرموز المميزة من الحسابات في أي دليل تنظيمي. يتم توفير اسم المضيف باستخدام تعبير نهج، ويتم توفير معرف تطبيق العميل باستخدام قيمة مسماة. يتم توفير JWT الذي تم فك ترميزه في jwt
المتغير بعد التحقق من الصحة.
لمزيد من التفاصيل حول المطالبات الاختيارية، اقرأ توفير مطالبات اختيارية لتطبيقك.
<validate-azure-ad-token tenant-id="organizations" output-token-variable-name="jwt">
<client-application-ids>
<application-id>{{aad-client-application-id}}</application-id>
</client-application-ids>
<audiences>
<audience>@(context.Request.OriginalUrl.Host)</audience>
</audiences>
<required-claims>
<claim name="ctry" match="any">
<value>US</value>
</claim>
</required-claims>
</validate-azure-ad-token>
النهج ذات الصلة
المحتوى ذو الصلة
لمزيد من المعلومات حول العمل مع النُهج، راجع:
- البرنامج التعليمي: تحويل واجهة برمجة التطبيقات الخاصة بك وحمايتها
- Policy reference لقائمة كاملة من بيانات النُهج وإعداداتها
- تعبيرات النهج
- تعيين النهج أو تحريرها
- إعادة استخدام التكوينات الخاصة بالنهج
- مستودع القصاصات البرمجية للنهج
- مجموعة أدوات نهج إدارة واجهة برمجة تطبيقات Azure
- نهج المؤلف باستخدام Microsoft Copilot في Azure