এসএএমএল 2 বনাম জেডাব্লুটিটি: OAuth2 বোঝা

এই ব্লগ পোস্টটি SAML2 বনাম জেডাব্লুটি সিরিজ অব্যাহত রেখেছে। শেষ পোস্টে, আমরা জেএসএন ওয়েব টোকেনগুলি নিয়ে আলোচনা করেছি। এখন, আমরা OAuth2 এবং ওপেনআইডি কানেক্টে যাচ্ছি, যা জেডাব্লুটিটির ব্যবহারের চারপাশে কিছু কাঠামো এবং প্রোটোকল সরবরাহ করে। এই প্রোটোকলগুলি JWT সহ, JWT ব্যবহারের ক্ষেত্রে এই সিরিজের কভারগুলি তৈরি করতে ব্যবহৃত হয়। আমরা OAuth2 দিয়ে শুরু করব। আমরা অ্যাপিজি এবং অ্যাজুরি অ্যাক্টিভ ডিরেক্টরি ইন্টিগ্রেশন - একটি জেডব্লিউটি স্টোরি পোস্টে OAuth2 কলগুলির এক ঝলক পেয়েছি। সেখানে আমরা প্রয়োগের অনুমোদনের কোড অনুদান এবং রিসোর্স মালিকের পাসওয়ার্ড শংসাপত্রের অনুদানের উদাহরণ দেখেছি। এই পোস্টটি সেই অনুদানগুলি এবং অন্যান্যদের আরও বিশদে দেখবে।

OAuth 2.0 কি?

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

রিসোর্সের মালিক: যে কোনও সত্তা যে কোনও সংস্থানে অ্যাক্সেস দিতে সক্ষম; এটি কোনও ব্যক্তি (বিশেষে শেষ ব্যবহারকারী হিসাবে পরিচিত) বা অন্যান্য বিভিন্ন ধরণের জিনিস হতে পারে - এটি আমাদের পূর্ববর্তী আলোচনা থেকে মূলত অধ্যক্ষ (জিনিস যা সত্যায়িত হতে পারে)।

ক্লায়েন্ট: অ্যাপ্লিকেশন যা রিসোর্সে অ্যাক্সেস চায়; এটি একটি মোবাইল অ্যাপ্লিকেশন, একক পৃষ্ঠা অ্যাপ্লিকেশন (এসপিএ), traditionalতিহ্যবাহী সার্ভার-সাইড ওয়েব অ্যাপ্লিকেশন উপাদান, ডেস্কটপ অ্যাপ্লিকেশন বা অন্য কয়েকটি জিনিস হতে পারে।

অনুমোদন সার্ভার: পরিচয় সরবরাহকারী (এটি এই সময়ে একটি পরিচিত ধারণা হওয়া উচিত) - যদি না হয় তবে শুরুতে শুরু করুন।

রিসোর্স সার্ভার: ক্লায়েন্টটি যে রিসোর্সটি ব্যবহার করতে চায় তা ধারণ করে (আবার, একটি এপিআই, ওয়েব সার্ভার, ইত্যাদি)।

OAuth 2.0 নিম্নলিখিত বিবরণ (এখানে থেকে) এর সমন্বয়ে গঠিত:

OAuth 2.0 কোর

  • OAuth 2.0 ফ্রেমওয়ার্ক - আরএফসি 6749
  • বহনকারী টোকেন ব্যবহার - আরএফসি 6750
  • হুমকি মডেল এবং সুরক্ষা বিবেচনা - আরএফসি 6819

OAuth 2.0 এক্সটেনশনগুলি

  • জেএসন ওয়েব টোকেন - আরএফসি 7519
  • OAuth Assertions ফ্রেমওয়ার্ক - আরএফসি 7521
  • এসএএমএল 2 বহনকারী দৃser়তা - বিদ্যমান পরিচয় সিস্টেমের সাথে সংহত করার জন্য আরএফসি 7522
  • জেডব্লিউটি বহনকারী দৃser়তা - বিদ্যমান পরিচয় সিস্টেমের সাথে সংহত করার জন্য আরএফসি 7523

