সুরক্ষা টোকেন ব্যবহার করে রিপ্লে আক্রমণগুলির মতো জিনিসগুলি থেকে কীভাবে OAuth 2 সুরক্ষা দেয়?


564

আমি এটা বুঝতে হিসাবে, ঘটনা নিম্নলিখিত শৃঙ্খল জন্য অনুক্রমে OAuth এর 2 ঘটে Site-Aঅ্যাক্সেস করতে ব্যবহারকারীর কাছ থেকে তথ্য Site-B

  1. Site-Aনিবন্ধন করে Site-B, এবং একটি গোপনীয়তা এবং একটি আইডি প্রাপ্ত করে।
  2. যখন ব্যবহারকারীSite-A অ্যাক্সেস করতে বলেন Site-B, ব্যবহারকারীকে সেখানে প্রেরণ করা হয় Site-Bযেখানে তারা জানায় Site-Bযে তারা প্রকৃতপক্ষে Site-Aনির্দিষ্ট তথ্যের অনুমতি দিতে চায় ।
  3. Site-Bঅনুমোদনের কোড সহ ব্যবহারকারীকে পুনরায় পুনর্নির্দেশ করে Site-A
  4. Site-Aতারপরে Site-Bসুরক্ষা টোকেনের বিনিময়ে সেই গোপনীয়তা সহ সেই অনুমোদন কোডটি পাস করে ।
  5. Site-Aতারপরে অনুরোধের সাথে সুরক্ষা টোকেন বান্ডিল করে ব্যবহারকারীরSite-B পক্ষে অনুরোধ জানায়।

সুরক্ষা এবং এনক্রিপশনের ক্ষেত্রে এই সমস্ত কীভাবে উচ্চ স্তরে কাজ করে? সুরক্ষা টোকেন ব্যবহার করে রিপ্লে আক্রমণগুলির মতো জিনিসগুলি থেকে কীভাবে OAuth 2 সুরক্ষা দেয়?


49
oauth2 কেবল এখানে ব্যাখ্যা করেছেন: gist.github.com/mziwisky/10079157
পাওলো

4
স্পেসটি পড়ুন: সরঞ্জাম. ietf.org/html/rfc6749 আপনি কতটা বোধগম্য তা অবাক হতে পারেন। এটি খুব সঠিক যা খুব খারাপ নাও হতে পারে is
ক্রিস ভ্যান্ডারমোটেন

1
এই প্রশ্নটি এবং এর (বর্তমান) সমস্ত উত্তর OAuth 2.0 (যেমন code) এর একটি নির্দিষ্ট "অনুদানের ধরণের" উপর ফোকাস দেয় তবে অন্যান্য অনুদানের ধরণগুলি OAuth 2.0 এ সংজ্ঞায়িত করা হয়েছে যা বিভিন্ন ব্যবহারের ক্ষেত্রে প্রাসঙ্গিক (যেমন ব্যবহারকারীর সাথে সম্পর্কিত নয়)।
হ্যান্স জেড।

4
ওহ, "আইডিপ্রভাইডার সাইট" এর মতো আরও পাঠযোগ্য কিছু দিয়ে "সাইট বি" কে প্রতিস্থাপন করবেন না কেন?
ইউরি

উত্তর:


1378

OAuth 2.0 কীভাবে বাস্তব জীবনে কাজ করে:

উইন্ডোতে সর্বাধিক সুস্বাদু ডোনাট দেখতে পেয়ে আমি কাজ করার পথে ওলাফের বেকারি দিয়ে গাড়ি চালাচ্ছিলাম - আমি বলতে চাইছি, জিনিসটি চকোলেটযুক্ত ধার্মিকতা বয়ে যাচ্ছিল। তাই আমি ভিতরে গিয়ে "আমার কাছে অবশ্যই এই ডোনাট থাকতে হবে!" দাবি করে। তিনি বলেছিলেন "নিশ্চিত যে এটি 30 ডলার হবে।"

