যখন "অন্তর্নিহিত" প্রবাহ এত ভালভাবে কাজ করে তখন OAuth2 এ কেন একটি "অনুমোদন কোড" প্রবাহ থাকবে?


263

"অন্তর্নিহিত" প্রবাহের সাথে রিসোর্স মালিক (অর্থাত্ ব্যবহারকারী) অ্যাক্সেস দেওয়ার পরে ক্লায়েন্ট (সম্ভবত কোনও ব্রাউজার) একটি অ্যাক্সেস টোকন পাবেন।

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

উভয় প্রবাহের একই ফলাফল: অ্যাক্সেস টোকেন। তবে "অন্তর্নিহিত" প্রবাহটি অনেক সহজ।

প্রশ্ন: "প্রচ্ছন্ন" প্রবাহ seams জরিমানা হওয়ার জন্য "অনুমোদন কোড" প্রবাহকে কেন বিরক্ত করবেন? কেন ওয়েবসভারের জন্য "অন্তর্নিহিত" ব্যবহার করছেন না?

এটি সরবরাহকারী এবং ক্লায়েন্ট উভয়ের জন্যই আরও কাজ করে।


4
পরীক্ষা করে দেখুন stackoverflow.com/questions/7522831/...
জন Nylander

1
ধন্যবাদ, ইতিমধ্যে এটি পড়ুন। যদিও প্রশ্নের উত্তর দেয় না।
অ্যারন ওয়েস্ট

1
ভাল প্রশ্ন আসলে এবং খুব কমই উত্তর :) নীচে দেখুন।
নিকোলাস গারনিয়ার

1
@ অরনওস্ট আমি মনে করি আপনি সার্ভার ওয়েব অ্যাপ্লিকেশন এবং ব্রাউজার অ্যাপটিকে ভুল
বুঝেছেন

@ এন্ট্রপি আমার প্রশ্ন ছিল; কেন সার্ভারের জন্য ব্রাউজার প্রবাহ ব্যবহার করে না।
অ্যারন ওয়াস্ট

উত্তর:


292

tl; dr: সুরক্ষার কারণেই এটি।

OAuth 2.0 এই দুটি মানদণ্ড পূরণ করতে চেয়েছিল:

  1. আপনি বিকাশকারীদের নন-এইচটিটিপিএস পুনর্নির্দেশ ইউআরআই ব্যবহার করার অনুমতি দিতে চান কারণ সমস্ত বিকাশকারীদের কোনও এসএসএল সক্ষম সার্ভার নেই এবং যদি তারা এটি সর্বদা সঠিকভাবে কনফিগার করা না হয় (স্ব-স্বাক্ষরিত, বিশ্বস্ত এসএসএল শংসাপত্রগুলি, সিঙ্ক্রোনাইজড সার্ভার ঘড়ি ...)।
  2. আপনি চান না হ্যাকাররা অনুরোধগুলি বিরত করে অ্যাক্সেস / রিফ্রেশ টোকেন চুরি করতে সক্ষম হবেন।

নিচে বিস্তারিত:

সুরক্ষা কারণেই কেবল অন্তর্নিহিত প্রবাহ ব্রাউজার পরিবেশে সম্ভব:

ইন অন্তর্নিহিত প্রবাহিত অ্যাক্সেস টোকেন সরাসরি একটি হ্যাশ টুকরা (না একটি URL প্যারামিটার) হিসাবে পাস করা হয়। হ্যাশ খণ্ড সম্পর্কে একটি গুরুত্বপূর্ণ বিষয় হ'ল, একবার আপনি হ্যাশ খণ্ডযুক্ত লিঙ্কটি অনুসরণ করলে কেবল ব্রাউজার হ্যাশ খণ্ড সম্পর্কে সচেতন হয়। ব্রাউজারগুলি সরাসরি গন্তব্য ওয়েবপৃষ্ঠায় হ্যাশ টুকরোটি পাস করবে (ইউআরআই / ক্লায়েন্টের ওয়েবপেজ পুনর্নির্দেশ)। হ্যাশ খণ্ডের নিম্নলিখিত বৈশিষ্ট্য রয়েছে:

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

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

