আমি কি আমার ব্যবহারকারীর দাবিগুলি জেডাব্লুটি টোকনে সংরক্ষণ করব?


18

রিসোর্স সার্ভারে অনুরোধগুলি অনুমোদনের জন্য আমি HTTP শিরোনামগুলিতে JWT টোকেন ব্যবহার করছি। রিসোর্স সার্ভার এবং প্রমাণীকরণের সার্ভার অ্যাজুরেতে দুটি পৃথক কর্মী ভূমিকা।

আমার দাবিগুলি টোকেনে সংরক্ষণ করতে হবে বা অনুরোধ / প্রতিক্রিয়াতে অন্য কোনও উপায়ে তাদের সংযুক্ত করা উচিত কিনা তা নিয়ে আমি আমার মন মেকআপ করতে পারি না। দাবিগুলির তালিকা ক্লায়েন্ট-সাইড UI উপাদানগুলির রেন্ডারিংয়ের পাশাপাশি সার্ভারে ডেটা অ্যাক্সেসকে প্রভাবিত করে। এই কারণে আমি নিশ্চিত করতে চাই যে অনুরোধটি প্রক্রিয়া করার আগে সার্ভারের দ্বারা প্রাপ্ত দাবিগুলি খাঁটি এবং বৈধ কিনা।

দাবির উদাহরণগুলি হ'ল: CanEditProductList, CanEditShopDescript, CanReadUserDetails।

আমি তাদের জন্য জেডাব্লুটি টোকেনটি ব্যবহার করতে চাই কারণগুলি হ'ল:

  • দাবির ক্লায়েন্ট-পার্শ্ব সম্পাদনা (যেমন হ্যাকিং দাবির তালিকা) এর চেয়ে ভাল সুরক্ষা।
  • প্রতিটি অনুরোধে দাবিগুলি দেখার দরকার নেই।

যে কারণে আমি JWT টোকেনটি ব্যবহার করতে চাই না:

  • লেখক সার্ভারটির তখন অ্যাপ-কেন্দ্রিক দাবিগুলির তালিকাটি জানতে হবে।
  • টোকেন হ্যাক-এন্ট্রি একক পয়েন্ট হয়ে যায়।
  • আমি কয়েকটি জিনিস পড়েছি বলেছি যে JWT টোকেনগুলি অ্যাপ-স্তরের ডেটার জন্য নয় for

আমার কাছে মনে হয় যে উভয়েরই ত্রুটি রয়েছে, তবে আমি এই দাবিগুলিকে টোকেনের অন্তর্ভুক্তির দিকে ঝুঁকছি এবং কেবল এই লোকদের দ্বারা এটি চালাতে চাই যারা এর আগে এই বিষয়টি নিয়ে কাজ করেছে।

দ্রষ্টব্য: আমি সমস্ত এপিআই অনুরোধের জন্য এইচটিটিপিএস ব্যবহার করব, সুতরাং আমার কাছে মনে হয় টোকনটি যথেষ্ট 'নিরাপদ' থাকবে। আমি AngularJS, C #, Web API 2 এবং MVC5 ব্যবহার করছি।


এখনই এটি পড়ুন .... এবং আপনি যদি পারেন তবে একটি আপডেট চান। আপনি যা করেছেন তাতে আমি আগ্রহী হব, কারণ আমিও একই মুখোমুখি হয়েছি .. চিন্তাভাবনা করছি এবং আমি অনুভব করছি যে অংশগুলি কীভাবে কাজ করার উদ্দেশ্যে রয়েছে। ব্যবহারকারী কর্তৃপক্ষের টোকেন পান, তবে তারপরে কীভাবে দাবিগুলি বহন করা হচ্ছে তা কীভাবে ... আপনি নিজের অনুসন্ধানগুলিতে ব্যাখ্যা করতে পারেন ... এটি সম্ভবত আমাকে সহায়তা করবে।
Seabizkit

উত্তর:


7

আমি আমার jwt এ সনাক্তকারী দাবীগুলি (ইউজারিড ইত্যাদি) (এনক্রিপ্ট) সঞ্চয় করি।

তারপরে যখন আমি সার্ভারে টোকেন পেয়েছি (এপিআই) আমি একটি সার্ভার সাইড সাইড (ডিবি, বা স্থানীয় নেটওয়ার্ক এপিআই কল) করতে পারি এবং ব্যবহারকারীদের সমস্ত অ্যাপ্লিকেশনগুলি (অ্যাপস, রোলস, ইত্যাদি) পুনরুদ্ধার করতে পারি

