কোনও এপিআই-তে কীভাবে HTTP বেসিক প্রমাণীকরণ ব্যবহার করা উচিত


17

যখন কোনও এপিআইয়ের প্রয়োজন হয় যে কোনও ক্লায়েন্ট এটির কাছে অনুমোদন করে, আমি দুটি পৃথক পরিস্থিতি ব্যবহৃত দেখেছি এবং আমি ভাবছি যে আমার পরিস্থিতির জন্য আমার কোন মামলাটি ব্যবহার করা উচিত।

উদাহরণ 1. তৃতীয় পক্ষগুলিকে এইচটিটিপি বেসিক ব্যবহার করে একটি টোকেন এবং গোপনের সাথে অনুমোদনের অনুমতি দেওয়ার জন্য একটি সংস্থা একটি এপিআই সরবরাহ করে।

উদাহরণ ২. শেষ ব্যবহারকারীকে প্রমাণীকরণের জন্য একটি এপিআই এইচটিটিপি বেসিকের মাধ্যমে একটি ব্যবহারকারীর নাম এবং পাসওয়ার্ড গ্রহণ করে। সাধারণত তারা ভবিষ্যতের অনুরোধগুলির জন্য একটি টোকেন ফিরে পান।

আমার সেটআপ: আমার কাছে একটি জেএসএন এপিআই থাকবে যা আমি মোবাইল এবং ওয়েব অ্যাপ্লিকেশনটির জন্য আমার ব্যাকএন্ড হিসাবে ব্যবহার করি। মোবাইল এবং ওয়েব অ্যাপ্লিকেশন উভয়ের পক্ষে টোকেন এবং গোপনীয় প্রেরণের জন্য এটি ভাল অনুশীলনের মতো বলে মনে হচ্ছে যাতে কেবলমাত্র এই দুটি অ্যাপ্লিকেশনই অন্য কোনও তৃতীয় পক্ষকে ব্লক করে থাকা API এ অ্যাক্সেস করতে পারে।

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

আমি কি কোনওভাবে এই দুটি পদ্ধতির সংমিশ্রণ ব্যবহার করি বা প্রতিটি অনুরোধে কেবলমাত্র শেষ ব্যবহারকারী শংসাপত্রগুলি (ব্যবহারকারী নাম এবং টোকেন) প্রেরণ করি? আমি যদি কেবলমাত্র শেষ ব্যবহারকারীর শংসাপত্রগুলি প্রেরণ করি তবে আমি কি সেগুলি ক্লায়েন্টের কোনও কুকিতে সংরক্ষণ করব?


নোট করুন যে কুকিজগুলি HTTP প্রোটোকলের অংশ নয়, এবং এটি কেবল একটি সাধারণ ব্রাউজার বৈশিষ্ট্য feature সুতরাং আপনি যদি ওয়েবের জন্য স্থাপন না করে থাকেন তবে সেগুলি সম্পর্কে ভুলে যান।
ইয়াম মার্কোভিচ

যদি কুকিজের পরামর্শ দেওয়া হয় না, আপনি কীভাবে / কোথায় এপিআই-তে পাস করার জন্য ক্রেডিটগুলি সঞ্চয় করবেন?
পল সিলিং

কুকিগুলি ব্রাউজার ব্যবহারকারীদের একরকমভাবে সেশনের টোকেন সঞ্চয় করার উপায়। আপনি যদি কোনও বিকাশকারীর সাথে আলাপচারিতা করেন তবে এটি নির্বিঘ্ন হওয়ার দরকার নেই। আপনি একটি সর্বজনীন সংযোগ পরিষেবা স্থাপন করতে পারেন যা "টিকিট" দেয় এবং বিকাশকারীরা তাদের টিকিট মেমোরিতে বা যেখানে খুশি রাখতে পারে। নোট করুন যে আমার কোনও ব্যবহারিক ওয়েব পরিষেবাদির অভিজ্ঞতা নেই এবং সম্ভবত এই ধরণের স্টাফের জন্য স্ট্যান্ডার্ড সমাধান রয়েছে।
ইয়াম মার্কোভিচ

শেষ ব্যবহারকারী লেখক এবং এপিআই লেখক সম্পর্কে আমার প্রশ্নের অংশে আপনার মতামতগুলি কী। আমি এখনও এ বিষয়ে অনিশ্চিত
পল সিলেটিং

উত্তর:


7

এইচটিটিপি মৌলিক প্রমাণীকরণের জন্য প্রতিটি সংস্থান অনুরোধের সাথে ব্যবহারকারীর নাম এবং পাসওয়ার্ড প্রেরণ করা প্রয়োজন। ব্যবহারকারীর নাম: পাসওয়ার্ড "অনুমোদন" অনুরোধ শিরোনাম বেস 64 এনকোডড স্ট্রিংয়ে "বেসিক" এর সাথে উপস্থাপিত হয়েছে। যদি আপনার সমস্ত HTTP যোগাযোগ এনক্রিপ্ট করা থাকে (এসএসএল এর মাধ্যমে) অনুমোদনের শিরোনামের তথ্য আক্রমণকারীদের দ্বারা সহজেই ব্যবহার করা সম্ভব হবে না কারণ তারা এটিকে ধরে রাখতে সক্ষম হবেন না।

বেসিক প্রমাণীকরণের সাথে এসএসএল এনক্রিপ্ট করা http যথেষ্ট হওয়া উচিত।


2
আপনি কি এর উদাহরণ দিতে পারেন? এটিই আমার দরকার, ঠিক এখনই আটকে আছে ...

0

টোকেন / গোপনীয়তার পাশাপাশি ওআউথ / ওপেনআইডি কি কাজ করতে পারে?

আমি সম্প্রতি নিম্নলিখিত পরিস্থিতি বিবেচনা:

  • ওয়েব অ্যাপ্লিকেশন সম্মুখ সমাপ্তি
  • অন্তর্নিহিত REST এপিআই
  • মোবাইল ডিভাইস অ্যাপ্লিকেশনগুলি, আরএসটি এপিআইতে অ্যাক্সেস করছে

একটি সাধারণ পরীক্ষা হিসাবে, আমি সক্ষম হয়েছি:

  • ওআউথ ব্যবহার করে ব্যবহারকারীদের ওয়েব অ্যাপ্লিকেশনটির মাধ্যমে প্রমাণীকরণ করুন
  • REST এপিআই OAuth এর মাধ্যমে অনুমোদিত, এর ফলে কোনও গোপন উত্পন্ন হয় এবং ক্লায়েন্টের কাছে ফিরে যায়
  • মোবাইল ডিভাইসটি তারপরে OAuth এর মাধ্যমে প্রমাণীকরণ করবে এবং তারপরে গোপনীয়তার মাধ্যমে REST এপিআই দ্বারা অনুমোদিত হবে

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


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

ব্যবহারকারী অ্যাপের মাধ্যমে প্রমাণীকরণ করছে এবং অ্যাপটি ব্যবহারকারীর পক্ষে কল করছে। প্রমাণীকরণের প্রক্রিয়াটি টোকেনটি গ্রহণ করে, যা অ্যাপ্লিকেশনটির পরে প্রস্থান করে।
ব্রেন্ডন গ্রিন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.