OAuth-এর মাধ্যমে API সুরক্ষিত করা

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

আপনি কী শিখবেন

  • একটি স্যাম্পেল API প্রক্সি ডাউনলোড ও ডেপ্লয় করুন।
  • OAuth-সুরক্ষিত API প্রক্সি তৈরি করুন।
  • প্রোডাক্ট, ডেভেলপার ও অ্যাপ তৈরি করুন।
  • OAuth অ্যাক্সেস টোকেনের জন্য ক্রেডেনশিয়াল এক্সচেঞ্জ করুন।
  • অ্যাক্সেস টোকেন সহ API কল করুন।

এই টিউটোরিয়াল থেকে আপনি জানতে পারবেন যে কীভাবে OAuth 2.0-এর মাধ্যমে API সুরক্ষিত করতে হয়।

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

OAuth-এর মাধ্যমে, অ্যাক্সেস টোকেনের জন্য নিরাপত্তা ক্রেডেনশিয়াল (যেমন, ইউজারনেম/পাসওয়ার্ড বা কী/সিক্রেট) শেয়ার করা হয়। যেমন:

joe:joes_password (username:password) অথবা
Nf2moHOASMJeUmXVdDhlMbPaXm2U7eMc:unUOXYpPe74ZfLEb (key:secret)

এই ধরনের কিছু হয়ে যায়:

b0uiYwjRZLEo4lEu7ky2GGxHkanN

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

OAuth 2.0 স্পেসিফিকেশন অ্যাপের জন্য অ্যাক্সেস টোকেন ডিস্ট্রিবিউট করার জন্য বিভিন্ন মেকানিজমকে সংজ্ঞায়িত করে, যাকে "গ্র্যান্টের ধরন" বলা হয়। OAuth 2.0-এর মাধ্যমে নির্ধারিত সবচেয়ে প্রাথমিক গ্র্যান্টের ধরনকে "ক্লায়েন্ট ক্রেডেনশিয়াল" বলা হয়। এই গ্র্যান্টের ধরনে, ক্লায়েন্ট ক্রেডেনশিয়ালের বিনিময়ে OAuth অ্যাক্সেস টোকেন তৈরি করা হয়, যা হল কনজিউমার কী/কনজিউমার সিক্রেট পেয়ার, যেমন উপরের উদাহরণে দেখানো হয়েছে।

Edge-এ ক্লায়েন্ট ক্রেডেনশিয়াল গ্রান্টের ধরন API প্রক্সিতে নীতি ব্যবহার করে প্রয়োগ করা হয়। A সাধারণ OAuth ফ্লোতে দুটি ধাপ থাকে:

  • ক্লায়েন্ট ক্রেডেনশিয়াল থেকে OAuth অ্যাক্সেস টোকেন জেনারেট করতে API প্রক্সি ১ কল করুন। API প্রক্সি সার্ভারে OAuth v2.0 নীতি এটি ম্যানেজ করে।
  • API কলে OAuth অ্যাক্সেস টোকেন পাঠানোর জন্য API প্রক্সি ২ কল করুন। API প্রক্সি OAuth v2.0 নীতি ব্যবহার করে অ্যাক্সেস টোকেন যাচাই করে।

আপনার কী প্রয়োজন হবে

  • Apigee Edge অ্যাকাউন্ট। আপনার এখনও কোনও অ্যাকাউন্ট না থাকলে, Apigee Edge অ্যাকাউন্ট তৈরি করা লিঙ্কে গিয়ে নির্দেশাবলী অনুসরণ করে সাইন-আপ করতে পারেন।
  • কমান্ড লাইন থেকে API কল করতে আপনার মেশিনে cURL ইনস্টল করা থাকতে হবে।

টোকেন-জেনারেটিং API প্রক্সি ডাউনলোড ও ডেপ্লয় করা