এছাড়াও একটি OAuth2 টোকন এক্সচেঞ্জের বিশেষ বিশেষ আগ্রহ রয়েছে - আমরা ভবিষ্যতের প্রতিনিধি এবং ছদ্মবেশী পোস্টের সময় এই বৈশিষ্টটিতে আবার ঘুরে দেখব।

অনুমোদন অনুদান

অনুমোদনের অনুদানগুলি হ'ল OAuth2 এবং এক্সটেনশন স্পেসগুলি একে অপরের সাথে যোগাযোগ করার জন্য উপরে তালিকাভুক্ত অভিনেতাদের জন্য সংজ্ঞায়িত করে prot এই বিভাগটি প্রতিটি বর্ণনা করে।

অনুমোদনের কোড অনুদান (ওআউথ 2 স্পেশনের বিভাগ 4.1): এটিই সবচেয়ে বড় যেটি মনে করেন যে শেষ-ব্যবহারকারীর অন্তর্ভুক্ত রয়েছে এবং তৃতীয় পক্ষের ব্যবহারকারীর শংসাপত্রগুলি প্রকাশ না করেই শেষ-ব্যবহারকারীর সংস্থানগুলি অ্যাক্সেস করার জন্য তৃতীয় পক্ষের অ্যাপ্লিকেশনগুলিকে অনুমোদিত করা হয়- পার্টি অ্যাপ্লিকেশন। এটিকে সাধারণত তিন-পায়ের OAuth হিসাবে উল্লেখ করা হয়। যদিও, OAuth 1.0 এবং OAuth2 এর মধ্যে কোনও পিছনের সামঞ্জস্যতা নেই, ত্রি-পায়েযুক্ত ওআউথ থিম যা উভয়কে একত্রে আবদ্ধ করে। তিনটি "পা" (1) রিসোর্স মালিক (ব্যবহারকারী), (2) ক্লায়েন্ট এবং (3) রিসোর্স সার্ভারকে বোঝায়। এটি একটি ইন্টারেক্টিভ লগইনের একটি উদাহরণ - এর অর্থ এমন একটি শেষ ব্যবহারকারী অবশ্যই থাকতে হবে যা লগইন কর্মপ্রবাহের (প্রমাণীকরণের পদক্ষেপ) মাধ্যমে যেতে পারে।

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

অনুমোদনের কোড গ্রান্টে নিম্নলিখিত কলগুলি রয়েছে (এই উদাহরণগুলি OAuth2 বিশেষ থেকে এসেছে):

GET / oauth2 / অনুমোদিত?
  response_type = কোড &
  client_id = s6BhdRkqt3 &
  রাষ্ট্র = Xyz &
  REDIRECT_URI = HTTPS% 3A% 2F% 2Fclient% 2Eexample% 2Ecom% 2Fcb
 HTTP- র / 1.1
 হোস্ট: idp.example.com

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

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

HTTP / 1.1 302 পাওয়া গেছে
     অবস্থান: https://client.example.com/cb?code=SplxlOBeZQQYbYS6WxSbIA
& রাষ্ট্র = Xyz

ক্লায়েন্টটি, টোকেন শেষের পয়েন্টে নিম্নলিখিত কলটিতে অনুমোদনের কোডটি ব্যবহার করবে (আরও একবার, উদাহরণ থেকে উদাহরণটি)

পোস্ট / টোকেন এইচটিটিপি / 1.1
 হোস্ট: idp.example.com
 অনুমোদন: বেসিক czZCaGRSa3F0MzpnWDFmQmF0M2JW
 সামগ্রী-প্রকার: অ্যাপ্লিকেশন / x-www-form-urlencoded
 grant_type = authorization_code &
 কোড = SplxlOBeZQQYbYS6WxSbIA
 & REDIRECT_URI = HTTPS% 3A% 2F% 2Fclient% 2Eexample% 2Ecom% 2Fcb

টোকেন এন্ডপয়েন্ট থেকে প্রাপ্ত প্রতিক্রিয়া দেখতে কিছুটা দেখতে পাবেন (উদাহরণ থেকে উদাহরণ):

