পাসওয়ার্ড গ্রান্টের ধরন প্রয়োগ করা

আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন দেখুন।
তথ্য

রিসোর্স মালিকের পাসওয়ার্ড (বা "পাসওয়ার্ড") গ্র্যান্টের ধরন বেশিরভাগ ক্ষেত্রে সেইসব জায়গায় ব্যবহার করা হয় যেখানে অ্যাপটি খুবই বিশ্বাসযোগ্য। এই কনফিগারেশনে, ব্যবহারকারী ক্লায়েন্ট অ্যাপকে তার রিসোর্স সার্ভারের ক্রেডেনশিয়াল (ইউজারনেম/পাসওয়ার্ড) প্রদান করেন, যা Apigee Edge-এ অ্যাক্সেস টোকেন অনুরোধে সেগুলি পাঠায়। পরিচয় সার্ভার ক্রেডেনশিয়াল যাচাই করে এবং সেগুলি সঠিক হলে, Edge একটি অ্যাক্সেস টোকেন তৈরি করে অ্যাপে ফেরত পাঠায়।

এই বিষয় সম্পর্কে

এই বিষয়ে OAuth 2.0 রিসোর্স মালিকের পাসওয়ার্ড গ্র্যান্ট টাইপ ফ্লোর সাধারণ বিবরণ ও ওভারভিউ দেওয়া হয়েছে এবং Apigee Edge-এ এই ফ্লো কীভাবে প্রয়োগ করতে হয় তা আলোচনা করা হয়েছে।

আপনার কাজে লাগতে পারে এমন উদাহরণ

  • অ্যাক্সেস টোকেনের অনুরোধ করা: পাসওয়ার্ড গ্র্যান্টের ধরন: এটি আপনাকে দেখায় যে কীভাবে টোকেনের অনুরোধ করতে হয়, পাসওয়ার্ড গ্র্যান্টের ধরনের জন্য OAuthV2 নীতি কনফিগার করতে হয় এবং Edge-এ নীতির জন্য কীভাবে এন্ডপয়েন্ট কনফিগার করতে হয়।
  • oauth-validate-key-secret: GitHub-এ একটি নমুনা প্রক্সি যা আপনি Edge-এ ডেপ্লয় করে দেখতে পারেন। এটি পাসওয়ার্ড গ্রান্ট টাইপ ফিচার করা একটি এন্ড-টু-এন্ড উদাহরণ। এটি একটি পেশাদার পদ্ধতি দেখায়, যা হল পরিচয় প্রদানকারীর কাছে ব্যবহারকারীর ক্রেডেনশিয়াল পাঠানোর আগে ক্লায়েন্ট অ্যাপের ক্রেডেনশিয়াল (কী/সিক্রেট) যাচাই করা।

ভিডিও

ভিডিও: পাসওয়ার্ড গ্র্যান্ট টাইপ প্রয়োগ করা সম্পর্কে এই ভিডিওটি দেখুন।

যেসব ক্ষেত্রে ব্যবহার করা যাবে

এই গ্র্যান্টের ধরনটি অত্যন্ত বিশ্বস্ত বা বিশেষ সুবিধা প্রাপ্ত অ্যাপের জন্য তৈরি করা হয়েছে কারণ ব্যবহারকারীকে অ্যাপে তার রিসোর্স সার্ভারের ক্রেডেনশিয়াল দিতে হয়। সাধারণত, অ্যাপটি একটি লগ-ইন স্ক্রিন প্রদান করে যেখানে ব্যবহারকারী তার ক্রেডেনশিয়াল লেখেন।

ফ্লো ডায়াগ্রাম

নিচের ফ্লো ডায়াগ্রামটি Apigee Edge-এর সাথে রিসোর্স মালিকের পাসওয়ার্ড গ্রান্টের ধরনকে দেখায় যা অনুমোদনকারী সার্ভার হিসেবে কাজ করে।

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

পাসওয়ার্ড গ্রান্টের ধরন সংক্রান্ত ফ্লোয়ের ধাপ

যেখানে Apigee Edge অনুমোদন সার্ভার হিসেবে কাজ করে, সেখানে পাসওয়ার্ড গ্রান্টের ধরন প্রয়োগ করার জন্য প্রয়োজনীয় ধাপগুলির সারসংক্ষেপ এখানে দেওয়া হল।