এই ধাপে, আপনি এমন API প্রক্সি তৈরি করবেন যা API কলে পাঠানো কনজিউমার কী ও কনজিউমার সিক্রেট থেকে OAuth অ্যাক্সেস টোকেন তৈরি করে। Apigee একটি নমুনা API প্রক্সি প্রদান করে যা এটি করে। আপনি এখন প্রক্সি ডাউনলোড ও ডেপ্লয় করবেন, তারপর টিউটোরিয়ালে এটি ব্যবহার করবেন। (আপনি সহজেই এই API প্রক্সি নিজে তৈরি করতে পারেন। এই ডাউনলোড ও ডেপ্লয় করার ধাপটি সুবিধার জন্য এবং আগে থেকেই তৈরি করা প্রক্সি শেয়ার করা কতটা সহজ তা দেখানোর জন্য।)

  1. আপনার ফাইল সিস্টেমে যেকোনও ডিরেক্টরিতে 'oauth' স্যাম্পেল API প্রক্সি ZIP ফাইল ডাউনলোড করুন।
  2. https://apigee.com/edge লিঙ্কে গিয়ে সাইন-ইন করুন।
  3. বাঁদিকের নেভিগেশন বারে ডেভেলপ করুন > API প্রক্সি বিকল্প বেছে নিন।
  4. + প্রক্সি বিকল্পে ক্লিক করুন।
    প্রক্সি বোতাম তৈরি করা
  5. প্রক্সি তৈরি করুন উইজার্ডে, প্রক্সি বান্ডেল আপলোড করুন বিকল্পে ক্লিক করুন।
  6. আপনার ডাউনলোড করা oauth.zip ফাইলটি বেছে নিন এবং পরবর্তী বিকল্পে ক্লিক করুন।
  7. তৈরি করুন বিকল্পে ক্লিক করুন।
  8. বিল্ড সম্পূর্ণ হওয়ার পরে, API প্রক্সি এডিটরে নতুন প্রক্সি দেখতে প্রক্সি এডিট করুন বিকল্পে ক্লিক করুন।
  9. API প্রক্সি এডিটরের 'এক নজরে' পৃষ্ঠায়, ডেপ্লয়মেন্ট ড্রপ-ডাউনে ক্লিক করুন এবং টেস্ট বিকল্প বেছে নিন। এটি আপনার সংস্থার টেস্ট এনভায়রনমেন্ট।

    কনফার্মেশন প্রম্পটে, ডেপ্লয় করুন বিকল্পে ক্লিক করুন।
    আপনি আবার ডিপ্লয়মেন্ট ড্রপ-ডাউনে ক্লিক করলে, সবুজ আইকন থেকে বোঝা যায় যে প্রক্সি টেস্ট এনভায়রনমেন্টে ডিপ্লয় করা হয়েছে।

আরও বাকি আছে! আপনি Edge সংস্থায় অ্যাক্সেস টোকেন জেনারেট করা API প্রক্সি সফলভাবে ডাউনলোড ও ডেপ্লয় করেছেন।

OAuth ফ্লো ও নীতি দেখুন

