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


32

আমি একটি পুরু-ক্লায়েন্ট, ডেস্কটপ, ওপেন সোর্স টুইটার ক্লায়েন্ট তৈরি করতে চাই। আমি .NET কে আমার ভাষা হিসাবে এবং টুইটারাইজারকে আমার OAuth / টুইটার মোড়ক হিসাবে ব্যবহার করব এবং আমার অ্যাপটি সম্ভবত উন্মুক্ত উত্স হিসাবে প্রকাশিত হবে।

একটি OAuth টোকেন পেতে, তথ্য চার টুকরা প্রয়োজন:

  1. অ্যাক্সেস টোকেন (টুইটার ব্যবহারকারীর নাম)
  2. অ্যাক্সেস সিক্রেট (টুইটারের পাসওয়ার্ড)
  3. গ্রাহক কী
  4. গ্রাহক গোপনীয়তা

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

সুতরাং আমার প্রশ্নটি হল, আমি কীভাবে এই সমস্যাটি ঘটাব? কোনও ডেস্কটপ টুইটার ক্লায়েন্টের গ্রাহক কী এবং গোপনীয়তা রক্ষার জন্য উপযুক্ত কৌশল কী?


+1 আমার খুব একই উদ্বেগ আছে। তবে প্রশ্নটি আসলে ডেস্কটপ এনভায়রনমেন্ট বা টুইটারের সাথে সুনির্দিষ্ট নয় - আমি বিশ্বাস করি এমন ওয়েবসার্চগুলির মধ্যে এই প্রমাণীকরণের স্কিমাটি খুব সাধারণ?
vemv

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

1
+1 আমি এখানে সর্বোত্তম অনুশীলন কী তা সম্পর্কে কৌতূহলী। আমার কিউটি অ্যাপ্লিকেশনটিতে আমি ওআউথ ব্যবহার করি তবে আমি কেবল গ্রাহকতার বিবরণগুলি বাইনারিটিতে স্ট্রিং (কিউ স্ট্রিং) হিসাবে সঞ্চয় করি।

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

উত্তর:


5

আমি কোন উত্তর যে আয়না পথ আমি নিচে যাচ্ছে বিবেচনা করা পেলেন hueniverseওআউথ ওয়েব পুনঃনির্দেশ প্রবাহের বাইরে , নিবন্ধটি কিছু পরামর্শ দেয়, যার মধ্যে একটি ওয়েব url যা টোকেন এক্সচেঞ্জ প্রক্রিয়াটিকে প্রক্সি করে। আমার অ্যাপ্লিকেশনটি এই প্রক্সি পৃষ্ঠায় প্রমাণীকরণের জন্য অনুরোধ করছে তা সঠিকভাবে প্রমাণ করার জন্য আমাকে একটি উপায় বের করতে হবে। তবে তা সম্ভব।


3

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

  • প্রতিটি অ্যাপ্লিকেশানের জন্য একটি প্রৌদ্ধ প্রক্সি পরিষেবা সেটআপ করুন
  • অ্যাপ্লিকেশন সহ বান্ডিল কী

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

অবশেষে, প্রতিটি ব্যবহারকারীর এপিআই কীগুলি পাওয়ার জন্য বাধ্য করার একটি বিকল্প রয়েছে ।


3

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

একটি উপায় হ'ল আপনি পরিচালনা করেন এমন কোনও সার্ভারের মাধ্যমে সম্পূর্ণ টুইটার প্রোটোকলকে প্রক্সি করা। এইভাবে, গ্রাহক গোপনীয়তা আপনার সার্ভারে থাকে। এটি হ'ল ওআউথ 1 স্পিকার সম্পাদক ডিক হার্ড্টের দ্বারা প্রস্তাবিত কার্যতালিকা। এই সার্ভার অপারেটিংয়ের ব্যয়টি কার্যকর করে না।

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

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

-2

আমি উত্তর দিতে যাচ্ছি কিন্তু সতর্ক হতে হবে আমি এটি নিজেই মোকাবেলা করি নি, আমি সেরা অনুশীলন এবং বিদ্যমান প্রাসঙ্গিক অভিজ্ঞতা থেকে দূরে চলেছি;

আমি এ নিয়ে খুব বেশি চিন্তা করব না। যদি আপনার ক্লায়েন্ট ওপেন সোর্স হয় তবে তারা যে কোনও উপায়ে উত্সটিতে অ্যাক্সেস পেতে চলেছে এবং তারা আপনার প্রোগ্রামের সাথে যা করে তা নিয়ন্ত্রণ করার চেষ্টা করা যাই হোক না কেন ওপেন সোর্সের প্রকৃতির বিরুদ্ধে যায় (যদিও গুরুত্বপূর্ণ, আপনি যা করার চেষ্টা করছেন তা তা করে না )।

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

সতর্কতা হিসাবে আমি প্রায়শই প্রায়ই (যদি সম্ভব হয়) চাবিগুলি পরিবর্তন করব তবে তারা যদি করতে পারে তবে তা যদি আপনার প্রোগ্রাম হওয়ার ভান করে তবে তা আমার কাছে খুব গুরুতর বলে মনে হয় না।

সম্পূর্ণ প্রকাশ, আমি টুইটার্স এপিআই, টুইটারাইজারের এপিআই, ওউথের প্রয়োজনীয়তা বা অন্য যে কোনও কিছু নিয়ে বলেছি যা প্রশ্নবিদ্ধ মনে হচ্ছে;)


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

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

-4

গ্রাহক কী এবং গোপন অ্যাপ্লিকেশন সীমাবদ্ধ এবং ব্যবহারকারীর দ্বারা আবদ্ধ নয়। এটি গঠনের সাথে সাথে OAuth সরবরাহকারী জানেন যে এটি কী প্রয়োগ করছে। বাকি, অ্যাক্সেস টোকেন এবং গোপনীয় পদক্ষেপগুলি প্রথম পদক্ষেপগুলি শেষ করার পরে প্রাপ্ত করা হবে।

প্রোটোকল কীভাবে কাজ করে তা দেখায় আরও তথ্যের জন্য এই ব্লগ পোস্টটি দেখুন ।

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