API key প্রয়োজন করে API সুরক্ষিত করা

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

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

এই টিউটোরিয়ালের মাধ্যমে, আপনি এগুলি করতে শিখবেন:

  • API key প্রয়োজন এমন API প্রক্সি তৈরি করুন।
  • API প্রোডাক্ট যোগ করুন।
  • ডেভেলপার যোগ করুন এবং অ্যাপ রেজিস্টার করুন।
  • API key দিয়ে আপনার API কল করুন।

অননুমোদিত অ্যাক্সেস থেকে আপনার API সুরক্ষিত রাখা গুরুত্বপূর্ণ। এটি করার একটি উপায় হল API key (এগুলি পাবলিক কী, কনজিউমার কী বা অ্যাপ কী নামেও পরিচিত)।

কোনও অ্যাপ আপনার API-তে অনুরোধ করলে, অ্যাপটিকে অবশ্যই একটি সঠিক কী দিতে হবে। রানটাইমে, Verify API Key নীতি প্রদান করা API key চেক করে যে:

  • সঠিক
  • প্রত্যাহার করা হয়নি
  • অনুরোধ করা রিসোর্স প্রকাশ করে এমন API প্রোডাক্টের API key-এর সাথে ম্যাচ করে

কী সঠিক হলে, অনুরোধ অনুমোদন করা হয়। কীটি সঠিক না হলে, অনুরোধটি অনুমোদন করতে ব্যর্থ হয়।

এই টিউটোরিয়ালে, আপনি একটি API প্রক্সি তৈরি করবেন, এটি অ্যাক্সেস করার জন্য একটি সঠিক API কী প্রয়োজন।

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

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

API প্রক্সি তৈরি করা

'mocktarget' সম্পর্কে

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

http://mocktarget.apigee.net

টার্গেট রিটার্ন Hello, Guest!। উপলভ্য অন্যান্য API রিসোর্সের সহায়তা পৃষ্ঠা পেতে /help রিসোর্স ব্যবহার করুন

  1. https://apigee.com/edge লিঙ্কে গিয়ে সাইন-ইন করুন।
  2. ব্যবহারকারীর প্রোফাইল মেনু দেখতে, সাইড নেভিগেশন বারের উপরে আপনার ইউজারনেমে ক্লিক করে আপনি যে সংস্থায় যেতে চান সেটিতে যান এবং তারপরে তালিকা থেকে সংস্থাটি বেছে নিন।

    ব্যবহারকারীর প্রোফাইল মেনুতে গিয়ে সংগঠন বেছে নিন
  3. API প্রক্সি তালিকা দেখতে ল্যান্ডিং পৃষ্ঠায় API প্রক্সি বিকল্পে ক্লিক করুন।

    Edge API মেনু
  4. + প্রক্সি বিকল্পে ক্লিক করুন।
    প্রক্সি বোতাম তৈরি করা
  5. প্রক্সি তৈরি করুন পৃষ্ঠায়, রিভার্স প্রক্সি (সবচেয়ে সাধারণ) বিকল্প বেছে নিন।
  6. প্রক্সি বিবরণ পৃষ্ঠায়, নিম্নলিখিত উপায়ে প্রক্সি কনফিগার করুন:
    এই ফিল্ডে এটি করুন
    প্রক্সির নাম এন্টার করুন: helloworld_apikey
    প্রোজেক্ট বেস পাথ

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

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

    মনে রাখবেন: API ভার্সনিং সংক্রান্ত Apigee-এর সাজেশন পেতে, ওয়েব API ডিজাইন: দ্য মিসিং লিঙ্ক ই-বুকের ভার্সনিং দেখুন।

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

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

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

    বিবরণ এন্টার করুন: hello world protected by API key
  7. পরবর্তী বিকল্পে ক্লিক করুন।
  8. সাধারণ নীতি পৃষ্ঠায়, নিরাপত্তা: অনুমতি বিকল্পের জন্য, API কী বেছে নিন এবং তারপর পরবর্তী বিকল্পে ক্লিক করুন। এর ফলে আপনার API প্রক্সিতে দুটি নীতি যোগ করা হবে।
  9. ভার্চুয়াল হোস্ট পৃষ্ঠায়, ডিফল্ট ও সুরক্ষিত বিকল্প বেছে নিয়ে পরবর্তী বিকল্পে ক্লিক করুন। ডিফল্ট বেছে নিলে আপনি http://-এর মাধ্যমে API কল করতে পারবেন। সুরক্ষিত বিকল্প বেছে নিলে, আপনি https://-এর মাধ্যমে API কল করতে পারবেন।
  10. সারসংক্ষেপ পৃষ্ঠায়, টেস্ট ডিপ্লয়মেন্ট এনভায়র্নমেন্ট বেছে নেওয়া হয়েছে কিনা দেখুন এবং তারপরে তৈরি ও ডিপ্লয় করুন বিকল্পে ক্লিক করুন।
  11. আপনি একটি স্বীকৃতি দেখতে পাবেন যে আপনার নতুন API প্রক্সি এবং একটি API প্রোডাক্ট সফলভাবে তৈরি করা হয়েছে এবং API প্রক্সিটি আপনার টেস্ট এনভায়রনমেন্টে ডিপ্লয় করা হয়েছে।
  12. API প্রক্সির জন্য ওভারভিউ পৃষ্ঠা দেখাতে, প্রক্সি এডিট করুন বিকল্পে ক্লিক করুন।