HTTP / 1.1 200 ঠিক আছে
     সামগ্রী-প্রকার: অ্যাপ্লিকেশন / জসন; চরসেট = ইউটিএফ -8
     ক্যাশে-নিয়ন্ত্রণ: কোনও দোকান নেই
     প্রগমা: নো-ক্যাশে

     {
       "ACCESS_TOKEN": "Jkdkdkld984dpslcmvjuf ..."
       "Token_type": "বাহক",
       "Expires_in": 3600,
       "Refresh_token": "tGzv3JOkF0XG5Qx2TlKWIA"
     }

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

উপরে বর্ণিত পদক্ষেপগুলি নিম্নলিখিত অনুক্রমের ডায়াগ্রামে বর্ণিত হয়েছে। ক্রম ডায়াগ্রামে সহায়তা করার জন্য কারেন লারসনকে বিশেষ ধন্যবাদ।

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

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

ক্লায়েন্ট কর্তৃপক্ষের শেষের বিন্দুতে কলটি এমন কিছু দেখতে পাবেন (উদাহরণটি উদাহরণ থেকে):

GET / oauth2 / অনুমোদিত? প্রতিক্রিয়া_ টাইপ = টোকেন এবং ক্লায়েন্ট_আইডি = s6BhdRkqt3 এবং রাষ্ট্র = xyz
 & redirect_uri = https% 3A% 2F% 2Fllient% 2 উদাহরণ% 2Ecom% 2Fcb HTTP / 1.1
 হোস্ট: idp.example.com

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

HTTP / 1.1 302 পাওয়া গেছে
     অবস্থান: http://example.com/cb#
  ACCESS_TOKEN = 2YotnFZFEjr1zCsicMWpAA &
  রাষ্ট্র = Xyz & token_type = উদাহরণ & expires_in = 3600

আপনি লক্ষ্য করবেন যে এক্সেস_ টোকেন এবং অন্যান্য বিবরণগুলি কোনও এইচটিটিপি পুনর্নির্দেশের কোনও ইউআরআই খণ্ডে ক্লায়েন্টকে দেওয়া হয়েছে - কোনও প্রতিক্রিয়া বার্তার মূল অংশ বা কোয়েরি পরামিতিগুলির অংশ হিসাবে নয়।

নিম্নলিখিত ক্রম চিত্রটি উপরোক্ত বর্ণিত অন্তর্ভুক্ত অনুদান পদক্ষেপগুলি বর্ণনা করে describes

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

প্রথম দুটি অনুমোদনের অনুদানের তুলনায়, এই অনুদানটি টোকন শেষের পয়েন্টে একটি সাধারণ, একক কল যা নিম্নলিখিতটির মতো দেখতে (উদাহরণ থেকে অনুমান করা):

পোস্ট / oauth2 / টোকেন এইচটিটিপি / 1.1
 হোস্ট: idp.example.com
 অনুমোদন: বেসিক czZCaGRSa3F0MzpnWDFmQmF0M2JW
 সামগ্রী-প্রকার: অ্যাপ্লিকেশন / x-www-form-urlencoded
 grant_type = পাসওয়ার্ড &
 ব্যবহারকারীর নাম = johndoe &
 পাসওয়ার্ড = A3ddj3w

উপরের অনুমোদনের কোড অনুদান বিভাগে দেখানো টোকেন এন্ডপয়েন্ট থেকে প্রাপ্ত প্রতিক্রিয়াটি কমবেশি দেখতে পাবেন।

নিম্নলিখিত ক্রম ডায়াগ্রাম উপরে বর্ণিত পদক্ষেপগুলি আরও ক্যাপচার করে।

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

টোকেন শেষ পয়েন্টে ক্লায়েন্টের শংসাপত্রগুলির জন্য অনুদান কলের অনুরোধটি দেখতে পাবেন (উদাহরণটি উদাহরণ থেকে):