পূর্বশর্ত: ক্লায়েন্ট আইডি ও ক্লায়েন্ট সিক্রেট কী পেতে ক্লায়েন্ট অ্যাপকে Apigee Edge-এ রেজিস্টার করতে হবে। বিবরণের জন্য ক্লায়েন্ট অ্যাপ রেজিস্টার করা দেখুন।

১. ব্যবহারকারী ফ্লো শুরু করেন এবং ক্রেডেনশিয়াল লেখেন

অ্যাপকে ব্যবহারকারীর সুরক্ষিত রিসোর্স অ্যাক্সেস করতে হলে (যেমন, ব্যবহারকারী অ্যাপে কোনও বোতামে ক্লিক করলে), ব্যবহারকারীকে লগ-ইন ফর্মে রিডাইরেক্ট করা হয়।

২. অ্যাপ Apigee Edge-এর থেকে অ্যাক্সেস টোকেন পাওয়ার অনুরোধ করে

অ্যাপটি Apigee Edge-এ GenerateAccessToken এন্ডপয়েন্টে ব্যবহারকারীর ক্রেডেনশিয়াল সহ অ্যাক্সেস টোকেনের অনুরোধ পাঠায়।

এখানে একটি নমুনা POST অনুরোধ দেওয়া হল, যার মধ্যে এই ধরনের গ্র্যান্টের জন্য প্রয়োজনীয় প্যারামিটার অন্তর্ভুক্ত রয়েছে:

$ curl -i \
  -X POST \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'Authorization: Basic c3FIOG9vSGV4VHo4QzAySVg5T1JvNnJoZ3ExaVNyQWw6WjRsanRKZG5lQk9qUE1BVQ' \
  -d 'grant_type=password&username=the-user-name&password=the-users-password' \
  https://docs-test.apigee.net/oauth/token

বিকল্প হিসেবে, আপনার জন্য base64-এনকোড করা বেসিক যাচাইকরণ হেডার তৈরি করতে, curl-এ -u বিকল্প ব্যবহার করে, সেই কমান্ডটি নিম্নলিখিতভাবেও পারফর্ম করা যেতে পারে ।

$ curl -i \
  -X POST \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -u sqH8ooHexTz8C02IX9ORo6rhgq1iSrAl:Z4ljtJdneBOjPMAU \
  -d 'grant_type=password&username=the-user-name&password=the-users-password' \
  https://docs-test.apigee.net/oauth/token

(এইসব কমান্ডের প্রতিটি একটি লাইনে থাকতে হবে।)

ব্যবহারকারীর ক্রেডেনশিয়াল ফর্ম প্যারামিটারে থাকে, অন্যদিকে ক্লায়েন্ট ক্রেডেনশিয়াল HTTP বেসিক যাচাইকরণ হেডারে এনকোড করা থাকে। প্রয়োজনীয় Basic Auth হেডার সহ এই API কলের বিস্তারিত বিবরণ জানতে, "অ্যাক্সেস টোকেন ও অনুমোদন কোড অনুরোধ করা" নিবন্ধের পাসওয়ার্ড গ্র্যান্ট বিভাগ দেখুন।

৩. Edge ক্লায়েন্ট অ্যাপ যাচাই করে

পরিচয় প্রদানকারীর কাছে ব্যবহারকারীর ইউজারনেম ও পাসওয়ার্ড পাঠানোর আগে, Edge-কে জানতে হবে যে অনুরোধকারী ক্লায়েন্ট অ্যাপটি একটি বৈধ, বিশ্বস্ত অ্যাপ। এটি করার একটি উপায় হল API কলে API কী যাচাইকরণ ব্যবহার করা। কিছু ক্ষেত্রে, আপনি হয়ত ক্লায়েন্ট কী ও সিক্রেট, দুটিই যাচাই করতে চাইবেন। GitHub-এ api-platform-samples রিপোজিটরিতে এই বিকল্প টেকনিকের একটি নমুনা প্রক্সি আছে।

৪. Edge লগ-ইন ক্রেডেনশিয়াল প্রসেস করে