তবে আপনি যদি jwt এ আরও স্টাফ রাখতে চান তবে আকারের প্রতি যত্নশীল হোন কারণ এটি প্রতিটি অনুরোধে সম্ভবত প্রেরণ করা হবে তবে সংবেদনশীল দাবির ডেটা এনক্রিপ্ট করার বিষয়টি নিশ্চিত করুন।


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

1
আমি এখনও আমার বাস্তবায়নে এটি অর্জন করতে পারি নি :), তবে হ্যাঁ আমি একটি ক্যাচিং সার্ভার ব্যবহার করার কথা ভাবছিলাম যাতে আমি ডিবিটিকে প্রায়শই আঘাত করব না এবং যদি কোনও ভূমিকা পরিবর্তন করে তবে নতুনটিকে অনুমতি দেওয়ার জন্য ক্যাশে সরানো যেতে পারে রক্ষিত ক্যাশে লোড হতে জিজ্ঞাসা করা। আমার ক্ষেত্রে আমি সম্ভবত অ্যামাজন এডাব্লুএস এলস্টিচি ব্যবহার করব যা ওপেন মেমক্যাচযুক্ত তবে কনফিগার এবং ব্যবহার করা সহজ on
ওয়াচওয়ার্ড

আমি মনে করি রিসোর্স সার্ভারে সমস্ত প্রয়োজনীয় তথ্য পাওয়া এবং সেগুলি টোকেনে সংরক্ষণ না করা আরও ভাল ধারণা।
মাতিউস মিগাশিয়া

সুতরাং প্রতিটি অনুরোধের জন্য আপনি ব্যবহারকারীদের ভূমিকা ... দাবী করুন ..., আপনি কি আমাকে কোনও নিবন্ধ বা এমন কোনও কিছুতে নির্দেশ করতে পারেন যা এটি সম্ভবপর হিসাবে দেখায়। বর্তমানে আমি সেশনটি ব্যবহার করছি, তবে কাজ করার আরও ভাল উপায়ের জন্য খুঁজছি, তবে প্রতিটি অনুরোধে অনুসন্ধান করা ঠিক মনে হচ্ছে না?
Seabizkit

3

এটি প্রমাণীকরণের মতো মনে হয় (ব্যবহারকারী কে) এবং অনুমোদনের (ব্যবহারকারীকে যা করার অনুমতি দেওয়া হয়েছে) আপনার পছন্দ মতো আলাদাভাবে বিভক্ত করা হয়নি।

আপনি যদি প্রমাণীকরণের সার্ভারটি জানতে না চান যে ব্যবহারকারী কীভাবে তার অধিকারী তা জে ডাব্লুটিটি-র মধ্যে থাকা দাবিগুলি ব্যবহারকারীর কাছে সীমাবদ্ধ যেমন ওয়াচওয়ার্ডের প্রস্তাবিত। অনুমোদনের সার্ভার হিসাবে আপনার পরিচিত অন্য একটি সার্ভার থাকতে পারে যা ব্যবহারকারীর কী কী অধিকার পাবে তা সন্ধান করতে পারে।

অনুমোদনের পদক্ষেপটি ক্লায়েন্টের দ্বারা প্রমাণীকরণ টোকেন সহ প্রথম উপস্থাপিত হওয়ার পরে সংস্থান সার্ভার দ্বারা করা যেতে পারে। রিসোর্স সার্ভার তখন অনুমোদনের দাবিযুক্ত ক্লায়েন্টকে একটি টোকেন প্রেরণ করবে।

দ্রষ্টব্য: উভয় JWT গুলি বিভিন্ন কী দ্বারা স্বাক্ষরিত হওয়া উচিত।

পেশাদাররা:

  • প্রমাণীকরণ এবং অনুমোদন পৃথকভাবে পরিচালিত হয়।
  • রিসোর্স সার্ভারকে প্রতিটি অনুরোধে অনুমোদনের সন্ধান করতে হবে না।
  • ইউআইয়ের অনুমোদন দেখার অ্যাক্সেস রয়েছে তবে এটি সম্পাদনা করে না।

কন:

  • ক্লায়েন্টটির একটির পরিবর্তে দুটি টোকেন পরিচালনা করতে হবে।
  • কোনও অনুমোদন সার্ভার যুক্ত করা পরিচালনায় আরেকটি চলন্ত অংশ যুক্ত করে।

1
আপনি যখন ইউআইতে অনুমোদন পরীক্ষা করেন তখনও ভুলে যাবেন না যে কোনও অনুরোধ এলে আপনাকে এখনও সার্ভার সাইডে অনুমোদন পরীক্ষা করতে হবে।
চাদ ক্লার্ক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.