অন্তর্নিহিত প্রবাহে সুরক্ষার সমস্যাগুলিও রয়েছে যার জন্য আরও যুক্তিযুক্ত প্রয়োজন যেমন উদাহরণস্বরূপ

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

ইন অনুমোদন কোড প্রবাহিত কারণ URL প্যারামিটার HTTP- র অনুরোধ অংশ, তাই কোন মধ্যবর্তী সার্ভার / রাউটার যার দ্বারা আপনার অনুরোধ পাস হবে (শত শত হতে পারে) পাবে পারে একটি অ্যাক্সেস একটি URL প্যারামিটার সরাসরি টোকেনটি পাস করা সম্ভব নয় যদি আপনি এন-এনক্রিপ্টড সংযোগ (HTTPS) ব্যবহার না করে যা ম্যান-ইন-মধ্য-আক্রমণের হিসাবে পরিচিত allowing

সরাসরি ইউআরএল প্যারামে অ্যাক্সেস টোকেন পাস করা তাত্ত্বিকভাবে সম্ভব হতে পারে তবে প্রমাণীকরণকারীকে নিশ্চিত করতে হবে যে পুনর্নির্দেশিত ইউআরআই টিএলএস এনক্রিপশন এবং একটি 'বিশ্বস্ত' এসএসএল শংসাপত্রের সাথে HTTPS ব্যবহার করছে (সাধারণত একটি শংসাপত্র কর্তৃপক্ষ থেকে যা নিখরচায় নয়) গন্তব্য সার্ভারটি বৈধ কিনা এবং এইচটিটিপি অনুরোধ সম্পূর্ণরূপে এনক্রিপ্ট করা হয়েছে তা নিশ্চিত হয়ে উঠতে। সমস্ত বিকাশকারী একটি এসএসএল শংসাপত্র কেনা এবং তাদের ডোমেনে এসএসএল সঠিকভাবে কনফিগার করা একটি বিশাল ব্যথা হবে এবং প্রচন্ডভাবে গ্রহণকে ধীর করবে। এই কারণেই মধ্যস্থতাকারী এক সময়ের ব্যবহারযোগ্য "অনুমোদনের কোড" সরবরাহ করা হয়েছে যে কেবল বৈধ প্রাপকই বিনিময় করতে সক্ষম হবেন (কারণ আপনার ক্লায়েন্টের গোপনীয়তা প্রয়োজন) এবং এই কোডটি সম্ভাব্য হ্যাকারদের অনিক্রিপ্টেড লেনদেনের জন্য অনুরোধগুলি বিরত রাখার পক্ষে অকেজো হবে (কারণ তারা ডন '

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


12
এই দুটি অনুরোধ @AndyDufresne HTTPS দ্বারা উপর কাজ করতে হবে আছে (বাধ্যতামূলক) যেহেতু তারা অনুরোধ দ্বারা করতে শুধুমাত্র HTTPS দ্বারা সমর্থন করার জন্য যা OAuth এর সার্ভার। এটি কেবলমাত্র ক্লায়েন্ট / অনুরোধকারী সার্ভারকেই এইচটিটিপিএস সমর্থন করতে হবে না, সুতরাং কেবলমাত্র Auth Codeএইচটিটিপি-র মাধ্যমে পরিষ্কারভাবে প্রেরণ করা হবে। তবে Auth Codeক্লায়েন্টের আইডি / সিক্রেট ব্যতীত এটি অকেজো। মূলত OAuth কোড প্রবাহের বিষয়টি হ'ল কোনও এসএসএল-সক্ষম সক্ষম সার্ভার থাকার বোঝা ওআউথ সরবরাহকারী (গুগল / ফেসবুক ইত্যাদি ...) এর উপর পড়ে এবং এপিআইয়ের ব্যবহারকারীদের (আপনি, আমি) নয়।
নিকোলাস গারনিয়ার

5
ঠিক আছে, আমি এখন অনুসরণ করি যে অ্যাথথ কোডটি সরল এইচটিটিপি-র মাধ্যমে পাস করা যেতে পারে এবং এটি শুকনো হওয়ার ঝুঁকি রয়েছে। এটিকে একবার ব্যবহার করার কোড তৈরি করা এবং অ্যাক্সেস টোকেনের বিনিময়ের জন্য ক্লায়েন্টের গোপনীয়তা গ্রহণ করা, অনুমোদনের সার্ভারটি ম্যান-ইন-মধ্য-আক্রমণকে আটকাতে পারে। তবে এটি অ্যাক্সেস টোকেনের ক্ষেত্রেও প্রযোজ্য নয়? যেহেতু এপিআই-র ব্যবহারকারীর প্লেইন এইচটিটিপিতে থাকতে পারে, তাই হ্যাকার দ্বারা অ্যাক্সেস টোকেন শুকিয়ে যাওয়ার কি ঝুঁকি থাকবে না? পিএস - এই থ্রেডটি সক্রিয় হওয়ার পরে কিছুক্ষণ হয়ে যাওয়ার পরেও ধারণাটি ব্যাখ্যা করার জন্য আমি আপনার প্রচেষ্টাটির প্রশংসা করি। ধন্যবাদ!
অ্যান্ডি ডুফ্রেসনে

8
কোনও পিবি নয় :) এপিআই-র অনুরোধগুলি - যা যখন অ্যাক্সেস টোকেনটি তারের মাধ্যমে প্রেরণ করা হয় (অনুরোধ অনুমোদিত করার জন্য) - এটিও এইচটিটিপিএসের মাধ্যমে বাধ্যতামূলকভাবে করা হয়। তত্ত্বগতভাবে ক্লায়েন্টকে কোনও মুহুর্তে প্লেইন এইচটিটিপিতে অ্যাক্সেস টোকেনকে ওভার-দ্য ওয়্যারটি পাঠানো উচিত নয়।
নিকোলাস গারনিয়ার

