কয়েকটি দৃশ্য টোকেন অ্যাক্সেস এবং রিফ্রেশ করার উদ্দেশ্য এবং ইঞ্জিনিয়ারিং ট্রেড-অফগুলিকে একটি oauth2 (বা অন্য কোনও লেখক) সিস্টেম ডিজাইনের ক্ষেত্রে চিত্রিত করতে সহায়তা করতে পারে:
ওয়েব অ্যাপের দৃশ্যপট
ওয়েব অ্যাপের দৃশ্যে আপনার কাছে কয়েকটি বিকল্প রয়েছে:
- আপনার নিজের সেশন ম্যানেজমেন্ট থাকলে আপনার সেশন স্টেট সার্ভিসে সেশন স্টেট আইডির বিপরীতে অ্যাক্সেস_ টোকেন এবং রিফ্রেশ_ টোকেন উভয়টি সংরক্ষণ করুন। যখন কোনও পৃষ্ঠার ব্যবহারকারীর দ্বারা অনুরোধ করা হয়েছে যা আপনাকে সংস্থানটি অ্যাক্সেস করতে হবে অ্যাক্সেস_ টোকেনটি ব্যবহার করে এবং অ্যাক্সেস_ টোকেনের মেয়াদ শেষ হয়ে গেলে নতুনটি পেতে রিফ্রেশ_ টোকেন ব্যবহার করুন।
আসুন কল্পনা করুন যে কেউ আপনার অধিবেশন হাইজ্যাক করার ব্যবস্থা করে। কেবলমাত্র আপনার পৃষ্ঠাগুলির জন্য অনুরোধ করা সম্ভব।
- আপনার যদি সেশন ম্যানেজমেন্ট না থাকে তবে এক্সেস_ টোকেনটি একটি কুকিতে রাখুন এবং এটি একটি সেশন হিসাবে ব্যবহার করুন। তারপরে, যখনই ব্যবহারকারী আপনার ওয়েব সার্ভার থেকে পৃষ্ঠাগুলির জন্য অনুরোধ করে অ্যাক্সেস_ টোকেন প্রেরণ করে। আপনার অ্যাপ্লিকেশন সার্ভারটি প্রয়োজন হলে অ্যাক্সেস_ টোকেনটিকে রিফ্রেশ করতে পারে।
1 এবং 2 তুলনা:
1-এ, অ্যাক্সেস_ টোকেন এবং রিফ্রেশ_ টোকন কেবলমাত্র অনুমোদন সার্ভার (আপনার ক্ষেত্রে গুগল) এবং আপনার অ্যাপ্লিকেশন সার্ভারের মধ্যে কেবল তারের উপর দিয়ে ভ্রমণ করে। এটি একটি সুরক্ষিত চ্যানেলে করা হবে। একজন হ্যাকার অধিবেশন হাইজ্যাক করতে পারে তবে তারা কেবলমাত্র আপনার ওয়েব অ্যাপ্লিকেশনের সাথে ইন্টারঅ্যাক্ট করতে সক্ষম হবে। 2-এ, হ্যাকার অ্যাক্সেস_ টোকেনটি সরিয়ে নিতে এবং ব্যবহারকারীরা যে সমস্ত সংস্থান অ্যাক্সেস দিয়েছিল সেগুলিতে তাদের নিজস্ব অনুরোধ তৈরি করতে পারে। এমনকি যদি হ্যাকার অ্যাক্সেস_ টোকেনটি ধরে রাখে তবে তাদের কাছে কেবল একটি সংক্ষিপ্ত উইন্ডো থাকবে যাতে তারা সংস্থানগুলি অ্যাক্সেস করতে পারে।
যে কোনও উপায়ে রিফ্রেশ_ টোকেন এবং ক্লায়েন্টেড / সিক্রেট কেবলমাত্র সার্ভারের কাছেই জানা যায় এটি ওয়েব ব্রাউজার থেকে দীর্ঘমেয়াদী অ্যাক্সেস অর্জনকে অসম্ভব করে তোলে।
আসুন কল্পনা করুন যে আপনি oauth2 বাস্তবায়ন করছেন এবং অ্যাক্সেস টোকেনে একটি দীর্ঘ সময়সীমা সেট করেছেন:
1) অ্যাপ্লিকেশন সার্ভারে লুকানো থাকায় একটি স্বল্প এবং দীর্ঘ অ্যাক্সেস টোকেনের মধ্যে এখানে খুব বেশি পার্থক্য নেই। 2) কেউ ব্রাউজারে অ্যাক্সেস_ টোকেন পেতে পারে এবং তারপরে এটি দীর্ঘ সময়ের জন্য সরাসরি ব্যবহারকারীর সংস্থানগুলিতে অ্যাক্সেস করতে ব্যবহার করতে পারে।
মোবাইলের দৃশ্যপট
মোবাইলে এমন বেশ কয়েকটি দৃশ্য রয়েছে যা আমি জানি:
ডিভাইসে ক্লায়েন্টেড / গোপন সঞ্চয় করুন এবং ব্যবহারকারীর সংস্থানগুলিতে অ্যাক্সেস পাওয়ার জন্য ডিভাইসকে অর্কেস্টেট করুন।
ক্লায়েন্টেড / সিক্রেট রাখতে এবং এটি অর্কেস্ট্রেশনটি করতে একটি ব্যাকএন্ড অ্যাপ্লিকেশন সার্ভার ব্যবহার করুন। একধরণের সেশন কী হিসাবে অ্যাক্সেস_ টোকেনটি ব্যবহার করুন এবং এটি ক্লায়েন্ট এবং অ্যাপ্লিকেশন সার্ভারের মধ্যে পাস করুন।
তুলনা 1 এবং 2
1) একবার আপনি ডিভাইসে জলবায়ু / গোপনীয় হয়ে গেলে তারা আর গোপন হয় না। যে কোনও ব্যক্তি পচিয়ে ফেলতে পারে এবং তারপরে অবশ্যই ব্যবহারকারীর অনুমতি নিয়ে তারা যেমন আপনি হচ্ছেন তেমন অভিনয় শুরু করতে পারেন। অ্যাক্সেস_ টোকেন এবং রিফ্রেশ_ টোকেন মেমোরিতেও রয়েছে এবং কোনও আপোসযুক্ত ডিভাইসে অ্যাক্সেস করা যেতে পারে যার অর্থ কেউ ব্যবহারকারী তাদের শংসাপত্র না দিয়েই আপনার অ্যাপ হিসাবে কাজ করতে পারে। এই দৃশ্যে অ্যাক্সেস_ টোকেনের দৈর্ঘ্য হ্যাকিবিলিটির কোনও পার্থক্য করে না, যেহেতু রিফ্রেশ_ টোকেন অ্যাক্সেস_ টোকেনের একই স্থানে রয়েছে। 2) ক্লায়েন্টেড / সিক্রেট বা রিফ্রেশ টোকেন আপস করা হয়নি। এখানে অ্যাক্সেস_ টোকেনের সমাপ্তির দৈর্ঘ্য নির্ধারণ করে যে কোনও হ্যাকার কতক্ষণ ব্যবহারকারীর সংস্থানগুলিতে অ্যাক্সেস করতে পারত, যদি তারা এটি ধরে থাকে।
মেয়াদোত্তীর্ণ দৈর্ঘ্য
আপনার অ্যাক্সেস_ টোকেনের মেয়াদ কত দিন হওয়া উচিত তা এখানে আপনার লিখিত সিস্টেমের সাথে আপনি কী সুরক্ষিত করছেন তার উপর এটি নির্ভর করে। এটি ব্যবহারকারীর কাছে বিশেষ মূল্যবান কিছু হলে এটি সংক্ষিপ্ত হওয়া উচিত। কিছু কম মূল্যবান, এটি দীর্ঘ হতে পারে।
গুগলের মতো কিছু লোক রিফ্রেশ_ টোকেনের মেয়াদ শেষ করে না। কিছু স্ট্যাকফ্লো করতে চান। মেয়াদোত্তীর্ণের সিদ্ধান্তটি ব্যবহারকারীর স্বাচ্ছন্দ্য এবং সুরক্ষার মধ্যে বাণিজ্য off রিফ্রেশ টোকেনটির দৈর্ঘ্য ব্যবহারকারীর রিটার্ন দৈর্ঘ্যের সাথে সম্পর্কিত, অর্থাৎ ব্যবহারকারী আপনার অ্যাপ্লিকেশনটিতে কত ঘন্টার জন্য রিফ্রেশ সেট করুন। যদি রিফ্রেশ টোকেনটি কেবল বাতিল হয় কেবলমাত্র তা প্রত্যাহার করা হয় is সাধারণত, একটি লগ অন প্রত্যাহার করবে না।
আশা করি বরং দৈর্ঘ্যের পোস্টটি কার্যকর।