عن المشروع
jwt-go هي مكتبة Go جاهزة للإنتاج تنفذ رموز JSON Web Tokens (JWT) كما هو محدد في RFC 7519. توفر دعمًا شاملًا لتحليل والتحقق من وتوليد وتوقيع JWTs، مما يجعلها أداة أساسية للمصادقة والترخيص في تطبيقات Go.
تدعم المكتبة خوارزميات توقيع متعددة بما في ذلك HMAC SHA وRSA وRSA-PSS وECDSA، مع وجود خطافات لإضافة طرق توقيع مخصصة. تتبع إصدارات Semantic Versioning 2.0.0 وتعتبر مستقرة للاستخدام في الإنتاج.
تشمل الميزات الرئيسية:
- تحليل والتحقق من JWTs
- توليد وتوقيع JWTs
- دعم خوارزميات التوقيع HMAC SHA وRSA وRSA-PSS وECDSA
- بنية قابلة للتوسيع تسمح بطرق توقيع مخصصة عبر واجهة SigningMethod
- نقاط تكامل لخدمات إدارة المفاتيح الخارجية (GCP وAWS KMS وTPM وJWKS)
- تصميم واعٍ بالأمان يتطلب موافقة صريحة على JWTs غير الآمنة (alg=none)
- أداة سطر أوامر (cmd/jwt) لإنشاء الرموز وتحليلها وتصحيح الأخطاء
نشأ المشروع كفرع من dgrijalva/jwt-go بعد أن اقترح المؤلف الأصلي نقل الصيانة إلى فريق مخصص من المشرفين مفتوحي المصدر. قدم الإصدار v4.0.0 دعم وحدات Go مع الحفاظ على التوافق مع إصدارات v3.x.y. جلب الإصدار v5.0.0 تحسينات رئيسية للتحقق من الرموز لكنه ليس متوافقًا تمامًا مع الإصدارات السابقة.
تؤكد المكتبة على أفضل ممارسات الأمان، بما في ذلك التحقق من معلمة 'alg' لمنع الثغرات الحرجة في مكتبات JWT. توصي بالترقية إلى Go 1.15 أو أحدث بسبب مشكلة أمنية في حزمة crypto/elliptic في إصدارات Go الأقدم.
يتم الحفاظ على التوافق مع RFC 7519 مع اختلاف ملحوظ: الرموز التي تستخدم alg=none لا تُقبل إلا إذا تم توفير الثابت jwt.UnsafeAllowNoneSignatureType كمفتاح، مما يحمي من الاستخدام العرضي لـ JWTs غير الآمنة.
يتضمن المشروع وثائق شاملة وأمثلة وموقع ويب مخصص للتوثيق. كما ينشر جميع المكونات اللازمة لإضافة طرق توقيع مخصصة أو دوال مفاتيح، مما يجعله قابلًا للتوسيع بدرجة كبيرة لحالات استخدام متنوعة بما في ذلك تكاملات مزودي السحابة ووحدات أمان الأجهزة.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.