ক্লায়েন্ট অ্যাপ যাচাই করার পরে, আপনি পরিচয় পরিষেবা কল করতে পরিষেবা কলআউট বা JavaScript নীতি ব্যবহার করতে পারেন, ব্যবহারকারীর ক্রেডেনশিয়াল পাঠানো হয়। যেমন, এটি LDAP পরিষেবা বা এমন কোনও পরিষেবা হতে পারে যা আপনি ক্রেডেনশিয়াল যাচাই করার জন্য ব্যবহার করতে চান। এইসব নীতি সম্পর্কে আরও জানতে, এক্সট্র্যাক্ট ভেরিয়েবল নীতি ও JavaScript নীতি দেখুন।

পরিচয় পরিষেবা যদি ক্রেডেনশিয়াল যাচাই করে এবং 200 রেসপন্স রিটার্ন করে, তাহলে Edge অনুরোধ প্রসেস করা চালিয়ে যাবে; অন্যথায়, Edge প্রসেস করা বন্ধ করে দেয় এবং ক্লায়েন্ট অ্যাপকে সমস্যার মেসেজ রিটার্ন করে।

৫. OAuthV2 নীতি প্রয়োগ করে

ক্রেডেনশিয়াল সঠিক হলে, পরবর্তী প্রসেসিং ধাপ হল পাসওয়ার্ড গ্রান্ট ধরনের জন্য কনফিগার করা OAuthV2 নীতি কার্যকর করা। এখানে একটি উদাহরণ দেওয়া হল। <UserName> এবং <PassWord> এলিমেন্ট প্রয়োজন এবং ExtractVariables নীতির সাথে সেভ করা ফ্লো ভেরিয়েবল থেকে আপনি সেগুলি পেতে পারেন। এই নীতি সম্পর্কে বিস্তারিত রেফারেন্স তথ্য পেতে, OAuthV2 নীতি দেখুন।

<OAuthV2 name="GetAccessToken">
  <Operation>GenerateAccessToken</Operation>
  <ExpiresIn>360000000</ExpiresIn> 
  <SupportedGrantTypes> 
     <GrantType>password</GrantType> 
  </SupportedGrantTypes> 
  <GrantType>request.queryparam.grant_type</GrantType> 
  <UserName>login</UserName>
  <PassWord>password</PassWord>
  <GenerateResponse/> 
</OAuthV2>

এই নীতি সফল হলে, ক্লায়েন্টকে একটি অ্যাক্সেস টোকেন সহ উত্তর জেনারেট করে পাঠানো হয়। JSON ফর্ম্যাটে উত্তর দেওয়া হয়েছে। এখানে একটি উদাহরণ দেওয়া হল। মনে রাখবেন, access_token হল একটি এলিমেন্ট:

{
    "issued_at": "1420258685042",
    "scope": "READ",
    "application_name": "ce1e94a2-9c3e-42fa-a2c6-1ee01815476b",
    "refresh_token_issued_at": "1420258685042",
    "status": "approved",
    "refresh_token_status": "approved",
    "api_product_list": "[PremiumWeatherAPI]",
    "expires_in": "1799",
    "developer.email": "tesla@weathersample.com",
    "organization_id": "0",
    "token_type": "BearerToken",
    "refresh_token": "IFl7jlijYuexu6XVSSjLMJq8SVXGOAAq",
    "client_id": "5jUAdGv9pBouF0wOH5keAVI35GBtx3dT",
    "access_token": "I6daIgMSiUgYX1K2qgQWPi37ztS6",
    "organization_name": "docs",
    "refresh_token_expires_in": "0",
    "refresh_count": "0"
}

৬. ক্লায়েন্ট সুরক্ষিত API কল করে

এখন, সঠিক অ্যাক্সেস কোড ব্যবহার করে ক্লায়েন্ট সুরক্ষিত API-তে কল করতে পারবে। এই সিনারিওতে, Apigee Edge (প্রক্সি)-কে অনুরোধ করা হয় এবং Edge-এর দায়িত্ব হল টার্গেট রিসোর্স সার্ভারে API কল পাঠানোর আগে অ্যাক্সেস টোকেন যাচাই করা। অনুমোদন হেডার -এ অ্যাক্সেস টোকেন পাস করা হয়। যেমন:

$ curl -H "Authorization: Bearer I6daIgMSiUgYX1K2qgQWPi37ztS6
" http://{org_name}-test.apigee.net/weather/forecastrss?w=12797282