হ্যাঁ আমি জানি, একটি ডনোটের জন্য $ 30! এটি অবশ্যই সুস্বাদু হবে! হঠাৎ আমি শেফের চিৎকার শুনে "আমি না, তোমার জন্য কোনও ডান্ট" না শুনে আমি আমার ওয়ালেটের জন্য পৌঁছে গেলাম। আমি জিজ্ঞাসা করলাম: কেন? তিনি বলেছিলেন যে তিনি কেবল ব্যাংক স্থানান্তর গ্রহণ করেন।

সিরিয়াসলি? হ্যাঁ, তিনি গুরুতর ছিলেন। আমি প্রায় সেখানে চলে গিয়েছিলাম, কিন্তু তারপরে ডোনেট আমাকে ডেকে বললেন: "আমাকে খাও, আমি সুস্বাদু ..."। আমি ডোনেটের আদেশ অমান্যকারী কে? আমি বললাম ঠিক আছে।

তিনি আমাকে তার নামের সাথে একটি নোট এনেছিলেন (শেফ, ডোনাট নয়): "তাদের বলুন ওলাফ আপনাকে প্রেরণ করেছেন"। তার নামটি ইতিমধ্যে নোটটিতে ছিল, তাই আমি জানি না যে এটি বলার মূলকটি কী ছিল তবে ঠিক আছে।

আমি আমার ব্যাঙ্কে দেড় ঘন্টা গাড়ি চালিয়েছি। আমি নোটটি টেলারের হাতে দিয়েছি; আমি ওলাকে আমাকে পাঠিয়েছি বলেছি। তিনি আমাকে সেই চেহারাগুলির মধ্যে একটি দিয়েছেন, এমন ধরণের যা বলে যে "আমি পড়তে পারি"।

তিনি আমার নোটটি নিয়েছিলেন, আমার আইডি চেয়েছিলেন, আমাকে জিজ্ঞাসা করেছিলেন যে তাকে কত টাকা দেওয়া ঠিক আছে। আমি তাকে 30 ডলার বলেছি। তিনি কিছু স্ক্রিবলিং করেছিলেন এবং আমাকে অন্য একটি নোট দিয়েছেন handed এই একটিতে এটির একটি সংখ্যা ছিল, আমি অনুমান করেছি যে তারা কীভাবে নোটগুলি ট্র্যাক করে রাখে।

এই মুহুর্তে আমি অনাহারে আছি। আমি সেখান থেকে ছুটে যাই, দেড় ঘন্টা পরে আমি ফিরে এসেছিলাম, আমার নোটটি প্রসারিত করে ওলাফের সামনে দাঁড়িয়ে ছিলাম। তিনি এটি নিয়ে গেলেন, তার দিকে তাকিয়ে বললেন, "আমি ফিরে আসব"।

আমি ভেবেছিলাম সে আমার ডোনাট পাচ্ছে, তবে 30 মিনিটের পরে আমি সন্দেহজনক হতে শুরু করি। তাই আমি কাউন্টারটির পিছনে লোকটিকে জিজ্ঞাসা করলাম "ওলাফ কোথায়?"। তিনি বলেছিলেন "তিনি টাকা পেতে গিয়েছিলেন"। "আপনি কি বোঝাতে চেয়েছেন?". "তিনি ব্যাংকে নোট নেন"।

হু ... তাই ওলাফ নোটটি নিয়েছিল যে ব্যাংকটি আমাকে দিয়েছে এবং আমার অ্যাকাউন্ট থেকে টাকা বের করতে ব্যাঙ্কে ফিরে গেছে। যেহেতু তার কাছে ব্যাংক আমাকে যে নোট দিয়েছে, তাই ব্যাংকটি জানত যে সে যে লোকটির বিষয়ে আমি কথা বলছিলাম, এবং যেহেতু আমি ব্যাঙ্কের সাথে কথা বলি তারা কেবল তাকে $ 30 দিতে জানত।

