পাসওয়ার্ড অনুদানের ধরন বাস্তবায়ন করা

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

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

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

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

উদাহরণগুলো আপনার কাজে লাগতে পারে

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

ভিডিও

ভিডিও: পাসওয়ার্ড অনুদানের ধরন বাস্তবায়নের জন্য এই ভিডিওটি দেখুন।

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

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

প্রবাহ চিত্র

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

টিপ: এই ডায়াগ্রামের একটি বড় সংস্করণ দেখতে, এটিকে ডান-ক্লিক করুন এবং এটি একটি নতুন ট্যাবে খুলুন, অথবা এটি সংরক্ষণ করুন এবং একটি চিত্র দর্শকে এটি খুলুন৷

পাসওয়ার্ড অনুদান প্রকার প্রবাহের ধাপ

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

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

1. ব্যবহারকারী প্রবাহ শুরু করে এবং শংসাপত্র প্রবেশ করে

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

2. অ্যাপ Apigee Edge থেকে একটি অ্যাক্সেস টোকেন অনুরোধ করে

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

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

$ 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-এনকোডেড বেসিক প্রমাণীকরণ শিরোনাম তৈরি করতে কার্ল করার জন্য -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 মৌলিক প্রমাণীকরণ শিরোনামে এনকোড করা হয়৷ প্রয়োজনীয় মৌলিক প্রমাণীকরণ শিরোনাম সম্পর্কে বিশদ সহ এই API কলের বিশদ বিবরণের জন্য, " অ্যাক্সেস টোকেন এবং অনুমোদন কোডের অনুরোধ করা " এর পাসওয়ার্ড অনুদান বিভাগটি দেখুন।

3. এজ ক্লায়েন্ট অ্যাপটিকে যাচাই করে

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

4. এজ লগইন শংসাপত্রগুলি প্রক্রিয়া করে৷

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

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

5. 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 বিন্যাসে আছে. এখানে একটি উদাহরণ. নোট করুন যে অ্যাক্সেস_টোকেন উপাদানগুলির মধ্যে একটি:

{
    "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"
}

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

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

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