নীতি দেখুন

  1. API প্রক্সি এডিটরে, ডেভেলপ করুন ট্যাবে ক্লিক করুন। আপনি দেখতে পাবেন যে API প্রক্সির অনুরোধ ফ্লোতে দুটি নীতি যোগ করা হয়েছে:
    • API কী যাচাই করুন: API কলে একটি সঠিক API কী আছে কিনা তা চেক করে (কোয়েরি প্যারামিটার হিসেবে পাঠানো হয়)।
    • কোয়েরি প্যারামিটার apikey সরিয়ে দিন: একটি AssignMessage নীতি যা API কী চেক করার পরে সেটি সরিয়ে দেয়, যাতে এটি অযথা পাস না হয় এবং এক্সপোজ না হয়।
  2. ফ্লো ভিউতে 'API কী যাচাই করুন' নীতি আইকনে ক্লিক করুন এবং নিচের কোড ভিউতে নীতির XML কনফিগারেশন দেখুন। কল করা হলে, API key কোথায় খুঁজতে হবে তা <APIKey> এলিমেন্টটি নীতিকে জানায়। ডিফল্ট হিসেবে, এটি HTTP অনুরোধে apikey নামে কোয়েরি প্যারামিটার হিসেবে কী খোঁজে:

    <APIKey ref="request.queryparam.apikey" />

    apikey নামটি হল স্বেচ্ছাকৃত এবং এটি এমন যেকোনও প্রপার্টি হতে পারে যেখানে API কী আছে।

API কল করার চেষ্টা করুন

এই ধাপে, আপনি সরাসরি টার্গেট পরিষেবায় একটি সফল API কল করবেন, তারপরে API প্রক্সিতে একটি অসফল কল করে দেখবেন যে নীতি কীভাবে এটিকে সুরক্ষিত করছে।

  1. হয়ে গেছে

    ওয়েব ব্রাউজার থেকে, নিম্নলিখিত অ্যাড্রেসে যান। এটি হল সেই টার্গেট পরিষেবা যেখানে API প্রক্সি, অনুরোধ ফরওয়ার্ড করার জন্য কনফিগার করা হয়েছে কিন্তু আপনি এখন সরাসরি এটিতে হিট করবেন:

    http://mocktarget.apigee.net

    আপনাকে এই সফল উত্তরটি পেতে হবে: Hello, Guest!

  2. ব্যর্থ

    এখন আপনার API প্রক্সি কল করার চেষ্টা করুন:

    http://ORG_NAME-test.apigee.net/helloapikey

    ORG_NAME-এর জায়গায় আপনার Edge সংস্থার নাম লিখুন।

    Verify API Key নীতি না থাকলে, এই কলটি আপনাকে আগের কলের মতো একই উত্তর দেবে। কিন্তু এই ক্ষেত্রে, আপনাকে নিম্নলিখিত সমস্যার উত্তর দেখানো হবে:

    {"fault":{"faultstring":"Failed to resolve API Key variable request.queryparam.apikey","detail":{"errorcode":"steps.oauth.v2.FailedToResolveAPIKey"}}}

    এর অর্থ হল, আপনি কোনও সঠিক API কী পাস করেননি (কোয়েরি প্যারামিটার হিসেবে)।

