রিসোর্স সার্ভারের জন্য কীভাবে একটি OAuth 2.0 অ্যাক্সেস টোকেন যাচাই করবেন?


147

যখন কোনও ক্লায়েন্ট কোনও OAuth 2.0 অ্যাক্সেস টোকেন সহ একটি সুরক্ষিত সংস্থান পেতে একটি সংস্থান সার্ভারকে জিজ্ঞাসা করে, এই সার্ভারটি কীভাবে টোকেনটিকে বৈধতা দেয়? OAuth 2.0 টোকেন প্রোটোকল রিফ্রেশ করবেন?


সার্ভারটি টোকেনটি যা নিজেই ইস্যু করেছে তা বৈধতা দিতে সক্ষম হবে বলে মনে করা হয় ... সাধারণত এটি ডাটাবেস লুকআপ বা ক্রিপ্টো (স্ব-স্বাক্ষরিত টোকেন) হবে।
থিলো

আমি দেখি. এই ক্ষেত্রে কীভাবে, উত্সের মালিক ডাব্লুএস এবং ক্লায়েন্ট ডাব্লুএস উভয়ই ডিফারেন্স ডিভাইসে রয়েছে?
আচ্ছা

5
আপনি প্রমাণীকরণ পরিষেবা এবং সংস্থান পরিষেবাটি বোঝাতে চান? (ক্লায়েন্ট / গ্রাহক সর্বদা আলাদা ডিভাইসে থাকবেন এবং টোকেনগুলি নিজে যাচাই করতে পারবেন না) যদি এমনটি হয় তবে আপনি চেক করতে "ব্যয়বহুল" হওয়া রিফ্রেশ টোকন ব্যবহার করতে পারেন (কেবল লেখক সার্ভার এটি করতে পারে) তবে দীর্ঘকালীন এবং টোকেন অ্যাক্সেস যা ঘন ঘন মেয়াদ শেষ হয় এবং অফলাইনে চেক করা যায়।
থিলো

উত্তর:


97

নভেম্বর নভেম্বর 2015 আপডেট করুন: নীচে হান্স জেড অনুসারে - এটি এখন আরএফসি 7662 এর অংশ হিসাবে প্রকৃতপক্ষে সংজ্ঞায়িত করা হয়েছে ।

আসল উত্তর: অ্যাক্সেস টোকেন (এটি) বৈধতার জন্য OAuth 2.0 স্পেস ( আরএফসি 6749 ) কোনও রিসোর্স সার্ভার (আরএস) এবং অথরাইজেশন সার্ভার (এএস) এর মধ্যে মিথস্ক্রিয়াটিকে স্পষ্টভাবে সংজ্ঞায়িত করে না। এটি প্রকৃতপক্ষে এএস এর টোকেন ফর্ম্যাট / কৌশলের উপর নির্ভর করে - কিছু টোকেন স্ব-অন্তর্ভুক্ত থাকে ( জেএসওএন ওয়েব টোকেনের মতো ) অন্যরা একটি সেশন কুকির অনুরূপ হতে পারে যে তারা কেবল এএস এ সার্ভারের পাশে থাকা তথ্য রেফারেন্স করে।

এটিএসের বৈধতা যাচাইয়ের জন্য এএসের সাথে যোগাযোগের জন্য কোনও আরএসের জন্য একটি স্ট্যান্ডার্ড উপায় তৈরি করার বিষয়ে ওআউথ ওয়ার্কিং গ্রুপে কিছু আলোচনা হয়েছে । : আমার কোম্পানি (পিং পরিচয়পত্র) আমাদের বাণিজ্যিক OAuth এর হিসাবে (PingFederate) জন্য এক ধরনের পদ্ধতির নিয়ে আসা হয়েছে https://support.pingidentity.com/s/document-item?bundleId=pingfederate-93&topicId=lzn1564003025072.html#lzn1564003025072__section_N10578_N1002A_N10001 । এটি এর জন্য REST ভিত্তিক মিথস্ক্রিয়া ব্যবহার করে যা OAuth 2.0 এর পরিপূরক।


