العمل باستخدام الرموز المميزة ل OAuth في مصادقة خدمة تطبيقات Azure

توضح لك هذه المقالة كيفية العمل مع الرموز المميزة ل OAuth أثناء استخدام المصادقة والتخويل المضمنين في App Service.

استرداد الرموز المميزة في رمز التطبيق

من رمز الخادم الخاص بك، يتم حقن الرموز المميزة الخاصة بالموفر في رأس الطلب، بحيث يمكنك الوصول إليها بسهولة. يعرض الجدول التالي أسماء رؤوس الرموز المميزة المحتملة:

⁧⁩"الموفر"⁧⁩ أسماء الرؤوس
Azure Active Directory X-MS-TOKEN-AAD-ID-TOKEN
X-MS-TOKEN-AAD-ACCESS-TOKEN
X-MS-TOKEN-AAD-EXPIRES-ON
X-MS-TOKEN-AAD-REFRESH-TOKEN
رمز الفيسبوك X-MS-TOKEN-FACEBOOK-ACCESS-TOKEN
X-MS-TOKEN-FACEBOOK-EXPIRES-ON
Google X-MS-TOKEN-GOOGLE-ID-TOKEN
X-MS-TOKEN-GOOGLE-ACCESS-TOKEN
X-MS-TOKEN-GOOGLE-EXPIRES-ON
X-MS-TOKEN-GOOGLE-REFRESH-TOKEN
Twitter X-MS-TOKEN-TWITTER-ACCESS-TOKEN
X-MS-TOKEN-TWITTER-ACCESS-TOKEN-SECRET

ملاحظة

قد تقدم أطر عمل اللغات المختلفة هذه الرؤوس إلى رمز التطبيق بتنسيقات مختلفة، مثل الأحرف الصغيرة أو أحرف العنوان.

من رمز العميل (مثل تطبيق جوال أو جافا سكريبت داخل المتصفح)، أرسل طلب HTTP GET إلى /.auth/me (يجب تمكين متجر الرموز المميزة ). يحتوي JSON الذي تم إرجاعه على الرموز المميزة الخاصة بالموفر.

ملاحظة

رموز الوصول هي للوصول إلى موارد الموفر ، لذلك فهي موجودة فقط إذا قمت بتكوين الموفر الخاص بك باستخدام سر عميل. لمعرفة كيفية الحصول على الرموز المميزة للتحديث، راجع تحديث رموز الوصول الرمزية.

تحديث الرموز المميزة للمصادقة

عند انتهاء صلاحية الرمز المميز للوصول الخاص بموفر الخدمة (وليس الرمز المميز للجلسة)، تحتاج إلى إعادة مصادقة المستخدم قبل استخدام هذا الرمز المميز مرة أخرى. يمكنك تجنب انتهاء صلاحية الرمز المميز عن طريق إجراء مكالمة GET إلى /.auth/refresh نقطة نهاية طلبك. عند الاتصال ، تقوم App Service تلقائيا بتحديث رموز الوصول في متجر الرموز المميزة للمستخدم المصادق عليه. الطلبات اللاحقة للرموز المميزة بواسطة رمز التطبيق الخاص بك تحصل على الرموز المميزة المحدثة. ومع ذلك ، لكي يعمل تحديث الرمز المميز ، يجب أن يحتوي متجر الرموز المميزة على رموز تحديث لمزودك . يتم توثيق طريقة الحصول على رموز التحديث من قبل كل مزود ، ولكن القائمة التالية هي ملخص موجز:

بمجرد تكوين الموفر الخاص بك ، يمكنك العثور على رمز التحديث المميز ووقت انتهاء الصلاحية لرمز الوصول المميز في متجر الرمز المميز.

لتحديث رمز الوصول المميز الخاص بك في أي وقت، ما عليك سوى الاتصال /.auth/refresh بأي لغة. يستخدم المقتطف التالي jQuery لتحديث رموز الوصول المميزة من عميل جافا سكريبت.

function refreshTokens() {
  let refreshUrl = "/.auth/refresh";
  $.ajax(refreshUrl) .done(function() {
    console.log("Token refresh completed successfully.");
  }) .fail(function() {
    console.log("Token refresh failed. See application logs for details.");
  });
}

إذا قام مستخدم بإلغاء الأذونات الممنوحة لتطبيقك، فقد تفشل مكالمتك بالرد /.auth/me عليها 403 Forbidden . لتشخيص الأخطاء، راجع سجلات التطبيق للحصول على التفاصيل.

تمديد فترة سماح انتهاء صلاحية الرمز المميز للجلسة

تنتهي صلاحية الجلسة الموثقة بعد 8 ساعات. بعد انتهاء صلاحية الجلسة المصادق عليها، هناك فترة سماح مدتها 72 ساعة بشكل افتراضي. خلال فترة السماح هذه، يسمح لك بتحديث الرمز المميز للجلسة باستخدام App Service دون إعادة مصادقة المستخدم. يمكنك فقط الاتصال /.auth/refresh عندما يصبح الرمز المميز لجلستك غير صالح ، ولا تحتاج إلى تتبع انتهاء صلاحية الرمز المميز بنفسك. بمجرد انتهاء فترة السماح البالغة 72 ساعة، يجب على المستخدم تسجيل الدخول مرة أخرى للحصول على رمز مميز صالح للجلسة.

إذا لم تكن 72 ساعة وقتا كافيا بالنسبة لك، فيمكنك تمديد نافذة انتهاء الصلاحية هذه. يمكن أن يكون لتمديد انتهاء الصلاحية لفترة طويلة آثار أمنية كبيرة (مثل عند تسرب رمز مصادقة أو سرقته). لذلك يجب عليك تركه في 72 ساعة افتراضيا أو تعيين فترة التمديد إلى أصغر قيمة.

لتوسيع نافذة انتهاء الصلاحية الافتراضية، قم بتشغيل الأمر التالي في Cloud Shell.

az webapp auth update --resource-group <group_name> --name <app_name> --token-refresh-extension-hours <hours>

ملاحظة

تنطبق فترة السماح فقط على جلسة عمل مصادقة خدمة التطبيق، وليس الرموز المميزة من موفري الهوية. لا توجد فترة سماح للرموز المميزة للموفر منتهية الصلاحية.

الخطوات التالية