এটি বুঝতে আমার অবশ্যই অনেক সময় লেগেছিল কারণ আমি যখন তাকালাম ততক্ষণে ওলাফ আমার সামনে দাঁড়িয়ে ছিল আমার অবশেষে আমাকে আমার ডোনট দেবার জন্য। আমি চলে যাওয়ার আগে আমাকে জিজ্ঞাসা করতে হয়েছিল, "ওলাফ, আপনি কি সবসময় এইভাবে ডোনাট বিক্রি করেন?" "না, আমি এটি আলাদা করতাম।"

হাহ। আমি যখন গাড়ীতে ফিরে যাচ্ছিলাম তখন আমার ফোন বেজে উঠল। আমি উত্তর দিতে বিরক্ত করিনি, সম্ভবত আমার কাজটি আমাকে বরখাস্ত করার আহ্বান জানিয়েছিল, আমার বস এমন একটি ***। তদতিরিক্ত, আমি সবেমাত্র যে প্রক্রিয়াটি পেরিয়েছি তা ভেবে আমি ধরা পড়েছিলাম।

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

ঠিক আছে, নিশ্চিত যে আমি বরং তাকে আমার পকেট থেকে 30 ডলার দেব। তবে এখন তার কাছে সেই নোটটি ছিল আমি কেবলমাত্র ব্যাঙ্ককে বলতে পারি যে তাকে প্রতি সপ্তাহে 30 ডলার দিতে দিতে, তখন আমি কেবল বেকারিটিতে দেখাতে পারি এবং আমাকে আর ব্যাঙ্কে যেতে হয়নি। আমি চাইলে ফোনে ডোনট অর্ডারও করতে পারি।

অবশ্যই আমি তা কখনই করতাম না - ডোনেটটি ঘৃণ্য ছিল।

আমি ভাবছি যদি এই পদ্ধতির আরও বিস্তৃত অ্যাপ্লিকেশন থাকে। তিনি উল্লেখ করেছিলেন এটি ছিল তাঁর দ্বিতীয় পদ্ধতি, আমি এটি ওলাফ ২.০ বলতে পারি। যাইহোক আমি ভাল বাড়িতে ফিরে, আমি একটি নতুন কাজ সন্ধান করতে হবে। তবে শহর জুড়ে সেই নতুন স্ট্রবেরি কাঁপতে কাঁপতে কাঁপানোর আগে আমি এই ডোনাটের স্বাদ ধুয়ে ফেলতে কিছু দরকার।


41
ঠিক আছে, অনুশীলনে ওলাফ আপনার অ্যাকাউন্ট থেকে যে কোনও সময় চাইলে $ 30 নিতে সক্ষম হওয়া উচিত, এমনকি আপনি কোনও ডোনাট অর্ডার না করলেও। মজার বিষয় হ'ল আসল oauth2.0 দৃশ্যের মূল লক্ষ্য :) এটি অবশ্যই একটি দুর্দান্ত উত্তর, তবে যে কেউ এটি পড়ছেন দয়া করে সেই প্রশ্নটি তাঁর বক্তব্যটিতে উল্লেখ করেছেন যে পাওলো তার মন্তব্যে উল্লেখ করেছেন ( gist.github.com/mziwisky/ 10079157 )। ধারণাটি স্ফটিক পরিষ্কার করার জন্য একটি ভাল পরিপূরক পাঠ।
সামিরন

4
দুর্দান্ত উত্তর তবে 2 পয়েন্ট উত্থাপন করতে হবে: 1. @ সামিরন উল্লেখ করেছেন যে, ওলাফ যে কোনও সময় চাইলে 30% নিতে সক্ষম হবে। ২. আসল ওআউথ ২.০ দৃশ্যে ওলাফ ব্যাংক থেকে অর্থ নেওয়ার আগে ডোনেটের সেবা দিতে পারবেন না। এই উদাহরণে থাকাকালীন, তিনি এই চেকটি রাখতে পারতেন এবং কেবল লুইসকে তার ভাল উপার্জনযুক্ত ডনট উপহার দিয়েছিলেন। সুতরাং যদি আমরা এটির উদাহরণটি পরিবর্তিত করি যে আমি ওলাফকে জানলাম যে আমি জানি যে কোনও তৃতীয় পক্ষের কাছ থেকে ময়দা পেতে, তবে এটি আরও অর্থপূর্ণ হবে কারণ ওলাফ ডোনাট বেকিং শুরু করার আগে ময়দা পেতে হবে (একাকী ডোনাট ওলাফকে ধরে নিচ্ছেন) শুধুমাত্র প্রদর্শন উদ্দেশ্যে ছিল!)।
টিকার 23

