JSON ওয়েব টোকেন (JWTs)

টিঙ্ক JWT তৈরি এবং যাচাইকরণ সমর্থন করে, যা ওয়েবে বহুল ব্যবহৃত একটি স্ট্যান্ডার্ড। টিঙ্কের JWT বাস্তবায়ন RFC 7519 -এ সংজ্ঞায়িত JWT স্ট্যান্ডার্ডের একটি উপসেট প্রদান করে যা টিঙ্ক টিম ব্যবহার করা নিরাপদ বলে মনে করে এবং এটি টিঙ্ক লাইব্রেরিতে ভালোভাবে ফিট করে।

টিঙ্ক স্ট্যান্ডার্ডের এমন কিছু অংশ সমর্থন করে না যা খুব কম ব্যবহৃত হয় বা সঠিকভাবে ব্যবহার করা কঠিন। এই সীমাবদ্ধতাগুলি হল:

  • Tink শুধুমাত্র JWS Compact Serialization ফর্ম্যাট সমর্থন করে। JWS JSON Serialization এবং JWE সমর্থিত নয়।
  • alg হেডারে Tink None মান সমর্থন করে না।
  • টিঙ্ক শুধুমাত্র typ , alg এবং kid হেডারগুলিকে সমর্থন করে। অন্য সকল হেডার সমর্থিত নয়।
  • স্বাক্ষর বা MAC যাচাই করার আগে Tink টোকেন পার্স করার অনুমতি দেয় না।

স্বাক্ষর সহ JWTs

যদি টোকেনগুলি বিভিন্ন সত্তা দ্বারা তৈরি এবং যাচাই করা হয়, তাহলে আপনার JwtPublicKeySign এবং JwtPublicKeyVerify আদিমগুলির সাথে অসমমিতিক কী ব্যবহার করা উচিত। টোকেন তৈরি করতে প্রাইভেট কী ব্যবহার করা হয় এবং টোকেন যাচাই করতে পাবলিক কী ব্যবহার করা হয়। এই আদিমগুলি দ্বারা সমর্থিত অ্যালগরিদমগুলি হল: ES256 , ES384 , ES512 , RS256 , RS384 , RS512 , PS256 , PS384 এবং PS512

একটি কী টাইপ বেছে নিন

JWT স্বাক্ষরগুলি Tink-এ সাধারণ ডিজিটাল স্বাক্ষরের চেয়ে ভিন্ন ধরণের কী ব্যবহার করে। এটি প্রয়োজন কারণ কিছু মেটাডেটা (যেমন alg এবং kid ) কী-এর সাথে সংরক্ষণ করতে হয়।

আমরা বেশিরভাগ ব্যবহারের ক্ষেত্রে JWT_ES256 ব্যবহার করার পরামর্শ দিচ্ছি। এই কী টাইপ দিয়ে তৈরি টোকেনগুলিতে সর্বদা একটি kid হেডার থাকে। যদি আপনি kid হেডার ছাড়াই কিছুটা ছোট টোকেন পছন্দ করেন, তাহলে JWT_ES256_RAW কী টাইপটি বেছে নিন। সমস্ত সমর্থিত কী টাইপের জন্য, সমর্থিত কী টাইপ দেখুন।

পাবলিক কীসেট বিতরণ

টিঙ্ক পাবলিক কীসেটগুলিকে RFC 7517 এ সংজ্ঞায়িত JWK সেট ফর্ম্যাটে এবং থেকে রূপান্তর করার অনুমতি দেয়, যা বেশিরভাগ JWT লাইব্রেরি বোঝে।

টিঙ্ক অন্য কোনও ফর্ম্যাটে পাবলিক JWT কী এক্সপোর্ট করা সমর্থন করে না। এর কারণ হল অন্যান্য ফর্ম্যাটে যাচাইকরণে ব্যবহৃত alg এবং kid মেটাডেটা থাকে না, যা তাদের ব্যবহারকে আরও ত্রুটি-প্রবণ করে তোলে এবং কীগুলি ঘোরানো আরও কঠিন করে তুলতে পারে।

পাবলিক কীসেটটি কেবল একবার শেয়ার না করে, স্বয়ংক্রিয়ভাবে পাবলিক কীসেট আপডেট করার একটি উপায় প্রদান করাই ভালো। (যদি না হয়, তাহলে একটি নতুন কীতে ঘোরানো খুব কঠিন।) এটি প্রায়শই একটি বিশ্বস্ত এবং সুরক্ষিত URL-এ পাবলিক কীসেট প্রকাশ করে করা হয়। টোকেন যাচাইকারী একটি সার্ভারকে পর্যায়ক্রমে সেই URL থেকে পাবলিক কীসেটটি পুনরায় আনতে হয়, উদাহরণস্বরূপ প্রতিদিন একবার। কীটি ঘোরানোর জন্য, টোকেন স্বাক্ষর করার জন্য ব্যবহার করার কমপক্ষে একদিন আগে নতুন পাবলিক কীসেটে পাবলিক কীসেট যোগ করতে হবে। অন্যথায় নতুন প্রাইভেট কী দিয়ে স্বাক্ষরিত নতুন টোকেনগুলি সেই সার্ভারগুলি দ্বারা প্রত্যাখ্যাত হবে যারা এখনও পুরানো পাবলিক কীসেট ব্যবহার করে।

ব্যবহারের উদাহরণ

দেখুন আমি স্বাক্ষর সহ JWT তৈরি এবং যাচাই করতে চাই

MAC সহ JWTs

Tink Primitive JwtMac সাথে সিমেট্রিক কী সহ JWT সমর্থন করে। শুধুমাত্র যদি টোকেনগুলি একই সত্তা দ্বারা তৈরি এবং যাচাই করা হয় তবেই এই primitive ব্যবহার করুন। এই primitive দ্বারা সমর্থিত অ্যালগরিদমগুলি হল HS256 , HS384 এবং HS512

একটি কী টাইপ বেছে নিন

JWT MAC কী প্রকারগুলি সাধারণ MAC কী প্রকার থেকে আলাদা । আমরা বেশিরভাগ ব্যবহারের ক্ষেত্রে JWT_HS256 ব্যবহার করার পরামর্শ দিই।