মাইক্রোসারওয়াইস প্রমাণীকরণ কৌশল


138

একটি মাইক্রোসারওয়াস আর্কিটেকচারের জন্য একটি শালীন / সুরক্ষিত প্রমাণীকরণ কৌশল বেছে নিতে আমার খুব কষ্ট হচ্ছে। আমি এই বিষয়টিতে একমাত্র এসও পোস্ট পেয়েছি এটি হ'ল মাইক্রোসারওয়াইস আর্কিটেকচারে একক সাইন-অন

আমার ধারণা এখানে প্রতিটি পরিষেবায় (যেমন প্রমাণীকরণ, বার্তা, বিজ্ঞপ্তি, প্রোফাইল ইত্যাদি) প্রতিটি ব্যবহারকারীর জন্য একটি অনন্য রেফারেন্স (যথেষ্ট যুক্তিযুক্ত তার পরে তার user_id) এবং idলগ ইন থাকলে বর্তমান ব্যবহারকারীর পাওয়ার সম্ভাবনা রয়েছে।

আমার গবেষণা থেকে, আমি দেখতে পাচ্ছি দুটি সম্ভাব্য কৌশল:

1. শেয়ার্ড আর্কিটেকচার

ভাগ করা আর্কিটেকচার

এই কৌশলটিতে, প্রমাণীকরণ অ্যাপ্লিকেশনটি অন্যগুলির মধ্যে একটি পরিষেবা। তবে প্রতিটি পরিষেবা অবশ্যই রূপান্তর করতে সক্ষম হবে session_id=> user_idতাই এটি অবশ্যই মৃত সহজ। এই কারণেই আমি রেডিসের কথা ভেবেছিলাম, এটি কী: মানটি সংরক্ষণ করবে session_id:user_id

2. ফায়ারওয়াল আর্কিটেকচার

ফায়ারওয়াল আর্কিটেকচার

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


এই দুটি সমাধানের সাথে কীভাবে তুলনা করা যায়:

  • নিরাপত্তা
  • বলিষ্ঠতা
  • কর্মক্ষমতা প্রসারণ
  • ব্যবহারে সহজ

বা সম্ভবত আপনি অন্য সমাধানের পরামর্শ দেবেন যা আমি এখানে উল্লেখ করি নি?

আমি সমাধানটি # 1 আরও ভাল পছন্দ করি তবে খুব বেশি ডিফল্ট বাস্তবায়ন খুঁজে পাইনি যা আমাকে সঠিক দিক দিয়ে যাচ্ছি এই বিষয়টিতে আমাকে সুরক্ষিত করবে।

আমি আশা করি আমার প্রশ্নটি বন্ধ হবে না। আমি জানি না কোথায় এটি জিজ্ঞাসা করতে হবে।

আগাম ধন্যবাদ


1
আপনি কি অর্জন করতে চাইছেন তার উপর আরও বিশদটি জানান? প্রথম ক্ষেত্রে প্রমাণীকরণ রেডিসের বিরুদ্ধে ঘটে, না সেবার সেগুলি নিজেই? রেডিস দ্বিতীয় চিত্রটিতে অনুপস্থিত, এটি কি ইচ্ছাকৃত?
প্লেন পেট্রোভ

আমি কিছু তথ্য যুক্ত করেছি। দয়া করে আমাকে জানান এটি এখনও অস্পষ্ট। ধন্যবাদ!
আগস্টিন রিডিংগার

আপনি কি এমন একটি মাইক্রোসার্চ তৈরি করার ধারণা নিয়ে ভাবছেন যা OAuth প্রোটোকল এবং আপনার অন্যের পরিষেবা ব্যবহারের টোকেন তৈরি করে?
টিয়ার বাল্বি

আমি এই সমাধানটি সম্পর্কে আগ্রহী, তবে এটি বাস্তবে কীভাবে কাজ করবে তা আমি এখনও বুঝতে পারি না। আপনি কি জানেন যে আমি এটির কিছু মানক বাস্তবায়ন কোথায় পেয়েছি?
অগস্টিন রিডিংগার

@ অগাস্টিনরিডিংগার, এটি স্থাপন করার জন্য ধন্যবাদ। আমি বাচ্চা পদক্ষেপ গ্রহণ করে আমার একচেটিয়া ওয়েব অ্যাপ্লিকেশনটিকে মাইক্রো পরিষেবাগুলিতে ভেঙে দিচ্ছি। আপনার ক্ষেত্রে, পরিষেবাগুলি 1-n স্টেটলেস বা রাজ্য পূর্ণ। যদি তারা রাষ্ট্র-পূর্ণ হয়, আপনি কি এই পরিষেবাদিগুলির প্রতিটিতে সেশন পরিচালনা করার বিষয়ে চিন্তাভাবনা করেছেন? ধন্যবাদ
মনছন্দ। পি