API প্রক্সিতে কী কী থাকে তা আরও ভালোভাবে দেখা যাক।

  1. API প্রক্সি এডিটরে, ডেভেলপ করুন ট্যাবে ক্লিক করুন। বাঁদিকের Navigator প্যানেলে, আপনি দুটি নীতি দেখতে পাবেন। এছাড়াও, আপনি Proxy Endpoints বিভাগে দুটি POST ফ্লো দেখতে পাবেন।
  2. Proxy Endpoints-এর অধীনে AccessTokenClientCredential বিকল্পে ক্লিক করুন।

    XML কোড ভিউতে, আপনি Flow দেখতে পাবেন, যাকে AccessTokenClientCredential বলা হয়:

    <Flow name="AccessTokenClientCredential">
        <Description/>
        <Request>
            <Step>
                <Name>GenerateAccessTokenClient</Name>
            </Step>
        </Request>
        <Response/>
        <Condition>(proxy.pathsuffix MatchesPath "/accesstoken") and (request.verb = "POST")</Condition>
    </Flow>

    ফ্লো হল API প্রক্সির একটি প্রসেসিং ধাপ। এই ক্ষেত্রে, কোনও নির্দিষ্ট শর্ত পূরণ হলে ফ্লো ট্রিগার হয় (এটি শর্তসাপেক্ষ ফ্লো নামে পরিচিত)। <Condition> এলিমেন্টে সংজ্ঞায়িত কন্ডিশন থেকে জানা যায় যে API প্রক্সি কল যদি /accesstoken রিসোর্সে করা হয় এবং অনুরোধের ভার্ব যদি POST হয়, তাহলে GenerateAccessTokenClient নীতি প্রয়োগ করো, যা অ্যাক্সেস টোকেন তৈরি করে।

  3. এবার, শর্তসাপেক্ষ ফ্লো যে নীতি ট্রিগার করবে সেটি দেখে নেওয়া যাক। ফ্লো ডায়াগ্রামে GenerateAccessTokenClient নীতি আইকনে ক্লিক করুন।

    নিচে উল্লেখ করা XML কনফিগারেশন কোড ভিউতে লোড করা হয়:

    <OAuthV2 name="GenerateAccessTokenClient">
        <!-- This policy generates an OAuth 2.0 access token using the client_credentials grant type -->
        <Operation>GenerateAccessToken</Operation>
        <!-- This is in millseconds, so expire in an hour -->
        <ExpiresIn>3600000</ExpiresIn>
        <SupportedGrantTypes>
            <!-- This part is very important: most real OAuth 2.0 apps will want to use other
             grant types. In this case it is important to NOT include the "client_credentials"
             type because it allows a client to get access to a token with no user authentication -->
            <GrantType>client_credentials</GrantType>
        </SupportedGrantTypes>
        <GrantType>request.queryparam.grant_type</GrantType>
        <GenerateResponse/>
    </OAuthV2>

    কনফিগারেশনের মধ্যে নিম্নলিখিত বিষয়গুলি অন্তর্ভুক্ত:

    • <Operation>, যা আগে থেকে সংজ্ঞায়িত করা একাধিক মানের মধ্যে একটি হতে পারে, নীতিটি কী করবে তা নির্ধারণ করে। এই ক্ষেত্রে, এটি একটি অ্যাক্সেস টোকেন তৈরি করতে চলেছে।
    • টোকেন তৈরি হওয়ার ১ ঘণ্টা (৩৬০০০০০ মিলিসেকেন্ড) পরে মেয়াদ শেষ হয়ে যাবে।
    • <SupportedGrantTypes>-এ, OAuth <GrantType> ব্যবহার করা হবে বলে আশা করা হচ্ছে client_credentials (OAuth টোকেনের জন্য গ্রাহকের কী ও সিক্রেট এক্সচেঞ্জ করা)।
    • দ্বিতীয় <GrantType> এলিমেন্টটি নীতিকে বলে যে OAuth 2.0 স্পেসিফিকেশন অনুযায়ী গ্র্যান্ট টাইপ প্যারামিটারের জন্য API কলে কোথায় খুঁজতে হবে। (আপনি এটি API কলে পরে দেখতে পাবেন)। এছাড়াও, HTTP হেডার (request.header.grant_type) বা ফর্ম প্যারামিটার (request.formparam.grant_type) হিসেবে গ্র্যান্টের ধরন পাঠানো যেতে পারে।

এই মুহূর্তে API প্রক্সি নিয়ে আপনাকে আর কিছু করতে হবে না। পরবর্তী ধাপে, OAuth অ্যাক্সেস টোকেন তৈরি করতে আপনি এই API প্রক্সি ব্যবহার করবেন। তবে তার আগে, আপনাকে আরও কয়েকটি কাজ করতে হবে:

  • OAuth-এর মাধ্যমে আপনি যে API প্রক্সি সুরক্ষিত করতে চান সেটি তৈরি করুন।
  • আরও কিছু আর্টিফ্যাক্ট তৈরি করুন যার ফলে কনজিউমার কী ও কনজিউমার সিক্রেট তৈরি হবে অ্যাক্সেস টোকেনের জন্য আপনাকে এগুলি এক্সচেঞ্জ করতে হবে।

OAuth-সুরক্ষিত API প্রক্সি তৈরি করা

'mocktarget' সম্পর্কে

