oauth 2.0 - उच्च स्तर पर, ओथ 2 कैसे काम करता है?




oauth-2.0 (5)

ओएथ 2.0 काम करता है, इस लेख में अच्छी तरह से समझाया गया है

जैसा कि मैं इसे समझता हूं, Site-A लिए Site-B से उपयोगकर्ता की जानकारी तक पहुंचने के लिए OAuth 2 में ईवेंट की निम्न श्रृंखला होती है।

  1. Site-A Site-B पर पंजीयक, और एक गुप्त और एक आईडी प्राप्त करता है।
  2. जब उपयोगकर्ता Site-B तक पहुंचने के लिए कहता है, तो उपयोगकर्ता को Site-B भेजा जाता है जहां वह Site-B बताता है कि वह वास्तव में विशिष्ट जानकारी के लिए Site-A अनुमति देना चाहता है।
  3. Site-B उपयोगकर्ता को Site-A वापस प्राधिकरण कोड के साथ रीडायरेक्ट करता है।
  4. Site-A फिर सुरक्षा टोकन के बदले Site-B अपने सीक्रेट के साथ प्राधिकरण कोड पास करता है।
  5. Site-A अनुरोध के साथ सुरक्षा टोकन को बंडल करके उपयोगकर्ता की ओर से Site-B को अनुरोध करता है।

उच्च स्तर पर सुरक्षा और एन्क्रिप्शन के मामले में यह सब कैसे काम करता है? ओथ 2 सुरक्षा टोकन का उपयोग करके रीप्ले हमलों जैसी चीजों के खिलाफ कैसे सुरक्षा करता है?


ओएथ 2.0 वास्तविक जीवन में कैसे काम करता है:

जब मैं खिड़की में सबसे स्वादिष्ट डोनट देखा तो मैं ओलाफ की बेकरी द्वारा काम करने के लिए अपने रास्ते पर गाड़ी चला रहा था - मेरा मतलब है, यह चीज़ चॉकलेट भलाई को टपक रही थी। तो मैं अंदर गया और मांग की "मुझे वह डोनट होना चाहिए!"। उन्होंने कहा "यकीन है कि $ 30 होगा।"

हाँ मुझे पता है, एक डोनट के लिए $ 30! यह स्वादिष्ट होना चाहिए! मैं अपने वॉलेट के लिए पहुंचा जब अचानक मैंने शेफ चिल्लाया "नहीं! तुम्हारे लिए कोई डोनट नहीं"। मैंने पूछा: क्यों? उन्होंने कहा कि वह केवल बैंक हस्तांतरण स्वीकार करता है।

गंभीरता से? हाँ, वह गंभीर था। मैं लगभग वहां चले गए, लेकिन फिर डोनट ने मुझे बुलाया: "मुझे खाओ, मैं स्वादिष्ट हूं ..."। मैं डोनट से आदेशों का उल्लंघन करने के लिए कौन हूं? मैंने ठीक कहा।

उसने मुझे उस पर अपना नाम दिया (शेफ, डोनट नहीं): "उन्हें बताओ ओलाफ ने आपको भेजा"। उसका नाम पहले ही नोट पर था, इसलिए मुझे नहीं पता कि यह कहने का मुद्दा क्या था, लेकिन ठीक है।

मैंने अपने बैंक में ढाई घंटे की दूरी तय की। मैंने नोट को टेलर को सौंप दिया; मैंने उससे कहा कि ओलाफ ने मुझे भेजा है। उसने मुझे उन दिखने में से एक दिया, जो कहता है, "मैं पढ़ सकता हूं"।

उसने मेरा नोट लिया, मेरी आईडी के लिए पूछा, मुझसे पूछा कि उसे देने के लिए कितना पैसा ठीक था। मैंने उसे $ 30 डॉलर बताया। उसने कुछ scribbling किया और मुझे एक और नोट सौंप दिया। इस पर संख्याओं का एक गुच्छा था, मैंने अनुमान लगाया कि वे नोट्स का ट्रैक कैसे रखते हैं।

उस समय मैं भूखा हूँ। मैं वहां से बाहर निकल गया, डेढ़ साल बाद मैं वापस आ गया, ओलाफ के सामने खड़ा हुआ मेरे नोट के साथ। उसने इसे लिया, इसे देखा और कहा, "मैं वापस आऊंगा"।

मैंने सोचा कि वह मेरा डोनट प्राप्त कर रहा था, लेकिन 30 मिनट के बाद मुझे संदिग्ध होना शुरू हो गया। तो मैंने उस लड़के से पूछा "ओलाफ कहां है?"। उसने कहा "वह पैसे पाने के लिए चला गया"। "तुम क्या मतलब है?"। "वह बैंक को नोट लेता है"।

हू ... तो ओलाफ ने नोट किया कि बैंक ने मुझे दिया और मेरे खाते से पैसा निकालने के लिए बैंक वापस गया। चूंकि उसके पास नोट था कि बैंक ने मुझे दिया था, बैंक जानता था कि वह वह लड़का था जिसके बारे में मैं बात कर रहा था, और क्योंकि मैंने बैंक से बात की थी, उन्हें पता था कि वह केवल 30 डॉलर देगी।

मुझे यह समझने में काफी समय लगेगा क्योंकि जब तक मैंने देखा, ओलाफ मेरे सामने खड़ा था और अंततः मुझे अपना डोनट सौंप रहा था। छोड़ने से पहले मुझे पूछना पड़ा, "ओलाफ, क्या आपने हमेशा इस तरह डोनट्स बेचते थे?"। "नहीं, मैं इसे अलग करता था।"

