আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন .info- তে যান।
রিসোর্স ওনার পাসওয়ার্ড (বা "পাসওয়ার্ড") গ্রান্ট টাইপটি বেশিরভাগ ক্ষেত্রে এমন পরিস্থিতিতে ব্যবহৃত হয় যেখানে অ্যাপটি অত্যন্ত বিশ্বস্ত। এই কনফিগারেশনে, ব্যবহারকারী তাদের রিসোর্স সার্ভার ক্রেডেনশিয়াল (ইউজারনেম/পাসওয়ার্ড) ক্লায়েন্ট অ্যাপে প্রদান করেন, যা একটি অ্যাক্সেস টোকেন অনুরোধের মাধ্যমে Apigee Edge-এ সেগুলো পাঠায়। একটি আইডেন্টিটি সার্ভার ক্রেডেনশিয়ালগুলো যাচাই করে, এবং যদি সেগুলো বৈধ হয়, Edge একটি অ্যাক্সেস টোকেন তৈরি করে অ্যাপটিকে ফেরত পাঠায়।
এই বিষয় সম্পর্কে
এই টপিকে OAuth 2.0 রিসোর্স ওনার পাসওয়ার্ড গ্রান্ট টাইপ ফ্লো-এর একটি সাধারণ বর্ণনা ও সার্বিক ধারণা দেওয়া হয়েছে এবং Apigee Edge-এ এই ফ্লো-টি কীভাবে বাস্তবায়ন করতে হয় তা আলোচনা করা হয়েছে।
আপনার কাজে লাগতে পারে এমন উদাহরণ
- অ্যাক্সেস টোকেনের জন্য অনুরোধ: পাসওয়ার্ড গ্রান্ট টাইপ : এখানে দেখানো হয়েছে কীভাবে একটি টোকেন অনুরোধ তৈরি করতে হয়, পাসওয়ার্ড গ্রান্ট টাইপের জন্য OAuthV2 পলিসি কনফিগার করতে হয়, এবং Edge-এ সেই পলিসির জন্য একটি এন্ডপয়েন্ট কীভাবে কনফিগার করতে হয়।
- oauth-validate-key-secret : গিটহাবে থাকা একটি নমুনা প্রক্সি যা আপনি 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
বিকল্পভাবে, `curl`-এর `-u` অপশনটি ব্যবহার করে আপনার জন্য base64-এনকোডেড `Basic Authentication` হেডার তৈরি করে নিয়ে কমান্ডটি নিম্নোক্তভাবে চালানো যেতে পারে।
$ 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 কলটির বিস্তারিত বিবরণের জন্য, যার মধ্যে প্রয়োজনীয় বেসিক অথ হেডারের বিবরণও অন্তর্ভুক্ত, " অ্যাক্সেস টোকেন এবং অনুমোদন কোডের জন্য অনুরোধ " অংশের পাসওয়ার্ড গ্রান্ট বিভাগটি দেখুন।
৩. এজ ক্লায়েন্ট অ্যাপটিকে যাচাই করে।
কোনো আইডেন্টিটি প্রোভাইডারের কাছে ব্যবহারকারীর ইউজারনেম এবং পাসওয়ার্ড পাঠানোর আগে, Edge-কে জানতে হয় যে অনুরোধকারী ক্লায়েন্ট অ্যাপটি একটি বৈধ ও বিশ্বস্ত অ্যাপ। এটি করার একটি উপায় হলো এপিআই কলে এপিআই কী অথেন্টিকেশন ব্যবহার করা। কিছু ক্ষেত্রে, আপনি ক্লায়েন্ট কী এবং সিক্রেট উভয়ই যাচাই করতে চাইতে পারেন। GitHub-এর api-platform-samples রিপোজিটরিতে একটি নমুনা প্রক্সি রয়েছে যা এই বিকল্প কৌশলটি প্রদর্শন করে।
৪. Edge লগইন ক্রেডেনশিয়ালগুলো প্রসেস করে।
ক্লায়েন্ট অ্যাপটি যাচাই করার পরে, আপনি ব্যবহারকারীর ক্রেডেনশিয়াল পাঠিয়ে আইডেন্টিটি সার্ভিসকে কল করার জন্য একটি সার্ভিস কলআউট বা জাভাস্ক্রিপ্ট পলিসি ব্যবহার করতে পারেন। উদাহরণস্বরূপ, এটি একটি LDAP সার্ভিস বা ক্রেডেনশিয়াল যাচাই করার জন্য আপনার পছন্দের যেকোনো সার্ভিস হতে পারে। এই পলিসিগুলো সম্পর্কে বিস্তারিত জানতে, এক্সট্র্যাক্ট ভ্যারিয়েবলস পলিসি এবং জাভাস্ক্রিপ্ট পলিসি দেখুন।
যদি আইডেন্টিটি সার্ভিস ক্রেডেনশিয়ালগুলো যাচাই করে একটি 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" }
৬. ক্লায়েন্ট সুরক্ষিত এপিআই-কে কল করে।
এখন, একটি বৈধ অ্যাক্সেস কোড দিয়ে ক্লায়েন্ট সুরক্ষিত এপিআই-তে কল করতে পারে। এই পরিস্থিতিতে, অনুরোধগুলি Apigee Edge (প্রক্সি)-এর কাছে পাঠানো হয়, এবং টার্গেট রিসোর্স সার্ভারে এপিআই কলটি পাঠানোর আগে অ্যাক্সেস টোকেনটি যাচাই করার দায়িত্ব Edge-এর থাকে। অ্যাক্সেস টোকেনগুলি একটি Authorization হেডারে পাঠানো হয়। উদাহরণস্বরূপ:
$ curl -H "Authorization: Bearer I6daIgMSiUgYX1K2qgQWPi37ztS6 " http://{org_name}-test.apigee.net/weather/forecastrss?w=12797282