تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
تتيح Tink إنشاء رموز JWT وإثبات صحتها، وهي معيار مستخدَم على نطاق واسع على الويب. يوفّر تنفيذ JWT في Tink مجموعة فرعية من معيار JWT
المحدّد في RFC 7519 التي يرى فريق Tink أنّها آمنة للاستخدام
وتناسب مكتبة Tink بشكل جيد.
لا تتوافق مكتبة Tink مع أجزاء من المعيار نادرًا ما يتم استخدامها أو يصعب استخدامها بشكل صحيح. في ما يلي القيود:
تتوافق مكتبة Tink مع العناوين typ وalg وkid فقط. لا تتوافق مع جميع العناوين الأخرى.
لا تسمح مكتبة Tink بتحليل الرموز المميزة قبل التحقّق من صحة التوقيع أو رمز مصادقة الرسالة (MAC).
توقيعات JWT
إذا كانت جهات مختلفة تنشئ الرموز المميزة وتثبت صحتها، عليك استخدام مفاتيح غير متماثلة مع العناصر الأساسية JwtPublicKeySign وJwtPublicKeyVerify.
يُستخدَم المفتاح الخاص لإنشاء الرموز المميزة، ويُستخدَم المفتاح العام للتحقّق من صحة الرموز المميزة. الخوارزميات التي تتيحها هذه العناصر الأساسية هي: ES256 وES384 وES512 وRS256 وRS384 وRS512 وPS256 وPS384 وPS512.
اختيار نوع المفتاح
تستخدم توقيعات JWT أنواع مفاتيح مختلفة عن التوقيع الرقمي العادي في Tink. هذا الإجراء ضروري لأنّ بعض البيانات الوصفية (مثل alg وkid) يجب تخزينها مع المفتاح.
ننصح باستخدام JWT_ES256 في معظم حالات الاستخدام. تحتوي الرموز المميّزة التي يتم إنشاؤها باستخدام نوع المفتاح هذا دائمًا على عنوان kid. إذا كنت تفضّل رموزًا مميّزة أقصر قليلاً بدون عنوان kid، اختَر نوع المفتاح JWT_ES256_RAW. للاطّلاع على جميع أنواع المفاتيح المتوافقة، راجِع أنواع المفاتيح المتوافقة.
توزيع مجموعة المفاتيح العامة
تسمح Tink بتحويل مجموعات المفاتيح العامة إلى تنسيق JWK Sets
المحدّد في RFC 7517، والذي تفهمه معظم مكتبات JWT، والعكس.
لا تتيح Tink تصدير مفاتيح JWT العامة بأي تنسيق آخر. والسبب في ذلك هو أنّ التنسيقات الأخرى لا تحتوي على البيانات الوصفية alg وkid التي سيتم استخدامها في عملية التحقّق، ما يجعل استخدامها أكثر عرضة للأخطاء وقد يصعّب عملية تدوير المفاتيح.
من الأفضل عدم مشاركة مجموعة المفاتيح العامة مرة واحدة فقط، بل توفير طريقة لتعديلها تلقائيًا. (إذا لم يكن الأمر كذلك، سيكون من الصعب جدًا التبديل إلى مفتاح جديد). ويتم ذلك غالبًا من خلال نشر مجموعة المفاتيح العامة على عنوان URL موثوق وآمن. على الخادم الذي يتحقّق من الرموز المميزة أن يعيد جلب مجموعة المفاتيح العامة بشكل دوري من عنوان URL هذا، مثلاً مرة واحدة في اليوم. لتدوير المفتاح، يجب إضافة المفتاح العام الجديد إلى مجموعة المفاتيح العامة قبل يوم واحد على الأقل من استخدامه لتوقيع الرموز المميزة. وفي حال عدم تنفيذ ذلك، سترفض الخوادم التي لا تزال تستخدم مجموعة المفاتيح العامة القديمة الرموز المميزة الجديدة الموقَّعة باستخدام المفتاح الخاص الجديد.
JWT MAC
تتيح Tink أيضًا استخدام رموز JWT المميزة مع المفاتيح المتماثلة باستخدام الوحدة الأولية JwtMac. لا تستخدِم هذا النوع الأساسي إلا إذا كانت الجهة نفسها هي التي تنشئ الرموز المميزة وتتحقّق منها. الخوارزميات التي يتيحها هذا العنصر الأساسي هي HS256 وHS384 وHS512.
اختيار نوع المفتاح
تختلف أنواع مفاتيح MAC الخاصة برمز JWT عن أنواع مفاتيح MAC العادية. ننصحك باستخدام
JWT_HS256 في معظم حالات الاستخدام.
تاريخ التعديل الأخير: 2025-07-25 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-07-25 (حسب التوقيت العالمي المتفَّق عليه)"],[[["\u003cp\u003eTink supports creating and validating JSON Web Tokens (JWTs) using a secure subset of the RFC 7519 standard.\u003c/p\u003e\n"],["\u003cp\u003eIt offers both asymmetric and symmetric key cryptography options for signing and verifying JWTs, with various algorithms like ES256, RS256, HS256, and others.\u003c/p\u003e\n"],["\u003cp\u003eTink emphasizes secure key management practices, including using distinct key types for JWTs and enabling public keyset distribution in the JWK Sets format for easier sharing and rotation.\u003c/p\u003e\n"],["\u003cp\u003eHowever, it has certain limitations, such as supporting only the JWS Compact Serialization format and specific headers, while excluding features like JWE and the 'None' algorithm.\u003c/p\u003e\n"],["\u003cp\u003eFor optimal security, Tink enforces signature/MAC verification before parsing tokens and recommends periodic public keyset updates to facilitate key rotation and minimize disruptions.\u003c/p\u003e\n"]]],["Tink supports generating and verifying JWTs, implementing a secure subset of the standard. It utilizes JWS Compact Serialization, excluding JWS JSON Serialization and JWE. Supported headers are `typ`, `alg`, and `kid`; the `None` `alg` value is unsupported. Asymmetric keys (`JwtPublicKeySign`, `JwtPublicKeyVerify`) should be used between different entities, with supported algorithms including `ES256`, `RS256`, and `PS256`. Symmetric keys (`JwtMac`) are for same-entity usage, supporting `HS256`. Tink offers JWK Sets format conversion for public keys and recommends automated public keyset updates.\n"],null,[]]