5
এই পদক্ষেপে অ্যাক্সেস টোকেন ক্লায়েন্টের কাছ থেকে সংস্থানকারী সার্ভারে এইচটিটিপিএস অনুরোধের প্রতিক্রিয়ার অংশ। এই প্রতিক্রিয়াটি এখনও এনক্রিপ্ট করা আছে।
নিকোলাস গারনিয়ার

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

8

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

https://labs.hybris.com/2012/06/05/oauth2-the-implicit-flow-aka-as-the-client-side-flow


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

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

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

4

থেকে OAuth এর বৈশিষ্ট :

4.2। অন্তর্ভুক্ত অনুদান

অন্তর্নিহিত অনুদান প্রকারটি অ্যাক্সেস টোকেনগুলি প্রাপ্ত করার জন্য ব্যবহৃত হয় (এটি রিফ্রেশ টোকেন জারি করা সমর্থন করে না) এবং নির্দিষ্ট পুনর্নির্দেশ ইউআরআই পরিচালিত পরিচিত পাবলিক ক্লায়েন্টদের জন্য এটি অনুকূলিত। এই ক্লায়েন্টগুলি সাধারণত ব্রাউজারে জাভাস্ক্রিপ্টের মতো স্ক্রিপ্টিং ভাষা ব্যবহার করে প্রয়োগ করা হয়।

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

অনুমোদনের কোড অনুদানের প্রকারের বিপরীতে, ক্লায়েন্ট অনুমোদনের জন্য এবং অ্যাক্সেস টোকেনের জন্য পৃথক অনুরোধ করে, ক্লায়েন্ট অনুমোদনের অনুরোধের ফলাফল হিসাবে অ্যাক্সেস টোকেন গ্রহণ করে।

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

