2016-02-09 19 views
10

मैं एक मानक अनुप्रयोग के साथ एक मौजूदा अनुप्रयोग से माइक्रोस्कोस डिजाइन करने की कोशिश कर रहा हूं: प्रमाणीकरण और प्रमाणीकरण है, और उपयोगकर्ता डेटा स्टोर करता है।प्राधिकरण और उपयोगकर्ता सूक्ष्मजीव डिजाइन

मैं उपयोगकर्ता का प्रबंधन करने के प्रमाणीकरण और प्राधिकरणOAuth2 प्राधिकरण के रूप में उपयोग करते हुए एक प्राधिकरण सर्वर developping कर रहा हूँ। दूसरी तरफ मुझे उपयोगकर्ता की जानकारी/प्रोफाइल स्टोर करना होगा।

प्रश्न: चाहिए प्राधिकरण सर्वर का प्रबंधन:

  • दोनों प्राधिकरण और उपयोगकर्ता एपीआई? इस प्रकार अन्य माइक्रोस्कोस प्राधिकरण सर्वर पर उपयोगकर्ता उपयोगकर्ता की पूरी सूची प्राप्त करने के लिए /me पर /users पर संपर्क कर सकते हैं।
  • या केवल प्राधिकरण और मुझे उपयोगकर्ता माइक्रोस्कोस बनाना है? इस प्रकार प्रमाणीकरण सर्वर केवल /me उपयोगकर्ता से संबंधित एपीआई और उपयोगकर्ता माइक्रोस्कोविसेज/users का खुलासा करेगा?

पहला समाधान थोड़ा आसान है लेकिन प्राधिकरण सर्वर कम (कम पुन: प्रयोज्य) सामान्य क्योंकि उपयोगकर्ता अनुप्रयोग डेटा मॉडल यह (User तालिका के डेटाबेस डेटा मॉडल) का हिस्सा होगा बन जाएगा।


अन्य आवश्यकता एक उपयोगकर्ता यह प्राधिकृत करने से पहले से मौजूद है, तो जांच होनी चाहिए प्राधिकरण सर्वर है।

कोई उपयोगकर्ता ऑटो-सृजन नहीं है, उपयोगकर्ताओं को व्यवस्थापक तक पहुंच प्राप्त करने के लिए आमंत्रित किया जाना चाहिए। इस आवश्यकता के साथ, पहले समाधान सरल है क्योंकि प्राधिकरण सर्वर उपयोगकर्ता डेटाबेस लेकिन तक पहुँच गया है दूसरा समाधान प्राधिकरण सर्वर का अर्थ है:

  1. के साथ साझा करें डेटाबेस उपयोगकर्ता सेवा (हम ऐसा नहीं करते)
  2. कॉल उपयोगकर्ता सेवा से पहले (उदाहरण के लिए) का उपयोग कर प्राधिकरण REST API
  3. प्राधिकरण सर्वर mainta चाहिए कम से कम User तालिका में (Account नाम दिया जा सकता है) और व्यवस्थापक लेकिन प्राधिकरण सर्वर

मुझे लगता है कि 1. समाधान बाहर है पर उपयोगकर्ता सेवा पर उपयोगकर्ता केवल उपयोगकर्ता खाता बनाएँ नहीं, लेकिन के बारे में कोई सलाह 2। और 3.?

3. पहली जगह में सबसे अच्छा लगता है, लेकिन अगर मैं, एक और प्राधिकरण सर्वर करने के लिए स्विच करने के लिए उदाहरण के लिए एक सार्वजनिक एक (OAuth2) गूगल, Github, फेसबुक, आदि जैसे के लिए चाहते हैं ... सुरक्षा हो सकता है समझौता क्योंकि हम उपयोगकर्ता खाता निर्माण को नियंत्रित नहीं कर सकते हैं।

कोई प्रतिक्रिया?

+0

आप प्रमाणीकरण का प्रबंधन कैसे कर रहे हैं? –

+0

बाहरी सेवा (सीएएस पर आधारित) प्रमाणीकरण का प्रभारी है। लेकिन मैं इस सेवा का मालिक नहीं हूं। हालांकि, आप बस डेटाबेस उपयोगकर्ता जानकारी के आधार पर मूल रूप प्रमाणीकरण का उपयोग करके कर सकते हैं – Kakawait

उत्तर

-1

यहां कई विकल्प हैं, इसलिए कृपया अधिक जानकारी प्रदान करें। जैसे क्या आप तैयार किए गए प्राधिकरण सर्वर कार्यान्वयन (ओपन सोर्स) का उपयोग करने में सक्षम हैं? आप किस तकनीक पर आधारित हैं?

मैं आसानी से पहचान सर्वर (https://github.com/IdentityServer/IdentityServer3) को एकीकृत करने में सक्षम था, और इसे कुछ इंटरफेस के सरल कार्यान्वयन के साथ अपने "उपयोगकर्ता" सेवा में प्लग कर सकता था। यह आपके लिए डीबी कड़ी मेहनत को भी संभाल सकता है (OAuth 2.0 के लिए सभी डेटा स्टोर करें, जैसे क्लाइंट्स, ऑथ कोड आदि वाले क्लाइंट आदि)। पहचान सर्वर आपको उपयोगकर्ताओं के लिए 'रजिस्टर' ऑपरेशन उपलब्ध कराने के लिए अपना स्वयं का लिंक प्रदान करने की अनुमति देता है, आपके पास प्रशासक को रजिस्ट्रेशन स्वीकार या अस्वीकार करने की क्षमता भी हो सकती है, इसलिए केवल स्वीकृत उपयोगकर्ता लॉग इन करने में सक्षम होंगे।

सामान्य रूप से - प्रमाणीकरण सेवा को कार्यान्वित करना क्योंकि इसे आरएएफसी द्वारा ओएथ 2.0 के लिए आवश्यक है (विवरण के लिए https://tools.ietf.org/html/rfc6749 देखें) केक का कभी टुकड़ा नहीं है। इसके बजाय आवश्यक होने पर सिद्ध समाधान का उपयोग करें।

सम्मान!

संबंधित मुद्दे