API কীগুলির প্রয়োজন করে একটি API সুরক্ষিত করুন৷

আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন
.info- তে যান।

আপনি যা শিখবেন

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

  • এমন একটি এপিআই প্রক্সি তৈরি করুন যার জন্য এপিআই কী প্রয়োজন।
  • একটি এপিআই পণ্য যোগ করুন।
  • একজন ডেভেলপার যোগ করুন এবং একটি অ্যাপ নিবন্ধন করুন।
  • একটি এপিআই কী ব্যবহার করে আপনার এপিআই কল করুন।

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

যখন কোনো অ্যাপ আপনার এপিআই-তে অনুরোধ পাঠায়, তখন অ্যাপটিকে অবশ্যই একটি বৈধ কী সরবরাহ করতে হবে। রানটাইমে, ‘ভেরিফাই এপিআই কী’ পলিসিটি যাচাই করে দেখে যে সরবরাহকৃত এপিআই কী-টি:

  • বৈধ
  • বাতিল করা হয়নি
  • অনুরোধকৃত রিসোর্সগুলো প্রদানকারী এপিআই প্রোডাক্টের এপিআই কী-এর সাথে মেলে।

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

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

আপনার যা যা লাগবে

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

এপিআই প্রক্সি তৈরি করুন

'মকটার্গেট' সম্পর্কে

মকটার্গেট সার্ভিসটি Apigee-তে হোস্ট করা আছে এবং এটি সাধারণ ডেটা ফেরত দেয়। এর জন্য কোনো এপিআই কী বা অ্যাক্সেস টোকেনের প্রয়োজন হয় না। প্রকৃতপক্ষে, আপনি একটি ওয়েব ব্রাউজারেই এটি অ্যাক্সেস করতে পারেন। নিচের লিঙ্কে ক্লিক করে এটি ব্যবহার করে দেখুন:

http://mocktarget.apigee.net

টার্গেটটি Hello, Guest! রিটার্ন করে। উপলব্ধ অন্যান্য এপিআই রিসোর্সগুলোর হেল্প পেজ পেতে /help রিসোর্সটি ব্যবহার করুন।

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

    ব্যবহারকারীর প্রোফাইল মেনুতে সংস্থা নির্বাচন করুন
  3. এপিআই প্রক্সি তালিকাটি দেখতে ল্যান্ডিং পেজে থাকা ‘এপিআই প্রক্সি’ অপশনে ক্লিক করুন।

    এজ এপিআই মেনু
  4. ক্লিক + প্রক্সি
    প্রক্সি বোতাম তৈরি করুন
  5. Create Proxy পেজে, Reverse proxy (সবচেয়ে প্রচলিত) নির্বাচন করুন।
  6. প্রক্সি বিবরণ পৃষ্ঠায়, প্রক্সিটি নিম্নরূপভাবে কনফিগার করুন:
    এই ক্ষেত্রে এটা করুন
    প্রক্সি নাম প্রবেশ করুন: helloworld_apikey
    প্রকল্পের ভিত্তি পথ

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

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

    দ্রষ্টব্য : এপিআই ভার্সনিং বিষয়ে Apigee-এর সুপারিশের জন্য, "Web API Design: The Missing Link " ই-বুকের " Versioning " অংশটি দেখুন।

    বিদ্যমান এপিআই

    প্রবেশ করুন: http://mocktarget.apigee.net

    এটি সেই টার্গেট ইউআরএল নির্ধারণ করে, যা এপিআই প্রক্সিতে কোনো অনুরোধের ক্ষেত্রে Apigee Edge ব্যবহার করে।

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

নীতিমালাগুলো দেখুন

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

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

    apikey নামটি ইচ্ছামত হতে পারে এবং এটি এমন যেকোনো প্রপার্টি হতে পারে যাতে এপিআই কী থাকে।

এপিআই কল করার চেষ্টা করুন

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

  1. সাফল্য

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

    http://mocktarget.apigee.net

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

  2. ব্যর্থতা

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

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

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

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

একটি এপিআই পণ্য যোগ করুন

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

  1. প্রকাশ করুন > এপিআই পণ্য নির্বাচন করুন।
  2. +API পণ্য-এ ক্লিক করুন।
  3. আপনার এপিআই পণ্যের বিবরণ লিখুন।

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

পরবর্তী ধাপগুলোতে আপনি প্রয়োজনীয় এপিআই কী (API key) পেয়ে যাবেন।

আপনার সংস্থায় একজন ডেভেলপার এবং অ্যাপ যোগ করুন

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

একজন ডেভেলপার তৈরি করুন

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

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

    এই ক্ষেত্রে প্রবেশ করুন
    প্রথম নাম Keyser
    শেষ নাম Soze
    ব্যবহারকারীর নাম keyser
    ইমেল keyser@example.com
  4. তৈরি করুন- এ ক্লিক করুন।

একটি অ্যাপ নিবন্ধন করুন

ডেভেলপার অ্যাপ নিবন্ধন করতে:

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

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

এপিআই কী পান

এপিআই কী পেতে:

  1. অ্যাপস পেজে ( প্রকাশ > অ্যাপস ), keyser_app -এ ক্লিক করুন।
  2. keyser_app পেজে, Credentials সেকশনে Key-এর পাশে Show-তে ক্লিক করুন। Product সেকশনে লক্ষ্য করুন যে, কী-টি helloworld_apikey- এর সাথে যুক্ত আছে।

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

একটি কী দিয়ে এপিআই কল করুন

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

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

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

অভিনন্দন! আপনি একটি এপিআই প্রক্সি তৈরি করেছেন এবং কলে একটি বৈধ এপিআই কী অন্তর্ভুক্ত করার শর্ত আরোপ করে এটিকে সুরক্ষিত করেছেন।

মনে রাখবেন যে, সাধারণত কোয়েরি প্যারামিটার হিসেবে এপিআই কী (API key) পাস করা ভালো অভ্যাস নয়। এর পরিবর্তে এটি এইচটিটিপি হেডারে (HTTP header) পাস করার কথা বিবেচনা করা উচিত।

সর্বোত্তম পদ্ধতি: HTTP হেডারে কী (key) পাস করা।

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

  1. এপিআই প্রক্সি সম্পাদনা করুন। Develop > API Proxies > helloworld_apikey নির্বাচন করুন এবং Develop ভিউতে যান।
  2. Verify API Key পলিসিটি নির্বাচন করুন, এবং পলিসি XML পরিবর্তন করে এটিকে queryparam পরিবর্তে header খুঁজতে নির্দেশ দিন:

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

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

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

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

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

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

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

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