4
টিকার 23, ডোনাট গল্পটি দুর্ভাগ্যক্রমে আপনার প্রযুক্তিগত সংশোধনকে পরাজিত করে - আমি যখন এটি পড়ি তখন গল্পে আমার বিক্রি হয়েছিল। এটি লিখেছিলেন হোমার সিম্পসন।
শেভি

4
@ প্রজেথ ওলাফ সর্বদা একটি সুরক্ষিত বাক্সে এবং ব্যাঙ্কের কাছ থেকে ব্যাঙ্কটি নোটটি বহন করে যা ছড়িয়ে পড়ে যদি কালি ফাঁস হয় তবে নোটটি পুনরুদ্ধার করতে অনেক সময়কাল লাগবে। ব্যাংকও তাদের প্রথম সফরে গ্রাহকদের আঙ্গুলের ছাপ নিয়ে থাকে, যদি ওলফ যদি বেকিং দুর্ঘটনায় আঙুল হারিয়ে ফেলে তবে তাকে লুইসকে আবারও ব্যাংক ট্রান্সফার সেটআপ করতে বলা হবে, এবং পরের বার ব্যাংকটিকে তার ব্রেকিং ব্রেড ট্যাটু দিয়ে ওলাফকে সনাক্ত করতে হবে ।
ক্রিস

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

133

আমি যা পড়েছি তার উপর ভিত্তি করে, এটি সমস্তরকমভাবে কাজ করে:

প্রশ্নটিতে বর্ণিত সাধারণ প্রবাহটি সঠিক। পদক্ষেপ 2-এ, ব্যবহারকারী এক্স প্রমাণীকৃত, এবং সাইট বি তে ব্যবহারকারী এক্স এর তথ্যে সাইট এ'র অ্যাক্সেসের অনুমোদন দিচ্ছে step ধাপে, সাইটটি তার গোপনীয়তাটি সাইট বিতে ফেরত দেয়, যা নিজেই প্রমাণীকরণ করে, পাশাপাশি অনুমোদনের কোডটি কী নির্দেশ করে? এটি (ব্যবহারকারী এক্স এর অ্যাক্সেস টোকেন) চাইছে।

সামগ্রিকভাবে, OAuth 2 আসলে খুব সাধারণ সুরক্ষা মডেল এবং এনক্রিপশন কখনই সরাসরি খেলতে আসে না। পরিবর্তে, গোপন এবং সুরক্ষা টোকন উভয়ই মূলত পাসওয়ার্ড এবং পুরো জিনিসটি কেবলমাত্র https সংযোগের সুরক্ষার দ্বারা সুরক্ষিত।

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

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


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

3
ঠিক আছে, @ মরিচেন, এর অর্থটি ঘটে .... তবে রিপ্লে আক্রমণটি ঠিক ততটা রিফ্রেশ টোকেনের সাথেই ঘটতে পারে নি, যেহেতু প্রতিটি অনুরোধটিই শেষ হয়ে যায়?
মিঃ মিক্কেল

15
অনুমোদনের কোডটি ব্যবহারকারীর মাধ্যমে পাস করা হয়েছে, সুতরাং (উদাহরণস্বরূপ) কুকি হিসাবে সংরক্ষণ করা যেতে পারে ( stackoverflow.com/questions/4065657/… দেখুন )। রিফ্রেশ টোকেন দুটি সাইটের মধ্যে সরাসরি চলে যায়, তাই খুব কম দুর্বল।
মরিস নাফটালিন

কৌতূহলের বাইরে, ওআউথ কি প্রোগ্রামটি ব্যবহারের জন্য কোনও অনন্য শনাক্তকারীকে ফেরত দেয়? উদাহরণস্বরূপ, আমি বর্তমানে ব্যবহারকারীর সনাক্তকরণের জন্য ম্যাক ঠিকানার উপর নির্ভর করছি, তবে এর সাথে ম্যাকগুলি অবিশ্বাস্য / সহজেই সজ্জিত / ইত্যাদি। আমি কেবল ম্যাক ঠিকানা শনাক্তকরণ প্রক্রিয়াটি স্ক্র্যাপ করতে পারি এবং যদি এটি আমাকে অনন্যভাবে ব্যবহারকারীদের সনাক্ত করতে দেয় তবে OAuth যেতে পারি go
দ্যগ্রিনকাবেজ

1
এই চিত্রটিতে লক্ষ্য করুন: সরঞ্জাম. ietf.org/html/rfc6749#section-4.1 "সিক্রেট" দেখানো হয়নি, কেবল ক্লায়েন্ট আইডেন্টিফায়ার (প্রশ্নের আইডি)। কেন গোপনীয়তা গুরুত্বপূর্ণ এবং কেন এটি আরএফসির অন্তর্ভুক্ত নয়? এছাড়াও প্রশ্নের মধ্যে স্থানীয় রাষ্ট্রটিও রয়েছে যা ক্লায়েন্ট আইডি (এ) এর প্রাথমিক সংক্রমণে পাস করার পরামর্শ দেওয়া হয় এবং এক্সএসএসএফের বিরুদ্ধে সুরক্ষার জন্য অনুমোদনের কোড সহ ক্লায়েন্টকে পুনর্নির্দেশ করার পরামর্শ দেওয়া হয়।
ডেভিড উইলিয়ামস

104

OAuth একটি প্রোটোকল যা দিয়ে কোনও 3-পক্ষের অ্যাপটি আপনার অ্যাকাউন্ট এবং পাসওয়ার্ড ছাড়াই অন্য ওয়েবসাইটে সঞ্চিত আপনার ডেটা অ্যাক্সেস করতে পারে। আরও সরকারী সংজ্ঞা জন্য, উইকি বা স্পেসিফিকেশন দেখুন।

এখানে একটি ব্যবহারের কেস ডেমো রয়েছে:

  1. আমি লিংকডইনে লগইন করেছি এবং আমার Gmail পরিচিতিতে থাকা কিছু বন্ধুকে সংযোগ করতে চাই। লিঙ্কডইন এটি সমর্থন করে। এটি জিমেইল থেকে সুরক্ষিত সংস্থান (আমার জিমেইল যোগাযোগের তালিকা) জন্য অনুরোধ করবে। সুতরাং আমি এই বোতামটি ক্লিক করুন:
    সংযোগ যুক্ত করুন

  2. একটি ওয়েব পৃষ্ঠা পপ আপ হয় এবং এটি আমার লগইন এবং পাসওয়ার্ডটি প্রবেশ করার পরে Gmail লগইন পৃষ্ঠাটি দেখায়:
    সংযোগ যুক্ত করুন

  3. Gmail এর পরে একটি সম্মতি পৃষ্ঠা দেখায় যেখানে আমি "স্বীকার করুন" ক্লিক করি: সংযোগ যুক্ত করুন

  4. এখন লিঙ্কডইন Gmail এ আমার পরিচিতিগুলি অ্যাক্সেস করতে পারে: সংযোগ যুক্ত করুন

নীচে উপরে উদাহরণের একটি ফ্লোচার্ট দেওয়া হয়েছে:

সংযোগ যুক্ত করুন

পদক্ষেপ 1: লিঙ্কডইন Gmail এর অনুমোদন সার্ভার থেকে একটি টোকেনের জন্য অনুরোধ করে।

পদক্ষেপ 2: জিমেইল অনুমোদনের সার্ভারটি রিসোর্স মালিককে প্রমাণীকরণ করে এবং ব্যবহারকারীর সম্মতি পৃষ্ঠাটি দেখায়। (ব্যবহারকারী যদি তারা ইতিমধ্যে লগ ইন না করে থাকে তবে জিমেইলে লগইন করতে হবে)

পদক্ষেপ 3: ব্যবহারকারী জিমেইল ডেটা অ্যাক্সেস করার জন্য লিংকডইনকে অনুরোধ মঞ্জুর করে।

পদক্ষেপ 4: Gmail অনুমোদনের সার্ভারটি অ্যাক্সেস টোকেন দিয়ে ফিরে সাড়া দেয়।

পদক্ষেপ 5: লিঙ্কডইন এই অ্যাক্সেস টোকেন সহ Gmail এপিআই কল করে।

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

আপনি এখানে OAuth সম্পর্কিত বিশদ থেকে আরও জানতে পারেন ।


আপনার সমস্ত চিত্র অনুপস্থিত। কোনও সুযোগ আপনি এগুলি stack.imgur এ লোড করতে পারেন?
ChrisF

1
এটি কীভাবে সঠিক হতে পারে? এই প্রক্রিয়াটি কি ব্রোকারের সামনে বসে লিঙ্কডইন দ্বারা নয়, ব্যবহারকারী দ্বারা শুরু করা হয়েছিল? তবে আপনার কাছে এটি 3 ধাপ হিসাবে রয়েছে This এটি আমি পাই না।
ম্যাট

17
সবচেয়ে সহজ ব্যাখ্যা। ধন্যবাদ, আমি আর কখনও ডোনাট
কিনব

চতুর্থ ধাপের লিঙ্কডিন একটি অনুমোদনের টোকেন সহ ফিরে আসে। এটি 5 তম ধাপে সরবরাহ করতে হবে, যেখানে আমরা একটি অ্যাক্সেস টোকেন এবং একটি রিফ্রেশ টোকন পেয়ে যা যা সুরক্ষিত সংস্থানগুলির জন্য আরও ব্যবহৃত হতে পারে।
অমেশ

@ ইমেশ ধন্যবাদ, আপনি ঠিকই বলেছেন, এটি অনুমোদনের কোড প্রবাহ, এখানে আমি কেবলমাত্র ওআউথ ২ এর মূল ধারণাটি দেখানোর সহজ সরল উপায়ে বলেছি
ওভেন কাও

24

চিত্র 1, আরএফসি 6750 থেকে তোলা :

     +--------+                               +---------------+
     |        |--(A)- Authorization Request ->|   Resource    |
     |        |                               |     Owner     |
     |        |<-(B)-- Authorization Grant ---|               |
     |        |                               +---------------+
     |        |
     |        |                               +---------------+
     |        |--(C)-- Authorization Grant -->| Authorization |
     | Client |                               |     Server    |
     |        |<-(D)----- Access Token -------|               |
     |        |                               +---------------+
     |        |
     |        |                               +---------------+
     |        |--(E)----- Access Token ------>|    Resource   |
     |        |                               |     Server    |
     |        |<-(F)--- Protected Resource ---|               |
     +--------+                               +---------------+

13

এই নিবন্ধে ভালভাবে ব্যাখ্যা করা হয়েছে Oauth 2.0 কীভাবে এটি কাজ করে

এখানে চিত্র বর্ণনা লিখুন


আপনি ফেসবুক বা অন্যান্য 3 য় পক্ষ ব্যবহার না করার ক্ষেত্রে আপনি OAUTH2 বর্ণনা করতে পারেন তবে আপনি যদি ওয়েব অ্যাপ্লিকেশন সুরক্ষিত করার জন্য ফোন অ্যাপের সাথে গোপন কী এবং TOTP টোকেন ব্যবহার করেন?
আল গ্রান্ট