স্কট টি, কীভাবে পিং ফেডারেটে বৈশিষ্ট্যটি ব্যবহার করতে হবে সে সম্পর্কে একটি কোড নমুনা দেখার উপায় আছে?
জাভাহাদ

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

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

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

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

119

গুগল উপায়

গুগল Oauth2 টোকেন বৈধকরণ

অনুরোধ:

https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=1/fFBGRNJru1FQd44AzqT3Zg

প্রতিক্রিয়া:

{
  "audience":"8819981768.apps.googleusercontent.com",
  "user_id":"123456789",
  "scope":"https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email",
  "expires_in":436
} 

মাইক্রোসফ্ট উপায়

মাইক্রোসফ্ট - Oauth2 একটি অনুমোদন পরীক্ষা করুন

গিথুব পথ

গিথুব - Oauth2 একটি অনুমোদন পরীক্ষা করুন

অনুরোধ:

GET /applications/:client_id/tokens/:access_token

প্রতিক্রিয়া:

{
  "id": 1,
  "url": "https://api.github.com/authorizations/1",
  "scopes": [
    "public_repo"
  ],
  "token": "abc123",
  "app": {
    "url": "http://my-github-app.com",
    "name": "my github app",
    "client_id": "abcde12345fghij67890"
  },
  "note": "optional note",
  "note_url": "http://optional/note/url",
  "updated_at": "2011-09-06T20:39:23Z",
  "created_at": "2011-09-06T17:26:27Z",
  "user": {
    "login": "octocat",
    "id": 1,
    "avatar_url": "https://github.com/images/error/octocat_happy.gif",
    "gravatar_id": "somehexcode",
    "url": "https://api.github.com/users/octocat"
  }
}

আমাজন উপায়

অ্যামাজনের সাথে লগইন করুন - বিকাশকারী গাইড (ডিসেম্বর 2015, পৃষ্ঠা 21)

অনুরোধ:

https://api.amazon.com/auth/O2/tokeninfo?access_token=Atza|IQEBLjAsAhRmHjNgHpi0U-Dme37rR6CuUpSR...

প্রতিক্রিয়া:

HTTP/l.l 200 OK
Date: Fri, 3l May 20l3 23:22:l0 GMT 
x-amzn-RequestId: eb5be423-ca48-lle2-84ad-5775f45l4b09 
Content-Type: application/json 
Content-Length: 247 

{ 
  "iss":"https://www.amazon.com", 
  "user_id": "amznl.account.K2LI23KL2LK2", 
  "aud": "amznl.oa2-client.ASFWDFBRN", 
  "app_id": "amznl.application.436457DFHDH", 
  "exp": 3597, 
  "iat": l3ll280970
}

2
@ গুস্তাভোডিয়াজাইমাইমস এটি টোকন থেকে নির্ধারিত ব্যবহারকারীর আইডি কীভাবে সার্ভার সাইডকে স্বীকৃতি দেয় তা মোটেই ব্যাখ্যা করে না।
ব্যবহারকারী 2284570

22
আমি আপ আপ সমস্ত বুঝতে পারি না। এটি প্রশ্নের উত্তর দেবে না।
ডানকান জোন্স

জারি টোকেনটি বৈধ কিনা তা পরীক্ষা করতে আজুর অ্যাক্টিভ ডিরেক্টরিতে কি একই রকমের এন্ডপয়েন্ট রয়েছে কিনা তা কি কেউ জানেন?
ব্যবহারকারী180940

2
অন্য কথায়, আপনার নিজের রোল।
অ্যান্ড্রয়েড ডেভ

51

@ স্কট টি। এর উত্তরের একটি আপডেট: টোকেন বৈধতার জন্য রিসোর্স সার্ভার এবং অনুমোদনের সার্ভারের মধ্যে ইন্টারফেসটি অক্টোবর ২০১৫ সালে আইইটিএফ আরএফসি 62 7662২ এ মানক করা হয়েছিল, দেখুন: https://tools.ietf.org/html/rfc7662 । একটি নমুনা বৈধতা কলটি দেখতে পাবেন:

POST /introspect HTTP/1.1
Host: server.example.com
Accept: application/json
Content-Type: application/x-www-form-urlencoded
Authorization: Bearer 23410913-abewfq.123483