हुह। जैसे ही मैं अपनी गाड़ी पर वापस चला रहा था, मेरा फोन रेंज था। मैंने जवाब देने से परेशान नहीं किया, शायद मेरा काम मुझे आग लगाने के लिए बुला रहा था, मेरा मालिक ऐसा *** है। इसके अलावा, मैं उस प्रक्रिया के बारे में सोच रहा था जिसे मैंने अभी पार किया था।

मेरा मतलब है इसके बारे में सोचें: मैं ओलाफ को अपने खाते की जानकारी देने के बिना अपने बैंक खाते से $ 30 ले जाने में सक्षम था। और मुझे चिंता करने की ज़रूरत नहीं थी कि वह बहुत अधिक पैसा लेगा क्योंकि मैंने पहले ही बैंक को बताया था कि उसे केवल $ 30 लेने की इजाजत थी। और बैंक जानता था कि वह सही लड़का था क्योंकि उसके पास नोट था कि उन्होंने मुझे ओलाफ को देने के लिए दिया था।

ठीक है, यकीन है कि मैं उसे अपनी जेब से $ 30 सौंप दूंगा। लेकिन अब जब वह उस नोट पर था, तो मैं सिर्फ बैंक को हर हफ्ते $ 30 लेने के लिए कह सकता था, तो मैं बस बेकरी में दिख सकता था और मुझे अब बैंक में जाना नहीं था। अगर मैं चाहता था तो मैं फोन द्वारा डोनट को भी ऑर्डर कर सकता था।

बेशक मैं ऐसा कभी नहीं करूंगा - वह डोनट घृणित था।

मुझे आश्चर्य है कि इस दृष्टिकोण में व्यापक अनुप्रयोग हैं। उन्होंने उल्लेख किया कि यह उनका दूसरा दृष्टिकोण था, मैं इसे ओलाफ 2.0 कह सकता था। वैसे भी मैं बेहतर घर लेता हूं, मुझे एक नई नौकरी की तलाश शुरू करनी होगी। लेकिन इससे पहले कि मैं उन स्ट्रॉबेरी में से एक शहर में उस नई जगह से हिलाता हूं, मुझे उस डोनट के स्वाद को धोने के लिए कुछ चाहिए।


चित्रा 1, RFC6750 से उठाया गया:

     +--------+                               +---------------+
     |        |--(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 ---|               |
     +--------+                               +---------------+

दूसरा जवाब बहुत विस्तृत है और ओपी द्वारा उठाए गए सवालों के बड़े पैमाने पर संबोधित करता है।

"ओथ 2 सुरक्षा सुरक्षा टोकन का उपयोग करके रीप्ले हमलों जैसी चीजों के खिलाफ सुरक्षा कैसे करता है?" के ओपी के प्रश्न को संबोधित करने के लिए विशेष रूप से, ओएथ 2 को लागू करने के लिए आधिकारिक सिफारिशों में दो अतिरिक्त सुरक्षाएं हैं:

1) टोकन आमतौर पर एक छोटी समाप्ति अवधि होगी ( http://tools.ietf.org/html/rfc6819#section-5.1.5.3 ):

टोकन के लिए एक संक्षिप्त समाप्ति समय निम्नलिखित खतरों के खिलाफ सुरक्षा का साधन है:

  • पुनरावृत्ति ...

2) जब साइट ए द्वारा टोकन का उपयोग किया जाता है, तो सिफारिश यह है कि इसे यूआरएल पैरामीटर के रूप में प्रस्तुत नहीं किया जाएगा, लेकिन प्राधिकरण अनुरोध हेडर फ़ील्ड में ( http://tools.ietf.org/html/rfc6750 ):

ग्राहकों को "लेखक" HTTP प्राधिकरण योजना के साथ "प्राधिकरण" अनुरोध शीर्षलेख फ़ील्ड का उपयोग करके भालू टोकन के साथ प्रमाणीकृत अनुरोध करना चाहिए। ...

"अनुप्रयोग / एक्स-www-form-urlencoded" विधि का उपयोग अनुप्रयोग संदर्भों को छोड़कर नहीं किया जाना चाहिए जहां भाग लेने वाले ब्राउज़रों के पास "प्राधिकरण" अनुरोध शीर्षलेख फ़ील्ड तक पहुंच नहीं है। ...

यूआरआई क्वेरी पैरामीटर ... वर्तमान उपयोग दस्तावेज में शामिल है; इसकी सुरक्षा की कमी के कारण इसका उपयोग अनुशंसित नहीं है


यह एक मणि है:

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

बहुत संक्षिप्त सारांश:

OAuth चार भूमिकाओं को परिभाषित करता है:

  1. संसाधन मालिक
  2. ग्राहक
  3. संसाधन सर्वर
  4. प्रमाणीकरण सर्वर

आप (संसाधन मालिक) का मोबाइल फोन है। आपके पास कई अलग-अलग ईमेल खाते हैं, लेकिन आप अपने सभी ईमेल खाते एक ऐप में चाहते हैं, इसलिए आपको स्विचिंग रखने की आवश्यकता नहीं है। तो आपका जीमेल (क्लाइंट) आपके याहू ईमेल (संसाधन सर्वर) में पहुंच (याहू के प्रमाणीकरण सर्वर के माध्यम से) के लिए पूछता है ताकि आप अपने जीमेल आवेदन पर दोनों ईमेल पढ़ सकें।

OAuth का कारण मौजूद है क्योंकि जीमेल के लिए आपका याहू उपयोगकर्ता नाम और पासवर्ड स्टोर करना असुरक्षित है।