مشاركة عبر


التحقق من صحة الرمز المميز ل 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، يستخدم لتحديد المفتاح العام للتحقق من رمز مميز موقع بمفتاح غير متماثل. ‏‏نعم‬ غير متوفر

الاستخدام

ملاحظات الاستخدام

  • يمكنك استخدام نُهج تقييد الوصول في نطاقات مختلفة لأغراض مختلفة. على سبيل المثال، يمكنك تأمين واجهة برمجة التطبيقات بأكملها باستخدام مصادقة 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>

لمزيد من المعلومات حول العمل مع النُهج، راجع: