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

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

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

  • Tink শুধুমাত্র JWS কমপ্যাক্ট সিরিয়ালাইজেশন ফরম্যাট সমর্থন করে। JWS JSON সিরিয়ালাইজেশন এবং JWE সমর্থিত নয়।
  • Tink alg হেডারে None মান সমর্থন করে না।
  • 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 পাবলিক কীসেটগুলিকে RFC 7517- এ সংজ্ঞায়িত JWK Sets ফরম্যাটে এবং থেকে রূপান্তরিত করার অনুমতি দেয়, যা বেশিরভাগ JWT লাইব্রেরি বোঝে।

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

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

JWT MAC

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

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

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

উদাহরণ ব্যবহার ক্ষেত্রে

দেখুন আমি JWTs তৈরি এবং যাচাই করতে চাই