পরবর্তী ধাপে, আপনি একটি API প্রোডাক্ট যোগ করবেন।

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

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

  1. প্রকাশ করুন > API প্রোডাক্ট বিকল্প বেছে নিন।
  2. +API প্রোডাক্ট বিকল্পে ক্লিক করুন।
  3. আপনার API প্রোডাক্টের প্রোডাক্টের বিবরণ লিখুন।

    ফিল্ড বিবরণ
    নাম API প্রোডাক্টের ইন্টার্নাল নাম। নামে কোনও বিশেষ অক্ষর উল্লেখ করবেন না।
    মনে রাখবেন: API প্রোডাক্ট তৈরি হয়ে গেলে আপনি নাম এডিট করতে পারবেন না। যেমন, helloworld_apikey-Product।
    যে নামটি দেখানো হবে API প্রোডাক্টের ডিসপ্লে নাম। UI-তে ডিসপ্লে নাম ব্যবহার করা হয় এবং আপনি যেকোনও সময় এটি এডিট করতে পারবেন। উল্লেখ করা না থাকলে, নাম ভ্যালু ব্যবহার করা হবে। এই ফিল্ডটি নাম ভ্যালু ব্যবহার করে অটো-ফিল করা হয়; আপনি এর কন্টেন্ট এডিট করতে বা মুছে দিতে পারবেন। ডিসপ্লে নামে বিশেষ অক্ষর থাকতে পারে। যেমন, helloworld_apikey-Product.
    বিবরণ API প্রোডাক্টের বিবরণ। যেমন, Test product for tutorial
    পরিবেশ API প্রোডাক্ট যে এনভায়রনমেন্টে অ্যাক্সেস করার অনুমতি দেবে। যেমন, test বা prod.
    অ্যাক্সেস সর্বজনীন বিকল্প বেছে নিন।
    অ্যাক্সেসের অনুরোধ অটোমেটিক অনুমোদন করা যেকোনও অ্যাপ থেকে এই API প্রোডাক্টের জন্য কী সংক্রান্ত অনুরোধ অটোমেটিক অনুমোদন করার সুবিধা চালু করুন।
    কোটা এই টিউটোরিয়ালের জন্য উপেক্ষা করুন।
    অনুমোদিত OAuth স্কোপ এই টিউটোরিয়ালের জন্য উপেক্ষা করুন।
  4. API রিসোর্স বিভাগে, আপনি যে API প্রক্সি এইমাত্র তৈরি করেছেন সেটি বেছে নিন। যেমন, helloworld_apikey
  5. যোগ করুন বিকল্পে ক্লিক করুন।
  6. পাথ বিভাগে, "/" পাথ যোগ করুন।
  7. যোগ করুন বিকল্পে ক্লিক করুন।
  8. সেভ করুন বিকল্পে ক্লিক করুন।

পরবর্তী ধাপে, আপনি প্রয়োজনীয় API কী পাবেন।

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

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

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

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

  1. মেনু থেকে প্রকাশ করুন > ডেভেলপার বিকল্প বেছে নিন।
  2. + ডেভেলপার বিকল্পে ক্লিক করুন।
  3. নতুন ডেভেলপার উইন্ডোতে নিম্নলিখিত তথ্য লিখুন:

    এই ফিল্ডে লিখুন
    নাম Keyser
    পদবী Soze
    ইউজারনেম keyser
    ইমেল keyser@example.com
  4. তৈরি করুন বিকল্পে ক্লিক করুন।

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

ডেভেলপার অ্যাপ রেজিস্টার করতে:

  1. প্রকাশ করুন > অ্যাপ বিকল্প বেছে নিন।
  2. + অ্যাপ বিকল্পে ক্লিক করুন।
  3. নতুন অ্যাপ উইন্ডোতে নিম্নলিখিত তথ্য লিখুন:

    p
    এই ফিল্ডে এটি করুন
    নাম ও যে নাম দেখানো হবে এন্টার করুন: keyser_app
    কোম্পানি / ডেভেলপার বেছে নিন: Developer
    ডেভেলপার বেছে নিন: Keyser Soze (keyser@example.com)
    কলব্যাক URL ও নোট ফাঁকা রাখুন
  4. ক্রেডেনশিয়াল বিভাগে, মেয়াদ শেষ হওয়ার মেনু থেকে কখনও নয় বিকল্প বেছে নিন। এই অ্যাপের ক্রেডেনশিয়ালের মেয়াদ কখনও শেষ হবে না।
  5. প্রোডাক্ট বিকল্পের মধ্যে, প্রোডাক্ট যোগ করুন বিকল্পে ক্লিক করুন।
  6. helloworld_apikey-Product বেছে নিন।
  7. যোগ করুন বিকল্পে ক্লিক করুন।
  8. আপনার কাজ সেভ করতে, অ্যাপের বিবরণ বিভাগের উপরে ও ডানদিকে তৈরি করুন বিকল্পে ক্লিক করুন।