mocktarget পরিষেবা Apigee-তে হোস্ট করা হয় এবং সাধারণ ডেটা রিটার্ন করে। আসলে, আপনি ওয়েব ব্রাউজারে এটি অ্যাক্সেস করতে পারবেন। নিচে দেওয়া বিকল্পে ক্লিক করে দেখুন:

http://mocktarget.apigee.net/ip

আপনি যখন এই API প্রক্সি কল করবেন তখন টার্গেট আপনাকে কী দেখতে হবে তা রিটার্ন করে।

এছাড়াও, আপনি http://mocktarget.apigee.net/help লিঙ্কে গিয়ে অন্যান্য API রিসোর্স দেখতে পারেন যেগুলি mocktarget-এ উপলভ্য।

এখন আপনি সেই API প্রক্সি তৈরি করতে চলেছেন যেটি সুরক্ষিত রাখতে চান। এটি হল সেই API কল যা আপনার প্রয়োজনীয় কিছু রিটার্ন করে। এই ক্ষেত্রে, API প্রক্সি আপনার IP অ্যাড্রেস রিটার্ন করার জন্য Apigee-এর মকটার্গেট পরিষেবাকে কল করবে। তবে, আপনার API কলের সাথে একটি বৈধ OAuth অ্যাক্সেস টোকেন পাস করলেই আপনি এটি দেখতে পাবেন।

আপনি এখানে যে API প্রক্সি তৈরি করবেন তাতে এমন একটি নীতি অন্তর্ভুক্ত থাকবে যা অনুরোধে OAuth টোকেন আছে কিনা তা চেক করে।

  1. বাঁদিকের নেভিগেশন বারে ডেভেলপ করুন > API প্রক্সি বিকল্প বেছে নিন।
  2. + প্রক্সি বিকল্পে ক্লিক করুন।
    প্রক্সি বোতাম তৈরি করা
  3. প্রক্সি তৈরি করুন উইজার্ডে, রিভার্স প্রক্সি (সবচেয়ে সাধারণ) বিকল্প বেছে নিন, এবং পরবর্তী বিকল্পে ক্লিক করুন।
  4. নিম্নলিখিত বিষয়গুলি দিয়ে প্রক্সি কনফিগার করুন:
    এই ফিল্ডে এটি করুন
    প্রক্সির নাম এন্টার করুন: helloworld_oauth2
    প্রোজেক্ট বেস পাথ

    পরিবর্তন করে: /hellooauth2

    প্রোজেক্ট বেস পাথ হল URL-এর অংশ যা API প্রক্সি সার্ভারে অনুরোধ করার জন্য ব্যবহার করা হয়।

    আগে থেকে থাকা API

    এন্টার করুন: https://mocktarget.apigee.net/ip

    এটি সেই টার্গেট URL নির্ধারণ করে যা API প্রক্সি করার অনুরোধে Apigee Edge আহ্বান করে।

    বিবরণ এন্টার করুন: hello world protected by OAuth
  5. পরবর্তী বিকল্পে ক্লিক করুন।
  6. সাধারণ নীতি পৃষ্ঠায়:
    এই ফিল্ডে এটি করুন
    নিরাপত্তা: অনুমোদন বেছে নিন: OAuth 2.0
  7. পরবর্তী বিকল্পে ক্লিক করুন।
  8. ভার্চুয়াল হোস্ট পৃষ্ঠায়, পরবর্তী বিকল্পে ক্লিক করুন।
  9. বিল্ড পৃষ্ঠায়, টেস্ট এনভায়রনমেন্ট বেছে নেওয়া হয়েছে কিনা তা নিশ্চিত করুন এবং তৈরি ও ডেপ্লয় করুন বিকল্পে ক্লিক করুন।
  10. সারসংক্ষেপ পৃষ্ঠায়, আপনি একটি স্বীকৃতি দেখতে পাবেন যে আপনার নতুন API প্রক্সি সফলভাবে তৈরি করা হয়েছে এবং API প্রক্সিটি আপনার টেস্ট এনভায়রনমেন্টে ডেপ্লয় করা হয়েছে।
  11. API প্রক্সির ওভারভিউ পৃষ্ঠা দেখতে প্রক্সি এডিট করুন বিকল্পে ক্লিক করুন।
    মনে রাখবেন, এইবার API প্রক্সি অটোমেটিক ডেপ্লয় করা হয়েছে। "টেস্ট" এনভায়রনমেন্টের পাশে সবুজ রঙের ডিপ্লয়মেন্ট ডট আছে কিনা তা নিশ্চিত করতে, ডিপ্লয়মেন্ট ড্রপ-ডাউনে ক্লিক করুন।