ফেসবুক এই উদাহরণে অনুমোদনের সার্ভার যা কোনও ক্লায়েন্টের কাছে অ্যাক্সেস টোকেন দেওয়ার বিষয়টি যাতে তারা ফেসবুক এপিআইগুলিতে অ্যাক্সেস করতে পারে। আপনি যদি নিজের API গুলি সুরক্ষিত করতে চান তবে আপনার নিজের অনুমোদনের সার্ভারটি প্রয়োগ করতে হবে। তারপরে আপনি স্থির করে নিন যে অ্যাক্সেস টোকেন পেতে আপনি কোন অনুদানের ব্যবহার করতে চান। আমাকে বলুন আপনি ঠিক কি চান? ব্যাখ্যা করবে.
সুরজ

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

আমার শেষ মন্তব্যটি কি আপনাকে আরও আলোকিত করে? টুইটার তথ্যের জন্য আমার প্রোফাইল দেখুন
আল গ্রান্ট

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

10

এটি একটি মণি:

https://www.digitalocean.com/community/tutorials/an-introduction-to-oauth-2

খুব সংক্ষিপ্তসার:

OAuth চারটি ভূমিকা সংজ্ঞা দেয়:

  1. সংস্থান মালিক
  2. মক্কেল
  3. রিসোর্স সার্ভার
  4. অনুমোদন সার্ভার

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

OAuth থাকার কারণ হ'ল GMail আপনার ইয়াহু ব্যবহারকারীর নাম এবং পাসওয়ার্ড সংরক্ষণের জন্য এটি অনিরাপদ।

এখানে চিত্র বর্ণনা লিখুন


8

অন্য উত্তরটি খুব বিস্তারিত এবং ওপি কর্তৃক উত্থাপিত বেশিরভাগ প্রশ্নের সমাধান করে।

"সুরক্ষা টোকেন ব্যবহার করে রিপ্লে আক্রমণের মতো জিনিসগুলির বিরুদ্ধে কীভাবে ওআউথ 2 সুরক্ষা দেয়?" এর ওপির প্রশ্নটি বিস্তারিতভাবে বর্ণনা করার জন্য, ওএথ 2 বাস্তবায়নের জন্য অফিসিয়াল সুপারিশগুলিতে দুটি অতিরিক্ত সুরক্ষা রয়েছে :

1) টোকেনগুলির সাধারণত একটি সংক্ষিপ্ত মেয়াদ শেষ হবে ( http://tools.ietf.org/html/rfc6819#section-5.1.1.3 ):

টোকেনগুলির জন্য একটি স্বল্প মেয়াদোত্তীর্ণ সময় হ'ল নিম্নলিখিত হুমকির বিরুদ্ধে সুরক্ষার একটি মাধ্যম:

  • আবার দেখাও...

2) টোকনটি যখন সাইট এ দ্বারা ব্যবহার করা হয়, তখন প্রস্তাবটি হ'ল এটি ইউআরএল প্যারামিটার হিসাবে নয় বরং অনুমোদনের অনুরোধ শিরোনাম ক্ষেত্রে ( http://tools.ietf.org/html/rfc6750 ) উপস্থাপন করা হবে:

ক্লায়েন্টরা "বেয়ারার" এইচটিটিপি অনুমোদন প্রকল্পের সাহায্যে "অনুমোদন" অনুরোধ শিরোনাম ক্ষেত্রটি ব্যবহার করে একটি বাহক টোকেনের সাথে অনুমোদিত অনুরোধ জানাতে হবে। ...

"অ্যাপ্লিকেশন / x-www-form-urlencoded" পদ্ধতিটি অ্যাপ্লিকেশন প্রসঙ্গগুলি ব্যতীত ব্যবহার করা উচিত নয় যেখানে অংশগ্রহণকারী ব্রাউজারগুলির "অনুমোদন" অনুরোধ শিরোনাম ক্ষেত্রটিতে অ্যাক্সেস নেই। ...

ইউআরআই ক্যোয়ারী প্যারামিটার ... বর্তমান ব্যবহারের নথিতে অন্তর্ভুক্ত রয়েছে; সুরক্ষার ঘাটতির কারণে এটির ব্যবহারের প্রস্তাব দেওয়া হয় না


3

এখানে OAuth2 কীভাবে সমস্ত 4 টি অনুদানের ধরণের জন্য কাজ করে তার সহজ ব্যাখ্যা, অর্থাত্, 4 টি বিভিন্ন প্রবাহ যেখানে অ্যাপ্লিকেশনটি অ্যাক্সেস টোকন অর্জন করতে পারে।

