اعمل مع رموز OAuth في مصادقة Azure App Service

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

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

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

الموفر أسماء العناوين
Microsoft Entra X-MS-TOKEN-AAD-ID-TOKEN
X-MS-TOKEN-AAD-ACCESS-TOKEN
X-MS-TOKEN-AAD-EXPIRES-ON
X-MS-TOKEN-AAD-REFRESH-TOKEN
الرمز المميز الخاص بـ Facebook 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
س X-MS-TOKEN-TWITTER-ACCESS-TOKEN
X-MS-TOKEN-TWITTER-ACCESS-TOKEN-SECRET

إشعار

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

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

إشعار

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

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

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

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

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

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>

إشعار

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

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