নীতি দেখুন

আপনি কী তৈরি করেছেন তা আরও ভালভাবে দেখে নেওয়া যাক।

  1. API প্রক্সি এডিটরে, ডেভেলপ করুন ট্যাবে ক্লিক করুন। আপনি দেখতে পাবেন যে API প্রক্সির অনুরোধ ফ্লোতে দুটি নীতি যোগ করা হয়েছে:
    • OAuth v2.0 অ্যাক্সেস টোকেন যাচাই করুন – API কল চেক করে দেখে যে বৈধ OAuth টোকেন আছে কিনা।
    • হেডার অনুমোদন সরানো – একটি AssignMessage নীতি যা অ্যাক্সেস টোকেন চেক করার পরে সেটি সরিয়ে দেয়, যাতে সেটি টার্গেট পরিষেবায় পাস না করা যায়। (টার্গেট পরিষেবার OAuth অ্যাক্সেস টোকেন প্রয়োজন হলে, আপনি এই নীতি ব্যবহার করতেন না)।
  2. ফ্লো ভিউতে OAuth v2.0 অ্যাক্সেস টোকেন যাচাই করুন আইকনে ক্লিক করুন এবং কোড প্যানেলে এর নিচে XML দেখুন।

    <OAuthV2 async="false" continueOnError="false" enabled="true" name="verify-oauth-v2-access-token">
        <DisplayName>Verify OAuth v2.0 Access Token</DisplayName>
        <Operation>VerifyAccessToken</Operation>
    </OAuthV2>

    লক্ষ্য করুন যে <Operation> হল VerifyAccessToken. অপারেশন নীতিটি কী করবে তা নির্ধারণ করে। এই ক্ষেত্রে, এটি অনুরোধে একটি বৈধ OAuth টোকেন চেক করবে।

API প্রোডাক্ট যোগ করা

Apigee UI ব্যবহার করে API প্রোডাক্ট যোগ করতে:

  1. প্রকাশ করুন > API প্রোডাক্ট বিকল্প বেছে নিন।
  2. +API প্রোডাক্ট বিকল্পে ক্লিক করুন।
  3. আপনার API প্রোডাক্টের প্রোডাক্টের বিবরণ লিখুন।
    ফিল্ড বিবরণ
    নাম API প্রোডাক্টের ইন্টার্নাল নাম। নামে বিশেষ অক্ষর উল্লেখ করবেন না।
    মনে রাখবেন: API প্রোডাক্ট তৈরি হয়ে গেলে আপনি নাম এডিট করতে পারবেন না। যেমন, helloworld_oauth2-Product
    যে নামটি দেখানো হবে API প্রোডাক্টের ডিসপ্লে নাম। UI-তে ডিসপ্লে নাম ব্যবহার করা হয় এবং আপনি যেকোনও সময় এটি এডিট করতে পারবেন। উল্লেখ করা না থাকলে, 'নাম' ভ্যালু ব্যবহার করা হবে। এই ফিল্ডটি নামের ভ্যালু ব্যবহার করে অটো-ফিল করা হয়; আপনি এর কন্টেন্ট এডিট করতে বা মুছে দিতে পারবেন। ডিসপ্লে নামে বিশেষ অক্ষর থাকতে পারে। যেমন, helloworld_oauth2-Product
    বিবরণ API প্রোডাক্টের বিবরণ।
    পরিবেশ API প্রোডাক্ট যে এনভায়রনমেন্টে অ্যাক্সেস করার অনুমতি দেবে। আপনি যে এনভায়রনমেন্টে API প্রক্সি ডেপ্লয় করেছেন সেটি বেছে নিন। যেমন, test
    অ্যাক্সেস সর্বজনীন বিকল্প বেছে নিন।
    অ্যাক্সেসের অনুরোধ অটোমেটিক অনুমোদন করা যেকোনও অ্যাপ থেকে এই API প্রোডাক্টের জন্য কী সংক্রান্ত অনুরোধ অটোমেটিক অনুমোদন করার সুবিধা চালু করুন।
    কোটা এই টিউটোরিয়ালের জন্য উপেক্ষা করুন।
    অনুমোদিত OAuth স্কোপ এই টিউটোরিয়ালের জন্য উপেক্ষা করুন।
  4. API প্রক্সি ফিল্ডে, আপনি এইমাত্র যে API প্রক্সি তৈরি করেছেন সেটি বেছে নিন।
  5. পাথ ফিল্ডে "/" লিখুন। অন্য ফিল্ডগুলি উপেক্ষা করুন।
  6. সেভ করুন বিকল্পে ক্লিক করুন।

