أدوات المطور · وحدة فك التشفير JWT
رمز المعرف مقابل رمز الوصول: لماذا اتصال OpenID JWT ليس مفتاح API
· خلفية
jwt oauth المصادقة
قد يكون كلاهما JWTs من نفس المزود، إلا أنهما يجيبان على أسئلة مختلفة. يشرح هذا المنشور ما يحتويه كل من رمز المعرف ورمز الوصول، ومن يجب أن يستخدمهما، وكيفية التمييز بينهما عن طريق فك التشفير.
يرفض API الرمز المميز الذي يبدو صالحًا تمامًا - لأنه لم يكن مخصصًا لـ API على الإطلاق
يمكن لـ API رفض رمز مميز جيد الصياغة وموقع بشكل صحيح لأن بيانات الاعتماد هذه تم إصدارها لمستهلك آخر ولغرض آخر. "إنه JWT" يصف التنسيق المحتمل، وليس الإذن بإرساله إلى كل مكان. تجيب رموز المعرف ورموز الوصول على أسئلة مختلفة في تدفق الهوية.
يمكن أن يعرض ToolAcre أنماط الرأس والحمولة التي تدعم تصحيح الأخطاء، ولكن لا يمكنه مصادقة الرمز المميز أو التحقق من صحة ملف تعريف OpenID Connect. يجب أن يأتي التصنيف النهائي من عقد المزود وتدفق الإصدار ونتيجة التحقق الموثوقة بدلاً من الفحص البصري.
قد تقترح مطالبات رمز الهوية استخدام الهوية؛ لا يقوم جهاز فك الترميز العام هذا بالتحقق من صحة ملف تعريف OpenID Connect
يقوم رمز المعرف بتوصيل معلومات المصادقة إلى العميل الذي طلب تسجيل الدخول. اعتمادًا على ملف التعريف، قد تتضمن المطالبات المرئية رقمًا أو وقت مصادقة أو طرق مصادقة أو تجزئة مرتبطة برمز مميز آخر. هذه الحقول ليست منح تفويض API عامة.
يعامل جهاز فك التشفير `auth_time` كحقل على شكل وقت ويعرض أسماء أخرى على أنها خاصة بالتطبيق ما لم تكن من بين سبعة أساسيات. ولا يتحقق من صحة nonce أو `at_hash` أو `amr` أو دلالات جمهور العميل. تظل حمولة الهوية القابلة للقراءة غير موثوقة حتى يتحقق العميل من صحتها بشكل صحيح.
قد تكون رموز الوصول عبارة عن JWTs أو غير شفافة؛ فقط JWTs المكونة من ثلاثة أجزاء تناسب وحدة فك التشفير هذه
يقوم رمز الوصول بتفويض المكالمات إلى خادم الموارد بموجب نظام ترخيص. قد تكون JWT أو سلسلة غير شفافة. الشكل الموقع المكون من ثلاثة أجزاء فقط هو الذي يناسب مسار ToolAcre؛ لا يحتوي الرمز غير الشفاف على بنية عامة من جانب العميل لفك تشفيرها ولا يجب فرضه من خلال هذه الأداة.
يمكن لرمز الوصول JWT أن يحمل معلومات عن الجمهور والنطاق، ولكن هذه القيم تحتاج إلى التحقق الموثق وسياسة الموارد. لا تقوم لوحة المتصفح بتنفيذ خادم موارد ولا يمكنها معرفة ما إذا كان النطاق يسمح بعملية معينة.
رموز التحديث — عادةً ما تكون غير شفافة، ولا يُقصد بها فك تشفيرها مطلقًا، ولا يتم إرسالها مطلقًا إلى API
يدعم رمز التحديث الحصول على بيانات اعتماد الوصول البديلة بموجب قواعد الموفر. وهو عادةً ما يكون معتمًا وليس مخصصًا لواجهات برمجة تطبيقات الموارد. إنها أيضًا بيانات اعتماد عالية القيمة، لذا فإن لصقها في وحدة فك التشفير يخلق مخاطر دون فائدة تشخيصية موثوقة.
لا تستنتج أنه يجب فك تشفير كل قيمة على شكل رمز مميز. استخدم أدوات الموفر والسجلات الخاضعة للتحكم في حالات فشل التحديث. ينطبق التحذير الصريح لـ ToolAcre ضد رموز الإنتاج بقوة خاصة هنا، ولا يوفر المحلل اللغوي المكون من ثلاثة أجزاء أي عملية تحديث.
تختلف الجماهير — معرف العميل في رمز معرف مقابل المورد في رمز وصول
الجمهور هو دليل قوي لأن المستهلك المقصود يختلف. غالبًا ما يستهدف رمز المعرف العميل، بينما يستهدف رمز الوصول أحد الموارد. تعتمد المعرفات والتمثيلات الدقيقة على الموفر والملف الشخصي، لذلك لا تخترع هذه المقالة نمط سلسلة عالمي.
يمكن أن يوفر الرأس `typ` أيضًا تصنيفًا صريحًا، ولكنه يظل بيانات خاضعة للتحكم في الرمز المميز حتى يتم التحقق. ToolAcre يحذر فقط عندما تختلف السلسلة `typ` عن `JWT`؛ ولا يتعرف على كل تصنيف للملف الشخصي أو يحوله إلى قرار ترخيص.
مثال عملي: مقارنة الحقول المرئية دون معاملتها كدليل على نوع الرمز المميز
قم بفك تشفير مثالين اصطناعيين: أحدهما يحمل مطالبات المصادقة الموجهة للعميل والآخر يحمل جمهور الموارد ونطاقها. سجل الاختلافات في `aud` و`typ` وأسماء الحمولة. يعلمك التمرين ما يجب طرحه على المُصدر، وليس كيفية إثبات هوية أي من المثالين.
يمكن للرمز المميز الملفق نسخ نفس التسميات، ويمكن للرمز الحقيقي استخدام اصطلاحات خاصة بالموفر. قم بتأكيد النوع من رد الإصدار والوثائق، ثم قم بالتحقق من صحته مع المستهلك المقصود. إن مخرجات وحدة فك التشفير هي أدلة داعمة، وليست السلطة صاحبة القرار أبدًا.
ما لا يغطيه هذا هو تدفقات OAuth التي تصدر هذه الرموز المميزة، والتي تعد موضوعًا منفصلاً
لا تشرح هذه المقارنة رمز التفويض أو الجهاز أو التدفقات الأخرى التي تصدر الرموز المميزة. كما أنه لا يغطي خطوات التحقق الخاصة بالموفر أو الاستبطان غير الشفاف لرمز الوصول أو تدوير التحديث. تعتمد هذه المواضيع على النظام البيئي المحدد والنشر.
اجعل سؤال التصحيح الفوري محدودًا: ما هي بيانات الاعتماد التي تلقاها العميل، ومن هو المستهلك المقصود، وما هو المكون الموثوق الذي يتحقق من صحته؟ تؤدي الإجابة على هذه الأسئلة الثلاثة إلى منع شكل JWT العام من مسح أدوار البروتوكول.
الخلاصة: انظر إلى aud واكتب قبل الإرسال — تتيح لك وحدة فك التشفير ToolAcre JWT التحقق من نوع الرمز المميز الذي تحتفظ به
انظر إلى الجمهور واكتب قبل إرسال الرمز المميز، لكن لا تثق في أي من الحقلين حتى تنجح عملية التحقق. ينتمي رمز المعرف إلى حدود التحقق من صحة العميل الخاص به؛ ينتمي رمز الوصول إلى خادم الموارد الخاص به. ينتمي رمز التحديث إلى عملية التحديث الخاصة بالموفر، وليس في API.
يساعد ToolAcre على قراءة الأمثلة الآمنة المكونة من ثلاثة أجزاء ولا يطالب بتصنيفها أو التحقق من صحتها. استخدمه لاكتشاف الأخطاء المحتملة، ثم اسمح للتدفق الموثق وأداة التحقق التي تم تكوينها بشكل مستقل بتحديد الغرض الحقيقي لبيانات الاعتماد.