সুতরাং আমরা কী বিবেচনা করতে পারি:

  1. এটি সর্বজনীন OAuth এর জন্য যখন ক্লায়েন্টকে নিবন্ধভুক্ত করার প্রয়োজন হয় না এবং তার নিজস্ব ক্লায়েন্টের গোপনীয়তা থাকে না। তবে কি প্রমাণীকরণের সার্ভারটি ইউআরএলকে পুনর্নির্দেশ করে এবং এটি সুরক্ষার জন্য যথেষ্ট enough

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

  3. এইচটিএমপিএস ব্যবহার করার সময় এবং কাঁচা এইচটিটিপিতেও তেমন কার্যকর না হওয়ার জন্য অতি সামান্য অ্যাক্সেস টোকেন এবং রিফ্রেশ টোকেনের বিভাজন অকেজো। তবে অন্তর্নিহিত প্রবাহের মাধ্যমে ক্লায়েন্ট রিফ্রেশ টোকেনটি গ্রহণ করতে পারে না তাও বাজে কথা।

সুতরাং আমি মনে করি আমাদের একটি নতুন অনুদান প্রবাহ "নিরাপদ অন্তর্ভুক্ত" প্রবর্তন করা উচিত যা https- র উপর কঠোরভাবে কাজ করে, রিফ্রেশ টোকনকে অনুমতি দেয় (বা আমাদের এগুলি থেকে মুক্তি দেওয়া উচিত), এবং আউথ কোস অনুদান প্রবাহের চেয়ে পছন্দনীয়


3

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

এটি কাজ করে এবং সুরক্ষিত কারণ রিফ্রেশ টোকেনগুলি প্রত্যাহার করা যায়। যদি কোনও গ্রাহক যদি বলেন যে তারা তাদের ফোন বা তাদের ল্যাপটপ হারিয়ে ফেলেছে বা কোনও হ্যাকার তাদের ডেস্কটপে গিয়েছে, আমরা কেবল সেই ব্যবহারকারীর জন্য রিফ্রেশ টোকেনগুলির সমস্তটি প্রত্যাহার করতে পারি। পুরো প্রক্রিয়া চলাকালীন কোনও ব্যক্তিগত পরিচয়যোগ্য তথ্য (পিআইআই) আমাদের কোড - যথা ব্যবহারকারীর পাসওয়ার্ড স্পর্শ করে না।

কোড প্রবাহ দুর্দান্ত, তবে এটি আরও বেশি কাজ করে take এমএসের বর্তমানে এটি পরিচালনা করার জন্য একটি কৌনিক গ্রন্থাগার নেই, সুতরাং আমার একটি লিখতে হয়েছিল। আপনি যদি আগ্রহী হন তবে আমি এটিতে আপনাকে সহায়তা করতে পারি।


2

আমার উত্তরটি হ'ল: আপনি ওয়েব-অ্যাপ সার্ভারের সাহায্যে নিরাপদ এবং সরল পদ্ধতিতে অন্তর্ভুক্ত প্রবাহটি প্রয়োগ করতে পারবেন না।

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

তাই টোকেনকে ওয়েব-অ্যাপে পুনর্নির্দেশ ইউআরএল ব্যবহার করা উচিত, তাই না?

@ নিকোলাসগার্নিয়ার তার উত্তর এবং মন্তব্যে যেমন ব্যাখ্যা করেছেন যে কোনও URL টুকরা হিসাবে টোকেন পাস করার কোনও উপায় নেই - এটি ওয়েব-অ্যাপ সার্ভারে পৌঁছাবে না।

এবং ডায়রেক্টর ইউআরএল এর ইউআরএল প্যারাম হিসাবে টোকন পাস করা এইচটিটিপিএস এর অধীনেও অনিরাপদ হতে পারে: লক্ষ্য পৃষ্ঠাতে (এটি "গ্রিটিংস পৃষ্ঠা হতে দিন") যদি সংস্থানগুলি (চিত্র, স্ক্রিপ্টস ইত্যাদি) থাকে তবে এই সংস্থানগুলি ব্রাউজারের মাধ্যমে সিরিজের মাধ্যমে প্রাপ্ত হবে এইচটিটিপি (এস) এর অনুরোধগুলির (যার প্রত্যেকটিতেই Refererইউআরএল প্যারামিটার সহ "গ্রিটিংস পৃষ্ঠা" এর সঠিক URL রয়েছে এমন HTTP শিরোনাম রয়েছে)। টোকেনটি এভাবে ফাঁস হতে পারে।

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

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