আপনার সংস্থায় ডেভেলপার ও অ্যাপ যোগ করা

এরপরে, আপনার API ব্যবহার করার জন্য সাইন-আপ করা ডেভেলপারের ওয়ার্কফ্লো সিমুলেট করতে চলেছেন। আদর্শভাবে, ডেভেলপাররা আপনার ডেভেলপার পোর্টালের মাধ্যমে নিজেদের এবং তাদের অ্যাপ রেজিস্টার করেন। তবে, এই ধাপে, আপনি একজন ডেভেলপার ও একটি অ্যাপকে অ্যাডমিনিস্ট্রেটর হিসেবে যোগ করবেন।

ডেভেলপারের এক বা একাধিক অ্যাপ থাকতে পারে যা আপনার API কল করে এবং প্রতিটি অ্যাপ একটি অনন্য কনজিউমার কী ও কনজিউমার সিক্রেট পায়। প্রতিটি অ্যাপের জন্য এই কী/সিক্রেট আপনাকে, API প্রদানকারীকে, আপনার API অ্যাক্সেস করার ব্যাপারে আরও সূক্ষ্ম কন্ট্রোল এবং API ট্রাফিক সংক্রান্ত আরও সূক্ষ্ম অ্যানালিটিক্স রিপোর্টিং দেয়, কারণ Edge জানে কোন ডেভেলপার ও অ্যাপ কোন OAuth টোকেনের সাথে যুক্ত।

ডেভেলপার তৈরি করা

Nigel Tufnel নামের একজন ডেভেলপার তৈরি করা যাক।

  1. মেনু থেকে প্রকাশ করুন > ডেভেলপার বিকল্প বেছে নিন।
  2. + ডেভেলপার বিকল্পে ক্লিক করুন।
  3. নতুন ডেভেলপার উইন্ডোতে নিম্নলিখিত তথ্য লিখুন:
    এই ফিল্ডে Enter
    নাম Nigel
    পদবী Tufnel
    ইউজারনেম nigel
    ইমেল nigel@example.com
  4. তৈরি করুন বিকল্পে ক্লিক করুন।

অ্যাপ রেজিস্টার করা

নাইজেলের জন্য একটি অ্যাপ তৈরি করা যাক।

  1. প্রকাশ করুন > অ্যাপ বিকল্প বেছে নিন।
  2. + অ্যাপ বিকল্পে ক্লিক করুন।
  3. নতুন অ্যাপ উইন্ডোতে নিম্নলিখিত তথ্য লিখুন:
    এই ফিল্ডে এটি করুন
    নাম ও যে নাম দেখানো হবে এন্টার করুন: nigel_app
    ডেভেলপার ডেভেলপার বিকল্পে ক্লিক করে বেছে নিন: Nigel Tufnel (nigel@example.com)
    কলব্যাক URL ও নোট ফাঁকা রাখুন
  4. প্রোডাক্ট বিকল্পের মধ্যে, প্রোডাক্ট যোগ করুন বিকল্পে ক্লিক করুন।
  5. helloworld_oauth2-Product বেছে নিন।
  6. তৈরি করুন বিকল্পে ক্লিক করুন।

কনজিউমার কী ও কনজিউমার সিক্রেট পাওয়া

