2012-10-03 13 views
6

मैं एक सेवा उन्मुख वास्तुकला डिजाइन कर रहा हूं, और मुझे ग्राहकों को पहचानने और उन्हें संसाधनों तक पहुंचने की अनुमति देने के लिए प्रमाणीकरण सेवा की भी आवश्यकता है।एसओए - प्रमाणीकरण सेवा डिजाइन

  • संकेत एक pubkey और privatekey
  • टोकन आधारित pubkey का उपयोग कर प्रमाणीकरण और privatekey

का उपयोग कर प्रत्येक एकल अनुरोध मैं एक OAuth2 संभालने नहीं कर रहा हूँ:

असल में मैं दो संभव समाधान पाया सेवा क्योंकि यह मेरी जरूरतों के लिए सिस्टम को डिजाइन करने वाले बहुत सारे ओवरहेड जोड़ देगा, इसके बजाय मैं एक सरल (लेकिन मजबूत) प्रमाणीकरण समाधान को अपनाना पसंद करता हूं।

तो यहां मैं अपने AuthenticationService के साथ आया हूं, या तो क्लाइंट द्वारा एपीआई अनुरोध (अनुरोध के साथ पास करने के लिए टोकन प्राप्त करने) द्वारा पूछताछ की जा सकती है या एचएमएसी की रिवर्स चेक करने के लिए प्रत्येक एकल एपीआई एंडपॉइंट द्वारा पूछताछ की जा सकती है जिसने यह देखने के लिए अनुरोध किया कि यह मेल खाता है (जांच कर रहा है कि एचएमएसी का उत्पादन करने के लिए उपयोग की जाने वाली निजी कुंजी वैध थी)।

मैं नवीनतम देख सकते अंतिम डेवलपर कई ऑपरेशनों को करने के सरल होने के लिए, लेकिन यह भी टोकन मान्य है और यह समय समाप्ति है संभाल करने के लिए और अधिक के चेक की आवश्यकता होगी ...

क्या संभावित सुरक्षा मुद्दों कर सकता टोकन समाधान उठाओ कि एकल अनुरोध एचएमएसी नहीं करता है? आप क्या पसंद करते हैं और, संभवतः, क्यों?

+0

_SOA प्रमाणीकरण_ के साथ आपका क्या मतलब है ?? क्या आप अपना स्वयं का एसओए सूट बना रहे हैं ?? एसओए कई तकनीकों (मैसेजिंग, वेब सर्विसेज, बीपीईएल इत्यादि) का परिसर है, जो आप उपयोग करेंगे, एसओए सूट आपको प्रत्येक अनुरोध पर अपने उपयोगकर्ताओं को प्रमाणीकृत करने के लिए पहले से ही बनाए गए साधन प्रदान करेगा, चाहे वे ईएसबी या अंदर से बाहर आएं इसका –

+0

मेरा मतलब है कि संपूर्ण वास्तुकला सेवा उन्मुख बनाया गया है। सभी सेवाओं को यह पहचानने की आवश्यकता है कि उपयोगकर्ता अनुरोध को अनुमति देने/अस्वीकार करने के लिए कौन है, इसलिए मुझे प्रमाणीकरण की आवश्यकता है, यह एक स्वतंत्र सेवा भी होगी। –

+0

@AlonsoDominguez मैंने पोस्ट बॉडी संपादित की, आप सही हैं, शायद यह "एसओए प्रमाणीकरण" के रूप में स्पष्ट नहीं हो सका। –

उत्तर

7

अंत में मैंने अंततः एक ही अमेज़ॅन समाधान के आधार पर एक प्रमाणीकरण सेवा तैयार की। उपयोगकर्ताओं को निजी कुंजी का उपयोग करके प्रत्येक अनुरोध पर हस्ताक्षर करने की आवश्यकता है। तो अनुरोध "पब्की: हस्ताक्षर" मान के साथ एक प्राधिकरण शीर्षलेख भेजेगा, जहां हस्ताक्षर किसी भी अनुरोध डेटा से बना एचएमएसी है (यह अनुरोध शरीर हो सकता है) और दिनांक शीर्षलेख के अंदर पारित होने के लिए एक टाइमस्टैम्प भी हो सकता है। यह कार्यान्वयन एमआईटीएम से बचने और हमलों को फिर से चलाने के लिए पर्याप्त मजबूत है।

इस समाधान के बारे में अधिक जानकारी के लिए here एक महान स्पष्टीकरण है जिसने मुझे वास्तविक कार्यान्वयन को समझने में बहुत मदद की।

आशा है कि यह वास्तव में एक ही समस्या का सामना करने वाले दुनिया में किसी और की मदद करेगी।

+3

पिछले 6 महीनों के दौरान मैं बहुत आश्चर्यचकित हूं कि कुछ लोग इस सटीक मुद्दे के बारे में बात कर रहे हैं। निश्चित रूप से प्रमाणीकरण और एकल ऐप्स और उनकी वेब सेवाओं के प्रमाणीकरण के साथ-साथ हेरवेट सामान जैसे केर्बेरोस, सीएएस, एसएएमएल आदि का उपयोग करके संघीय पहचान के बारे में चर्चा का एक टन है। मैं इस प्रकार की चीज़ के लिए ओएथ को सेवा में मजबूर करने के लिए वापस आ रहा हूं । क्या आपने ओथ पर विचार किया था? इसके बजाय आपने अपना खुद का समाधान कैसे लागू किया? –

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