API key পাওয়া

API key পেতে:

  1. অ্যাপ পৃষ্ঠায় (প্রকাশ করুন > অ্যাপ), keyser_app বিকল্পে ক্লিক করুন।
  2. keyser_app পৃষ্ঠায়, শংসাপত্র বিভাগে কী-এর পাশে দেখুন বিকল্পে ক্লিক করুন । প্রোডাক্ট বিভাগে, লক্ষ্য করুন যে কীটি helloworld_apikey-এর সাথে যুক্ত আছে

    ।
  3. কী বেছে নিয়ে কপি করুন। পরবর্তী ধাপে আপনি এটি ব্যবহার করবেন।

কী সহ API কল করুন

এখন আপনার কাছে API কী আছে, আপনি এটি API প্রক্সি কল করার জন্য ব্যবহার করতে পারবেন। আপনার ওয়েব ব্রাউজারে নিম্নলিখিত তথ্য লিখুন। নিচে ORG_NAME-এর জন্য আপনার Edge সংস্থার নাম এবং API_KEY-এর জন্য API কী ব্যবহার করুন। কোয়েরি প্যারামিটারে কোনও অতিরিক্ত স্পেস নেই তা নিশ্চিত করুন।

http://ORG_NAME-test.apigee.net/helloapikey?apikey=API_KEY

এখন আপনি API প্রক্সি কল করলে, এই উত্তরটি পাবেন: Hello, Guest!

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

মনে রাখবেন, সাধারণভাবে API কী কোয়েরি প্যারামিটার হিসেবে পাস করা পেশাদার পদ্ধতি নয়। আপনাকে HTTP হেডারে এটি পাস করার কথা বিবেচনা করতে হবে।

পেশাদার পদ্ধতি: HTTP হেডারে কী পাস করা

এই ধাপে, আপনি x-apikey নামের একটি হেডারে API কী খোঁজার জন্য প্রক্সি পরিবর্তন করবেন।

  1. API প্রক্সি এডিট করুন। Develop > API Proxies > helloworld_apikey বিকল্প বেছে নিন এবং Develop ভিউতে যান।
  2. API কী যাচাই করুন নীতি বেছে নিন এবং নীতি XML পরিবর্তন করে queryparam-এর পরিবর্তে header-এ নীতিটি দেখতে বলুন:

    <APIKey ref="request.header.x-apikey"/>
  3. পরিবর্তন প্রয়োগ করতে API প্রক্সি সেভ করুন।
  4. API key-কে x-apikey নামের হেডার হিসেবে পাস করাতে cURL ব্যবহার করে নিম্নলিখিত API কল করুন। আপনার সংস্থার নাম লিখতে ভুলবেন না।

    curl -v -H "x-apikey: API_KEY" http://ORG_NAME-test.apigee.net/helloapikey
    

মনে রাখবেন, পরিবর্তন সম্পূর্ণ করতে, আপনাকে কোয়েরি প্যারামিটারের পরিবর্তে হেডার সরানোর জন্য AssignMessage নীতিও কনফিগার করতে হবে। যেমন:

<Remove>
<Headers>
    <Header name="x-apikey"/>
</Headers>
</Remove>

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

এই টিউটোরিয়ালের সাথে সরাসরি সম্পর্কিত কিছু বিষয় এখানে দেওয়া হল:

একটু গভীরে গেলে, API কী দিয়ে API সুরক্ষিত করা হল গল্পের একটি অংশ মাত্র। প্রায়ই, API সুরক্ষায় OAuth-এর মতো অতিরিক্ত সুরক্ষা অন্তর্ভুক্ত থাকে।

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