উত্তর:


61

আমি যা বুঝি তার উপর ভিত্তি করে, এটি সমাধানের একটি ভাল উপায় হ'ল OAuth 2 প্রোটোকল (আপনি http://oauth.net/2/ এ সম্পর্কে আরও কিছু তথ্য পেতে পারেন )

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

OAuth 2 মডেল

চেইনযুক্ত মাইক্রোসার্ভিস ডিজাইনের উদাহরণ আর্কিটেকচার মডেল

সম্পদ:


1
ধন্যবাদ এটি বেশ পরিষ্কার। আমি এই খুব ভাল নিবন্ধটি প্রায় একই সমাধান দ্রবীভূত পেয়েছি
আগস্টিন

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

উদাহরণস্বরূপ আপনি গেটওয়েতে প্রাপ্ত টোকেনটি সমস্ত পরিষেবায় প্রেরণের জন্য নেটফ্লিক্স জুউল ব্যবহার করতে পারেন এবং তারা ব্যবহারকারীর তথ্য জানতে পারবেন। docs.spring.io/spring-boot/docs/current/references/htmlsingle/…
টিয়ার বাল্বি

পরিষেবাদির মধ্যে OAuth2 ব্যবহার সম্পর্কে আরেকটি সুন্দর বিষয় হ'ল আপনার এন্ডপয়েন্ট থাকতে পারে যা পরিষেবা অনুমোদিত এবং ব্যবহারকারীর অনুমোদিত ক্রিয়াকলাপের মধ্যে পার্থক্য করে।
সিএমপি

2
OAuth অন্য সিস্টেমে থাকা ব্যবহারকারীর ডেটাতে সিস্টেমকে অ্যাক্সেস দেওয়ার বিষয়ে আরও বেশি। আমার কাছে এটি এসএএমএল-এর পক্ষে ভাল লাগার মতো দেখাচ্ছে।
রব গ্রান্ট

8

সংক্ষিপ্ত উত্তর: Oauth2.0 ধরণের টোকেন ভিত্তিক প্রমাণীকরণ ব্যবহার করুন, যা কোনও অ্যাপ্লিকেশন যেমন ওয়েব অ্যাপ্লিকেশন বা মোবাইল অ্যাপ্লিকেশনে ব্যবহার করা যেতে পারে। ওয়েব অ্যাপ্লিকেশনটির সাথে জড়িত পদক্ষেপগুলির ক্রম তখন হবে

  1. আইডি সরবরাহকারীর বিরুদ্ধে প্রমাণীকরণ করুন
  2. কুকিতে অ্যাক্সেস টোকেন রাখুন
  3. ওয়েবঅ্যাপে পৃষ্ঠাগুলি অ্যাক্সেস করুন
  4. পরিষেবাগুলিতে কল করুন

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

এখানে চিত্র বর্ণনা লিখুন


এডাব্লুএস ল্যাম্বদা কি "ঠান্ডা" হয়ে ওঠে এবং শুরু করতে সময় নেয় না? এটি লগইনকে ধীর করে দেবে, তাই না?
tsuz

@tsuz, এডাব্লুএস এখন ল্যাম্বডায় সম্মতিযুক্ত বৈশিষ্ট্য চালু করেছে যেখানে আপনি সম্মতিটি সংরক্ষণ করতে পারবেন। এটি দিয়ে আপনি কোল্ড শুরুর সমস্যাটি সমাধান করতে পারেন। docs.aws.amazon.com/lambda/latest/dg/…
সন্দীপ নায়ার

আমি এই উত্তরটি বহু বছর আগে দেখে থাকতে পছন্দ করেছি, এটি
প্রমাণযোগ্যতা

@ সন্দীপ, আমি মনে করি আপনি প্রভিশিত সমঝোতা উল্লেখ করছেন এবং সংরক্ষিত নেই।
অনিল কুমার

0

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

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

আপনি এটি সম্পর্কে আরও বিশদ জানতে পারেন http://proficientblog.com/microservices-security/ এ


-2

আপনি প্রমাণীকরণ এবং অনুমোদনের উদ্দেশ্যে আইডেনটিটি সার্ভার 4 ব্যবহার করতে পারেন

আপনাকে অবশ্যই ফায়ারওয়াল আর্কিটেকচারটি ব্যবহার করতে হবে তাই আপনারা নিরাপত্তা, দৃ rob়তা, স্কেলাবিলিটি এবং ব্যবহারের সহজতার উপর আরও নিয়ন্ত্রণ রাখতে পারেন

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