এখন আপনি কনজিউমার কী ও কনজিউমার সিক্রেট পাবেন যা OAuth অ্যাক্সেস টোকেনের জন্য এক্সচেঞ্জ করা হবে।

  1. নিশ্চিত করুন যে nigel_app পৃষ্ঠাটি দেখানো হচ্ছে। তা না হলে, অ্যাপ পৃষ্ঠায় (প্রকাশ করুন > অ্যাপ), nigel_app বিকল্পে ক্লিক করুন।
  2. nigel_app পৃষ্ঠায়, কী ও গোপনীয় কলামে দেখুন বিকল্পে ক্লিক করুন। লক্ষ্য করুন যে কী/সিক্রেট "helloworld_oauth2-Product"-এর সাথে যুক্ত যা আগে অটোমেটিক তৈরি করা হয়েছে।

  3. কী ও সিক্রেট বেছে নিয়ে কপি করুন। সেগুলি একটি অস্থায়ী টেক্সট ফাইলে পেস্ট করুন। পরবর্তী ধাপে আপনি এগুলি ব্যবহার করবেন, যেখানে আপনি API প্রক্সি কল করবেন যা OAuth অ্যাক্সেস টোকেনের জন্য এই ক্রেডেনশিয়াল এক্সচেঞ্জ করবে।

আপনার IP অ্যাড্রেস পেতে API কল করার চেষ্টা করুন (ব্যর্থ!)

মজা করে, আপনার IP অ্যাড্রেস ফেরত দেওয়ার কথা এমন সুরক্ষিত API প্রক্সি কল করে দেখুন। Edge সংস্থার নাম পরিবর্তন করে টার্মিনাল উইন্ডোতে নিম্নলিখিত cURL কমান্ডটি এক্সিকিউট করুন। URL-এ test শব্দটি হল আপনার সংস্থার টেস্ট এনভায়রনমেন্ট, যেখানে আপনি নিজের প্রক্সি ডেপ্লয় করেছেন। প্রক্সি বেসপাথ হল /hellooauth2, আপনি প্রক্সি তৈরি করার সময় যে বেসপাথ নির্দিষ্ট করেছিলেন এটি সেই একই বেসপাথ। লক্ষ্য করুন যে আপনি কল করার সময় OAuth অ্যাক্সেস টোকেন পাস করছেন না।

curl https://ORG_NAME-test.apigee.net/hellooauth2

API প্রক্সিতে OAuth v2.0 অ্যাক্সেস টোকেন যাচাই করুন নীতি থাকার কারণে অনুরোধে সঠিক OAuth টোকেন চেক করা হচ্ছে, তাই কলটি নিম্নলিখিত মেসেজ সহ ব্যর্থ হবে:

{"fault":{"faultstring":"Invalid access token","detail":{"errorcode":"oauth.v2.InvalidAccessToken"}}}

এই ক্ষেত্রে, ব্যর্থতা ভালো! এর অর্থ হল, আপনার API প্রক্সি অনেক বেশি সুরক্ষিত। শুধুমাত্র বৈধ OAuth অ্যাক্সেস টোকেন সহ বিশ্বস্ত অ্যাপই এই API কল করতে পারে।

OAuth অ্যাক্সেস টোকেন পাওয়া

এবার আমরা আসল পুরস্কারের দিকে এগিয়ে যাব। আপনি যে কী ও সিক্রেট কপি করে টেক্সট ফাইলে পেস্ট করেছেন, সেগুলি ব্যবহার করতে চলেছেন এবং OAuth অ্যাক্সেস টোকেনের জন্য সেগুলি এক্সচেঞ্জ করতে চলেছেন। আপনি এখন আপনার ইমপোর্ট করা API স্যাম্পেল প্রক্সি, oauth-এ একটি API কল করতে চলেছেন, যা একটি API অ্যাক্সেস টোকেন তৈরি করবে।

সেই কী ও সিক্রেট ব্যবহার করে, নিম্নলিখিত cURL কল করুন (মনে রাখবেন যে প্রোটোকল হল https), যেখানে উল্লেখ করা হয়েছে সেখানে আপনার Edge সংস্থার নাম, আপনার কী ও আপনার সিক্রেট বসান:

curl -X POST -H "Content-Type: application/x-www-form-urlencoded" \
"https://ORG_NAME-test.apigee.net/oauth/client_credential/accesstoken?grant_type=client_credentials" \
-d "client_id=CLIENT_KEY&client_secret=CLIENT_SECRET"

মনে রাখবেন, কল করার জন্য আপনি Postman-এর মতো কোনও ক্লায়েন্ট ব্যবহার করলে, client_id এবং client_secret অনুরোধের বডিতে থাকে এবং x-www-form-urlencoded হতে হবে।

আপনি এই ধরনের উত্তর পাবেন:

{
  "issued_at" : "1466025769306",
  "application_name" : "716bbe61-f14a-4d85-9b56-a62ff8e0d347",
  "scope" : "",
  "status" : "approved",
  "api_product_list" : "[helloworld_oauth2-Product]",
  "expires_in" : "3599", //--in seconds
  "developer.email" : "nigel@example.com",
  "token_type" : "BearerToken",
  "client_id" : "xNnREu1DNGfiwzQZ5HUN8IAUwZSW1GZW",
  "access_token" : "GTPY9VUHCqKVMRB0cHxnmAp0RXc0",
  "organization_name" : "myOrg",
  "refresh_token_expires_in" : "0", //--in seconds
  "refresh_count" : "0"
}

আপনি OAuth অ্যাক্সেস টোকেন পেয়েছেন! access_token ভ্যালু (উদ্ধৃতি চিহ্ন ছাড়া) কপি করুন এবং আপনার টেক্সট ফাইলে এটি পেস্ট করুন। আপনি এটি শীঘ্রই ব্যবহার করবেন।

কী ঘটল এইমাত্র?

মনে আছে, আগে আপনি যখন oauth প্রক্সিতে সেই কন্ডিশনাল ফ্লো দেখেছিলেন, যেখানে বলা ছিল যে রিসোর্স URI যদি /accesstoken হয় এবং অনুরোধের ক্রিয়া যদি POST হয়, তাহলে GenerateAccessTokenClient OAuth নীতি প্রয়োগ করতে হবে যা অ্যাক্সেস টোকেন তৈরি করে? আপনার cURL কমান্ড সেইসব শর্ত পূরণ করেছে, তাই OAuth নীতি প্রয়োগ করা হয়েছে। এটি আপনার গ্রাহক কী ও গ্রাহক সিক্রেট যাচাই করেছে এবং সেগুলিকে ১ ঘণ্টা পরে মেয়াদ শেষ হয়ে যাবে এমন OAuth টোকেনের সাথে এক্সচেঞ্জ করেছে।

অ্যাক্সেস টোকেন দিয়ে API কল করুন (সফল!)

এখন যেহেতু আপনার কাছে অ্যাক্সেস টোকেন আছে, তাই আপনি এটি API প্রক্সি কল করার জন্য ব্যবহার করতে পারবেন। নিম্নলিখিত cURL কলটি করুন। আপনার Edge সংস্থার নাম ও অ্যাক্সেস টোকেন পরিবর্তন করুন।

curl https://ORG_NAME-test.apigee.net/hellooauth2 -H "Authorization: Bearer TOKEN"

এখন আপনি API প্রক্সিতে একটি সফল কল পাবেন যা আপনার IP অ্যাড্রেস রিটার্ন করে। যেমন:

{"ip":"::ffff:192.168.14.136"}

আপনি প্রায় এক ঘণ্টা ধরে সেই API কলটি আবার করতে পারবেন, তারপরে অ্যাক্সেস টোকেনের মেয়াদ শেষ হয়ে যাবে। এক ঘণ্টা পরে কল করতে, আপনাকে আগের ধাপগুলি অনুসরণ করে নতুন অ্যাক্সেস টোকেন তৈরি করতে হবে।

অভিনন্দন! আপনি একটি API প্রক্সি তৈরি করেছেন এবং কল করার সময় একটি বৈধ OAuth অ্যাক্সেস টোকেন অন্তর্ভুক্ত করার প্রয়োজনীয়তা আরোপ করে এটিকে সুরক্ষিত করেছেন।

সম্পর্কিত বিষয়