পোস্ট / oauth2 / টোকেন এইচটিটিপি / 1.1
 হোস্ট: idp.example.com
 অনুমোদন: বেসিক czZCaGRSa3F0MzpnWDFmQmF0M2JW
 সামগ্রী-প্রকার: অ্যাপ্লিকেশন / x-www-form-urlencoded
 grant_type = client_credentials &
 সুযোগ = some_scope

প্রতিক্রিয়াটি উপরের অনুমোদন কোড গ্রান্টের প্রতিক্রিয়াটির মতো দেখায়, তবে এই ক্ষেত্রে অ্যাক্সেস_ টোকেনটি শেষ ব্যবহারকারীর চেয়ে ক্লায়েন্টকে (একটি অ্যাপ্লিকেশন) বর্ণনা করে।

নিম্নলিখিত ক্রম ডায়াগ্রাম উপরে বর্ণিত পদক্ষেপগুলি ক্যাপচার করে।

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

OAuth2 এক্সটেনশন অনুদান

OAuth2 কোর স্পেক এক্সটেনশন (অতিরিক্ত) অনুদানগুলি সংজ্ঞায়নের জন্য একটি প্রক্রিয়া সংজ্ঞায়িত করে যা OAuth2 ফ্রেমওয়ার্কের মধ্যে ব্যবহার করা যেতে পারে। "নতুন ক্লায়েন্ট প্রমাণীকরণ প্রক্রিয়া এবং একটি নতুন অনুমোদনের অনুদানের ধরণের আকারে OAuth 2.0 এর সাথে যুক্তির ব্যবহারের জন্য একটি কাঠামো সরবরাহ করতে OAuth 2.0 ক্লায়েন্ট প্রমাণীকরণ এবং অনুমোদনের অনুদানের স্পেসিফিকেশনটির জন্য এ্যাসারেশন ফ্রেমওয়ার্কটি এটি তৈরি করে। টোকেন এন্ডপয়েন্টের সাথে মিথস্ক্রিয়া চলাকালীন সংস্থানগুলি পরিবহন করার জন্য প্রক্রিয়াগুলি নির্দিষ্ট করা হয়; সাধারণ প্রক্রিয়াজাতকরণের নিয়মগুলিও নির্দিষ্ট করা হয় ”" OAuth 2.0 এর জন্য অ্যাস্রেসন ফ্রেমওয়ার্ক একটি "OAuth 2.0 এর পক্ষে সাধারণ পরিচয় প্রমাণের সাথে অন্য পরিচয় সিস্টেমের সাথে কাজ করার জন্য এবং বিকল্প ক্লায়েন্ট প্রমাণীকরণ প্রক্রিয়া সরবরাহ করার জন্য সাধারণ কাঠামো সরবরাহ করে” "এখানে Assertions শব্দের ব্যবহারের মূল অর্থ ব্যারিয়ার টোকেন (জেডব্লিউটি, এসএএমএল ভি ২.০ বহনকারী টোকেনস ইত্যাদি)। এই লেখার সময়, অ্যাজুর অ্যাক্টিভ ডিরেক্টরিটি এএডি দ্বারা জারি করা জেডাব্লুটিটি ব্যবহার করে ওএউথ 2 টোকেন এক্সচেঞ্জের বর্ণনায় অনুরূপ অন-বেহাল্ট-অফ কার্যকারিতার জন্য অনুমোদনের অনুদানের জন্য জেডাব্লুটি প্রোফাইল সমর্থন করে। অ্যাজুরি অ্যাক্টিভ ডিরেক্টরিটি ওএউথ 2 টোকেন এক্সচেঞ্জ স্পেসে বর্ণিত অনুরূপ অন-বেহাল্ট-অফ কার্যকারিতার জন্য অনুমোদনের অনুদানের জন্য এসএএমএল ২.০ বহনকারী দৃ As় প্রোফাইলকে সমর্থন করে, তবে এসএএমএল 2 এর সাথে এটি রিমোট আইডেন্টিটি সরবরাহকারীদের দ্বারা জারি করা ইনপুট টোকন নিতে পারে - এটি হ'ল "সিটিএস অ্যাপ্লিকেশনগুলির জন্য এপিআই ম্যানেজমেন্ট এবং সুরক্ষা" ব্লগ পোস্টে কী ব্যবহৃত হয়েছিল।

