أدوات المطور · وحدة فك التشفير JWT
تصحيح أخطاء 401: ما الذي يجب التحقق منه في JWT التي تم فك تشفيرها قبل إلقاء اللوم على API
· لماذا يهم
jwt تصحيح الأخطاء المصادقة
تعود معظم حالات رفض الرموز المميزة إلى عدد قليل من مشكلات المطالبات التي يمكنك اكتشافها من خلال قراءة الحمولة. يقدم هذا المنشور قائمة مرجعية، بدءًا من انتهاء الصلاحية وحتى الجمهور وحتى أخطاء النسخ واللصق، من أجل التحقق منها.
لقد نجح الأمر بالأمس — 401 الذي يظهر بدون تغيير في التعليمات البرمجية
يمكن أن ينشأ 401 الذي يظهر بدون تغيير رمز العميل في عمر الرمز المميز أو سياسة المصدر أو تدوير المفتاح أو اختيار الجمهور أو نسخة تالفة. ابدأ بالأدلة بدلاً من افتراض أن API معطل. احتفظ بتفاصيل الاستجابة ومعرفات الارتباط قبل معالجة بيانات الاعتماد.
قم بفك تشفير نسخة منتهية الصلاحية أو اصطناعية أو يتم التحكم فيها بشكل مناسب فقط. يمكن لـ ToolAcre كشف الأدلة الهيكلية والمطالبات، لكنه لا يستطيع تحديد كل رفض للخادم لأنه لا يحتوي على مفتاح أو سياسة المصدر أو سجلات API. تعمل القائمة المرجعية على تضييق نطاق الأسئلة؛ ولا يحل محل حكم خادم الموارد.
انسخ الأخطاء أولاً - بادئات "الحامل" والأسطر الجديدة اللاحقة والرموز المميزة المقتطعة
تحقق من القيمة المنسوخة أولاً. ToolAcre يزيل المسافات البيضاء المحيطة ويزيل بادئة `Bearer ` غير حساسة لحالة الأحرف، والتي تتعامل مع لصق رأس التفويض الشائع. ومن ثم يتطلب بالضبط ثلاثة أجزاء مفصولة بنقاط. يشير العد الخاطئ إلى الاقتطاع أو نموذج الرمز المميز الخاطئ أو علامات الترقيم الإضافية قبل بدء تحليل المطالبة.
فشل الرأس أو الحمولة الفارغة على وجه التحديد. يحتوي base64url غير الصالح، وUTF-8 غير الصالح، وJSON غير الصالح على أخطاء منفصلة. تساعد هذه الفروق في تحديد ما إذا كان النقل قد ألحق الضرر بالرمز المميز. قد يكون التوقيع مشوهًا دون حظر الفحص، ولكن يظل هذا التحذير بمثابة فشل محتمل في التحقق ويتطلب تأكيدًا من جانب الخادم.
exp وnbf: فحص القيم المستندة إلى الثواني دون تحويل العرض إلى حكم صلاحية
افحص القيم الرقمية `exp` و`nbf` بعد ذلك. ToolAcre يضرب الثواني في 1,000، ويعرض UTC ويصنف انتهاء مبكر أو مستقبل ليس قبل بالنسبة لساعة المتصفح. قد تكشف القيمة المكونة من ثلاثة عشر رقمًا عن كتابة المللي ثانية في المكان المتوقع للثواني.
لا تقم بترويج هذه التسميات للتنفيذ. يمكن للرمز المميز المزور المطالبة بانتهاء الصلاحية في المستقبل، وقد يستخدم الخادم سياسة مختلفة للساعة أو المهلة. تحدد الشاشة العمليات الحسابية التي تستحق المقارنة مع السجلات الموثوقة؛ يجب أن ينجح التحقق من التشفير قبل أن تؤثر المطالبات على القبول.
aud و iss — هل هذا الرمز المميز لـ API، من جهة الإصدار التي يثق بها API؟
يجب أن يحدد `aud` المستلم المقصود بموجب سياسة API، بينما يجب أن يتطابق `iss` مع علاقة المُصدر الموثوق به. ToolAcre يسرد كلا القيمتين اللتين تم فك ترميزهما ويشرح معانيهما المسجلة. ولا يقارنها بتكوين API أو يربط سلسلة مُصدر بمجموعة مفاتيح.
يمكن اختلاق مُصدر معقول URL واسم جمهور. لا تقارن القيم التي تم فك تشفيرها بالضبط مع التوقعات التي تم تكوينها للخادم إلا بعد الحفاظ على حدود التحقق من التوقيع. إذا كانت العديد من الخدمات تشترك في البنية الأساسية للهوية، فإن عمليات التحقق من الجمهور مهمة بشكل خاص لمنع استخدام رمز مميز صالح لخدمة واحدة في خدمة أخرى.
قد يتم اقتراح نوع الرمز المميز من خلال الترويسات والمطالبات، لكن فك التشفير لا يمكن أن يؤكد هذا التصنيف
يمكن أن يبدو رمز المعرف ورمز الوصول على شكل JWTs مكونة من ثلاثة أجزاء. قد يقترح العنوان `typ` والجمهور والنطاقات والمطالبات الخاصة بالملف الشخصي المطالبات التي تمتلكها. ToolAcre يحذر من سلسلة غير متوقعة `typ`، لكنه لا يطبق تصنيف OpenID Connect أو OAuth المميز.
استخدم وثائق المصدر وتدفق العميل لتحديد نوع الرمز المميز المتوقع. يمكن أن يفشل إرسال رمز معرف مميز إلى API حتى عندما يكون توقيعه صالحًا لموفر الهوية. فك التشفير يدعم التشخيص؛ لا يمكن مصادقة تسمية النوع أو منح API صلاحية.
طفل بعد تدوير المفتاح - رمز مميز صالح يشير إلى مفتاح لم يعد الخادم يمتلكه
بعد تدوير المفتاح، قد يشير الرأس `kid` إلى مفتاح غير موجود في المجموعة الموثوقة الحالية للخادم. اقرأ المعرف، ثم افحص ذاكرة التخزين المؤقت وسجلات مجموعة المفاتيح على أداة التحقق. لا تقم بإحضار URL المقدم في الرأس أو تقبل المادة الرئيسية المضمنة كحل بديل سريع.
قد يستمر فشل الرمز المميز الموقع بشكل صحيح إذا لم يتمكن المدقق من تحديد موقع المفتاح المسموح به، بينما يمكن للمهاجم كتابة أي `kid` في رأس لم يتم التحقق منه. القيمة عبارة عن تلميح بحث مقيد بتكوين جهة الإصدار الموثوق بها، وليست دليلاً على وجوب تصديق مفتاح معين.
مثال عملي - تشغيل رمز مميز مرفوض من خلال قائمة التحقق في وحدة فك الترميز ToolAcre JWT
بالنسبة للفرز الناجح، خذ رمزًا مرفوضًا متحكمًا فيه، وقم بتأكيد ثلاثة أجزاء، وافحص الأخطاء، ثم قم بتسجيل `exp`، `nbf`، `aud`، `iss`، `typ` و`kid` دون تحريره. قارن كل حقل بهدف الطلب API والتكوين الموثوق به لأداة التحقق. احتفظ بسجلات الخادم مفتوحة لفئة الفشل الفعلي.
إذا كانت كافة القيم المرئية تبدو متوقعة، فلا تستنتج أن API خطأ. لا يزال من الممكن أن يفسر تلف التوقيع أو وجود مادة رئيسية خاطئة أو حالة إبطال أو سياسة غير معروضة 401. يظل ToolAcre `signatureVerified` كاذبًا بغض النظر عن مدى ترتيب JSON.
ما لا يغطيه هذا والوجبات الجاهزة - لا يمكن لجهاز فك التشفير أن يخبرك ما إذا كان التوقيع صالحًا أم لا؛ تعثر قائمة التحقق على مشكلات المطالبة، ويحتاج فشل التوقيع إلى سجلات الخادم
لا يمكن لوحدة فك التشفير إخبارك ما إذا كان التوقيع صالحًا أم لا. تعثر قائمة التحقق من المطالبات الخاصة بها على مشكلات النسخ والحمولة التي تكون مرئية بدون مفتاح؛ تحتاج حالات فشل التوقيع وقرارات السياسة الرسمية إلى أدلة الخادم. تعامل مع فك التشفير كملاحظة تشخيصية واحدة من بين عدة ملاحظات.
يتم ترتيب أسرع مسار يمكن الاعتماد عليه: الحفاظ على سياق الاستجابة، وفحص شكل الرمز المميز، ومقارنة الوحدات الزمنية، ثم مقارنة جهة الإصدار والجمهور والنوع ومعرف المفتاح بالتكوين الموثوق به. توقف عن الثقة حتى يؤكد المدقق الحقيقي التشفير والسياسة.