আদল

সমস্ত অনুদান ধরণের প্রবাহের 2 অংশ রয়েছে:

  • অ্যাক্সেস টোকেন পান
  • অ্যাক্সেস টোকেন ব্যবহার করুন

২ য় অংশ 'ব্যবহার অ্যাক্সেস টোকেন' সমস্ত প্রবাহের জন্য একই

পার্থক্য

প্রতিটি অনুদানের ধরণের জন্য প্রবাহের 1 ম অংশ 'অ্যাক্সেস টোকেন' পরিবর্তিত হয়।

তবে, সাধারণভাবে 'গেট অ্যাক্সেস টোকেন' অংশটি 5 টি পদক্ষেপের সমন্বয়ে সংক্ষিপ্ত করা যেতে পারে:

  1. ক্লায়েন্টের আইডি / গোপনীয়তা পেতে আপনার অ্যাপ (ক্লায়েন্ট) OAuth সরবরাহকারীর, যেমন, টুইটার ইত্যাদির সাথে প্রাক-নিবন্ধভুক্ত করুন
  2. আপনার পৃষ্ঠায় ক্লায়েন্ট আইডি এবং প্রয়োজনীয় স্কোপগুলি / অনুমতি সহ একটি সামাজিক লগইন বোতাম তৈরি করুন যাতে ক্লিক করা ব্যবহারকারী যখন প্রমাণীকরণের জন্য OAuth সরবরাহকারীর কাছে পুনঃনির্দেশিত হয়
  3. OAuth প্রদানকারী ব্যবহারকারীকে আপনার অ্যাপ্লিকেশন (ক্লায়েন্ট) এর অনুমতি দেওয়ার জন্য অনুরোধ করছে
  4. OAuth প্রদানকারী কোড জারি করে
  5. অ্যাপ (ক্লায়েন্ট) অ্যাক্সেস টোকেন অর্জন করে

5 টি ধাপের উপর ভিত্তি করে প্রতিটি অনুদানের ধরণের প্রবাহ কীভাবে আলাদা তা তুলনা করে এখানে পাশের পাশের চিত্রটি দেওয়া হয়েছে is

এই চিত্রটি https://blog.oauth.io/intrration-oauth2-flow-diagrams/ থেকে এসেছে

এখানে চিত্র বর্ণনা লিখুন

প্রত্যেকের বাস্তবায়নের অসুবিধা, সুরক্ষা এবং বিভিন্ন ক্ষেত্রে কেস বিভিন্ন স্তরের রয়েছে। আপনার প্রয়োজন এবং পরিস্থিতির উপর নির্ভর করে আপনাকে সেগুলির একটি ব্যবহার করতে হবে। কোনটি ব্যবহার করবেন?

ক্লায়েন্টের শংসাপত্র : যদি আপনার অ্যাপ্লিকেশনটি কেবলমাত্র একক ব্যবহারকারীর জন্য পরিবেশন করে

রিসোর্স মালিকের পাসওয়ার্ড ক্রেন্ডিয়েনশিয়াল : এটি কেবলমাত্র সর্বশেষ অবলম্বন হিসাবে ব্যবহার করা উচিত কারণ ব্যবহারকারীকে তার শংসাপত্রগুলি অ্যাপ্লিকেশনটির কাছে হস্তান্তর করতে হবে, যার অর্থ অ্যাপ্লিকেশন ব্যবহারকারী যা করতে পারে তার সবই করতে পারে

অনুমোদনের কোড : ব্যবহারকারীর অনুমোদন পাওয়ার সেরা উপায়

অন্তর্ভুক্ত : আপনার অ্যাপটি যদি মোবাইল বা একক পৃষ্ঠার অ্যাপ হয়

এখানে পছন্দের আরও ব্যাখ্যা রয়েছে: https://blog.oauth.io/choose-oauth2-flow-grant-tyype-for-app/

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