এসএএমএল ২.০ বহনকারী দৃser় প্রোফাইল (ওআউথ ২.০ ক্লায়েন্ট প্রমাণীকরণ এবং অনুমোদনের জন্য অনুদানের জন্য সুরক্ষা অ্যাসারশন মার্কআপ ল্যাঙ্গুয়েজ (এসএএমএল) ২.০ প্রোফাইল): এই স্পেসিফিকেশনটি কীভাবে ওএউথ 2 অ্যাক্সেস টোকেন বা ক্লায়েন্ট প্রমাণীকরণের জন্য অনুরোধের জন্য প্রমাণীকরণ পদ্ধতি হিসাবে এসএএমএল 2 বিয়ার টোকেনকে ব্যবহার করবেন তা সংজ্ঞায়িত করে। অ্যাক্সেস টোকেনের অনুরোধের জন্য ব্যবহৃত হওয়ার সময়, এসএএমএল দৃ As়তা সম্ভবত একটি শেষ ব্যবহারকারীর বর্ণনা দেয় যা অন্য আইডেন্টিটি সরবরাহকারীর সাথে প্রমাণিত হয়েছিল যা এসএএমএল 2 বহনকারী টোকেনকে সমর্থন করে। এটি এসএএমএল ২.০-এর অন্য একটি ব্যবহারের প্রতিনিধিত্ব করে, তবে আমরা এই সিরিজের প্রথম অংশে এটি আবিষ্কার করি নি। অনুমোদনের অনুদানের জন্য টোকেন শেষ পয়েন্টে OAuth2 কলটি দেখতে কিছুটা দেখতে (উদাহরণ থেকে অনুমান করে):

পোস্ট / oauth2 / টোকেন এইচটিটিপি / 1.1
 হোস্ট: idp.example.com
 বিষয়বস্তুর ধরণ: অ্যাপ্লিকেশন / x-www-form-urlencoded গ্র্যান্ট_ টাইপ = জল%% 3Aietf% 3 অপারেশন% 3 আওথ% 3 অ্যাগ্রেন্ট-টাইপ% 3Asaml2- ধারক এবং
জোর দেওয়া = PHNhbWxwOl… [ব্রেভিটির জন্য বাদ দেওয়া হয়েছে] ... জেডটি 4 এবং
ক্লায়েন্ট_আইডি = blahblah1234 &
সম্পদ = HTTPS: //some.endpoint.com/

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

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

এই দৃশ্যে অ্যাজুরে অ্যাক্টিভ ডিরেক্টরি ব্যবহার করার সময় আর একটি বিষয় মনে রাখতে হবে তা হ'ল এডির কাছে উপস্থাপন করা টোকেনটির শ্রোতাগুলি এএডি তে নিজে সেট করা উচিত। টোকেনটি বৈধ মানচিত্রে হলেও এএডি একটি আলাদা টোকেনকে প্রত্যাখাত করবে যা এর কাছে উপস্থাপিত হবে যার আলাদা শ্রোতা রয়েছে।

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

অনুমোদনের জন্য অনুদানের জন্য জেডব্লিউটি প্রোফাইল (জেএসওন ওয়েব টোকেন (জেডব্লিউটি) প্রোফাইল OAuth 2.0 ক্লায়েন্ট প্রমাণীকরণ এবং অনুমোদন অনুদান অনুদানের জন্য প্রোফাইল): এই অনুচ্ছেদটি কীভাবে ওডুথ 2 অ্যাক্সেস টোকেন বা ক্লায়েন্ট প্রমাণীকরণের জন্য অনুরোধ করার জন্য জেডব্লুটি টোকেনকে প্রমাণীকরণ পদ্ধতি হিসাবে ব্যবহার করবেন তা সংজ্ঞায়িত করে। অ্যাক্সেস টোকেনের জন্য অনুরোধ করার জন্য ব্যবহার করার সময়, জেডাব্লুটিটি সম্ভবত একটি শেষ ব্যবহারকারীর বর্ণনা দেয় যা অন্য আইডেন্টিটি সরবরাহকারী (যা জেডাব্লুটি সমর্থন করে) এর সাথে প্রমাণিত হয়েছিল - এটি উপরের এসএএমএল ২.০ ব্যবহারের বর্ণনার সাথে খুব পরিচিত মনে হবে should টোকেন শেষের বিন্দুতে কলটি দেখতে কিছুটা দেখতে (স্পেক থেকে):