token=2YotnFZFEjr1zCsicMWpAA

এবং একটি নমুনা প্রতিক্রিয়া:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "active": true,
  "client_id": "l238j323ds-23ij4",
  "username": "jdoe",
  "scope": "read write dolphin",
  "sub": "Z5O3upPC88QrAjx00dis",
  "aud": "https://protected.example.net/resource",
  "iss": "https://server.example.com/",
  "exp": 1419356238,
  "iat": 1419350238,
  "extension_field": "twenty-seven"
}

অবশ্যই বিক্রেতাদের এবং পণ্যগুলির দ্বারা গ্রহণ সময়ের সাথে সাথে ঘটতে হবে।


যদি ওওনআইডি কানেক্টটি ব্যবহার করা হয় তবে অ্যাক্সেস টোকেনকে বৈধতা দেওয়ার জন্য আমরা আইডি টোকেন ব্যবহারের ওপেনইড পদ্ধতির পছন্দ করা উচিত নয়: ওপেনআইডিএন
আদনান কামিল

1
@ রেনান: কোনও অনুমোদনের অনুরোধে স্কোপগুলি যেভাবে অনুরোধ করা হচ্ছে তার সাথে সামঞ্জস্যপূর্ণ হওয়ার জন্য, যা একটি scopeক্যোয়ারী প্যারামিটারের সাথে রয়েছে যার মানটিতে স্কোপের একটি পৃথক পৃথক তালিকা রয়েছে
হ্যান্স জেড।

4
কোনও পরিচালনা পর্ষদ আনুষ্ঠানিকভাবে কিছু গ্রহণ না করে থাকলে দয়া করে "প্রমিত" শব্দটি ব্যবহার করবেন না। IETF আরএফসি 7662 ফেব্রুয়ারী 2018 হিসাবে স্পষ্টভাবে ইঙ্গিত করে যে এটি একটি "প্রস্তাবনা"।
অ্যান্ড্রয়েড ডেভ

1
@ অ্যাডনঙ্কামিলি "প্রস্তাব" বলে কিছু নেই। কোনও দলিল আরএফসিতে পরিণত হওয়ার সাথে সাথে এটি ইতিমধ্যে একটি "প্রস্তাবিত মান" যা এটির পিছনে উল্লেখযোগ্য ওজন বহন করে। OAuth 2.0 নিজেই এখনও একটি "প্রস্তাবিত স্ট্যান্ডার্ড" তাই আপনি কোন পয়েন্টটি বানাতে চাইছেন তা আমি নিশ্চিত নই।
পেস

15

OAuth 2.0 স্পেস অংশটি সংজ্ঞায়িত করে না। তবে কয়েকটি বিকল্প থাকতে পারে:

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

  2. আথজ সার্ভারটি ব্যক্তিগত কী ব্যবহার করে টোকন এনক্রিপ্ট / স্বাক্ষর করতে পারে এবং তারপরে রিসোর্স সার্ভারকে সার্বজনীন / সার্ট দেওয়া যেতে পারে। রিসোর্স সার্ভারটি টোকেন পেয়ে গেলে এটি টোকেন যাচাই করতে স্বাক্ষরটি ডিক্রিপ্ট করে / যাচাই করে। সামগ্রীটি নিয়ে যায় এবং টোকেনটি প্রক্রিয়া করে। এটি তখন অ্যাক্সেস সরবরাহ করতে পারে বা প্রত্যাখ্যান করতে পারে।


8

OAuth v2 চশমা ইঙ্গিত করে:

অ্যাক্সেস টোকেন বৈশিষ্ট্য এবং সুরক্ষিত সংস্থানগুলিতে অ্যাক্সেসের জন্য ব্যবহৃত পদ্ধতিগুলি এই স্পেসিফিকেশনের আওতার বাইরে এবং সঙ্গী নির্দিষ্টকরণ দ্বারা সংজ্ঞায়িত হয়।

আমার অনুমোদনের সার্ভারে একটি ওয়েবসার্ভিস (এসওএপি) এন্ডপয়েন্ট রয়েছে যা রিসোর্স সার্ভারকে অ্যাক্সেস_ টোকেনটি বৈধ কিনা তা জানতে দেয়।

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