পোস্ট / oauth2 / টোকেন এইচটিটিপি / 1.1
 হোস্ট: idp.example.com
 সামগ্রী-প্রকার: অ্যাপ্লিকেশন / x-www-form-urlencoded
 grant_type = ভস্মাধার% 3Aietf% 3Aparams% 3Aoauth% 3Agrant-টাইপ% 3Ajwt-বাহক ও
 কথন = eyJhbGciOiJFUzI1NiIsImtpZCI6IjE2In0।
 #Jpc3Mi [… ব্রেভিটির জন্য বাদ দেওয়া হয়েছে ...]।
 J9l-ZhwP [… ব্রেভিটির জন্য বাদ দেওয়া হয়েছে ...] এবং
 client_id = blahblah1234 &
 সম্পদ = HTTPS: //some.endpoint.com/

উপরোক্ত তালিকাভুক্ত সংস্থান, ক্লায়েন্ট_আইডি এবং স্কোপ প্যারামিটারগুলি সম্পর্কে আলোচনা এখানেও প্রযোজ্য।

টোকেন এক্সচেঞ্জ গ্রান্ট (OAuth 2.0 টোকেন এক্সচেঞ্জ স্পেস): এই স্পেসিফিকেশনটি সংজ্ঞায়িত করে

  • কীভাবে একটি OAuth2 অনুমোদন সার্ভার থেকে সুরক্ষা টোকেনগুলি অনুরোধ করবেন এবং পাবেন
  • কীভাবে একটি পক্ষ অন্য দলের পক্ষে কাজ করতে পারে বা এক পক্ষকে অন্য দলের কাছে কর্তৃত্ব অর্পণ করতে সক্ষম করে

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

টোকেন শেষের পয়েন্টে অনুরোধটি দেখতে অনুরূপ হবে (উদাহরণটি উদাহরণ থেকে):

পোস্ট / oauth2 / টোকেন এইচটিটিপি / 1.1
 হোস্ট: idp.example.com
 সামগ্রী-প্রকার: অ্যাপ্লিকেশন / x-www-form-urlencoded
 grant_type = ভস্মাধার% 3Aietf% 3Aparams% 3Aoauth% 3Agrant-টাইপ% 3Atoken-বিনিময়
 & শ্রোতা = ভস্মাধার% 3Aexample% 3Acooperation-প্রসঙ্গ
 & Subject_token = eyJhbGciOiJFUzI1NiIsImtpZCI6IjE2In0.eyJhdWQiOiJ ...
 & Subject_token_type = ভস্মাধার% 3Aietf% 3Aparams% 3Aoauth% 3Atoken-টাইপ% 3Ajwt
 & Actor_token = eyJhbGciOiJFUzI1NiIsImtpZCI6IjE2In0.eyJhdWQiOiJodHRw
 & Actor_token_type = ভস্মাধার% 3Aietf% 3Aparams% 3Aoauth% 3Atoken-টাইপ% 3Ajwt

তুলনা করার জন্য, আজুর অ্যাক্টিভ ডিরেক্টরিতে OAuth2 অন-বেহাল্ট-অফ কলটি দেখে মনে হচ্ছে:

পোস্ট করুন https://login.microsoftonline.com/common/oauth2/token HTTP / 1.1
সামগ্রী-প্রকার: অ্যাপ্লিকেশন / x-www-form-urlencoded
হোস্ট: লগইন.মাইক্রোসফ্টনলাইন.কম
সামগ্রী-দৈর্ঘ্য: 1000
সম্পদ = HTTPS% 3A% 2F% 2Fgraph.windows.net &
client_id = blahblah1234 &
ক্লায়েন্ট_সেক্রেট = blabbbblahsecret1234 এবং গ্রান্ট_ টাইপ = জল% %AAtf% 3Aparams% 3AAuth% 3Agrant- প্রকার% 3Ajwt- বহনকারী & জোর দেওয়া = AbEf [… ব্রেভিটি জন্য মুক্ত ...] কেডিপি 3 এবং
requested_token_use = on_behalf_of &
সুযোগ = OpenID

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

বার্তা প্রমাণীকরণ কোড (ম্যাক) টোকেন (OAuth 2.0 বার্তা প্রমাণীকরণ কোড (ম্যাক) টোকেন বিশেষ): এইটি OAuth2 দৃser়তা ফ্রেমওয়ার্ক ব্যবহার করে না। এটি অনুমোদনের কোড অনুদানের একটি এক্সটেনশান যা একটি ম্যাক ব্যবহার করার অনুমতি দেয়। এটি "OAuth 2.0 সুরক্ষিত সংস্থানগুলিতে অ্যাক্সেস করার জন্য HTTP অনুরোধগুলিতে MAC টোকেনগুলি কীভাবে ব্যবহার করবেন তা বর্ণনা করে। কোনও সুরক্ষিত সংস্থান অ্যাক্সেস করতে ইচ্ছুক একটি OAuth ক্লায়েন্টকে অনুরোধটির কোনও কীড ম্যাসেজ ডাইজেস্ট ফাংশন দিয়ে কোনও ক্রিপ্টোগ্রাফিক কী ব্যবহার করে তা দখল প্রদর্শনের প্রয়োজন ”" এই আরএফসি এখনও খসড়াটিতে রয়েছে এবং এর সাথে এগিয়ে যাওয়ার কোনও পরিকল্পনা নেই - আমরা ' এটি আরও অনুসন্ধান করতে যাচ্ছি না।

অ্যাক্সেস টোকেন বলতে কী বোঝায়?

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

জেডাব্লুটিটি OAuth2 অ্যাক্সেস টোকেন হিসাবে

দ্রষ্টব্য, আমি এই বিভাগে সংক্ষেপে ওপেনআইডি কানেক্টে এগিয়ে যাই। আমরা পরের বিষয়টি কভার করব।

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

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

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

অ্যাজুর অ্যাক্টিভ ডিরেক্টরি (এএডি) ওপেনআইডি সংযোগ বাস্তবায়নে, আইডি_ টোকেনের ডিফল্ট কনফিগারেশনটি কোনও জেডাব্লুটিটি নেই যার কোনও ডিজিটাল স্বাক্ষর নেই (অ্যালগোরিদম কোনওটিতে সেট করা নেই) এবং অ্যাক্সেস_ টোকেন একটি জেডাব্লুটিটি যা ডিজিটালি স্বাক্ষরিত।

ছবিতে ওপেনআইডি কানেক্ট ছাড়াই জেডাব্লুটিটি OAuth2 অ্যাক্সেস টোকেন হিসাবে ব্যবহার করা সম্ভব এবং পুরোপুরি বৈধ। প্রকৃতপক্ষে, আমি যে ক্লায়েন্টের সাথে সম্প্রতি কাজ করছি তার সাথে আমরা ঠিক একই কাজ করছি। এএডি এইভাবে ব্যবহার করার সময়, আমার পর্যবেক্ষণটি হয়েছে যে OAuth2 অ্যাক্সেস টোকেন JWT মিরর মধ্যে সেট সেটটি ওপেনআইডি কানেক্ট (ওআইডিসি) আইডি_ টোকেন জেডব্লুটিতে পাওয়া যাবে rors

এটি আমাদের OAuth2 এর অনুসন্ধান শেষ করে। মন্তব্য এবং প্রশ্ন নীচে ছেড়ে দিন। পরবর্তী পোস্টে আমরা ওপেনআইডি সংযোগের দিকে নজর দেব।