2012-01-20 8 views
8

मैं एक OAuth2 प्रदाता को कार्यान्वित कर रहा हूं, और मैं अपनी वेबसाइट पर कहीं भी एक क्षेत्र रखना चाहता हूं जहां डेवलपर्स लॉग ऑन करते हैं और तृतीय पक्ष ऐप्स पंजीकृत करते हैं। लेकिन मुझे संदेह है कि ऐप्स के क्लाइंट पहचानकर्ता और क्लाइंट रहस्य कैसे उत्पन्न करें। क्या वे अद्वितीय यादृच्छिक कोड हो सकते हैं, या क्या उन्हें क्लाइंट को कुछ सार्थक जानकारी होनी चाहिए? मुझे लगता है कि वे यादृच्छिक हो सकता है।ओएथ क्लाइंट पहचानकर्ता और क्लाइंट रहस्य कैसे उत्पन्न करें?

वैसे मैं यह कैसे करना है इस पर सर्वोत्तम प्रथाओं की तलाश में हूं, लेकिन मुझे इतना कुछ नहीं मिला है। तो किसी भी उत्तर की सराहना की जाएगी।

पीडी: मैं .NET MVC3 पर डॉटनेट ओपेनऑथ नामक लाइब्रेरी के साथ विकास कर रहा हूं।

उत्तर

15

क्लाइंट पहचानकर्ता जो कुछ भी आप चाहते हैं वह हो सकता है। यह उनकी पसंद या कोई यादृच्छिक स्ट्रिंग हो सकती है।

ग्राहक रहस्य एक क्रिप्टोग्राफिक रूप से मजबूत यादृच्छिक स्ट्रिंग होना चाहिए। यहां बताया गया है कि आप कैसे उत्पन्न कर सकते हैं:

RandomNumberGenerator cryptoRandomDataGenerator = new RNGCryptoServiceProvider(); 
byte[] buffer = new byte[length]; 
cryptoRandomDataGenerator.GetBytes(buffer); 
string uniq = Convert.ToBase64String(buffer); 
return uniq; 
+0

लेकिन क्या यह कोड गारंटी देता है कि स्ट्रिंग अद्वितीय होगी ??? – Daniel

+0

नहीं, लेकिन ग्राहक रहस्य को अद्वितीय नहीं होना चाहिए। केवल ग्राहक आईडी होना चाहिए। इसके अलावा, उपरोक्त कोड नमूने में पर्याप्त लंबा 'लंबाई' दिया गया है (कहें, 32+) यह सांख्यिकीय रूप से * बहुत * असंभव है कि दो समान कोड उत्पन्न किए जाएंगे। –

+0

आप रहस्य के लिए क्या सलाह देते हैं? – davidbitton

2

चश्मा आपको कैसे उत्पन्न करना चाहिए इसके बारे में स्पष्ट नहीं हैं, लेकिन वे कहते हैं कि आपको यादृच्छिक तार और अद्वितीय होना चाहिए।

section #2.2 में, क्लाइंट पहचानकर्ता के बारे में: - एक अद्वितीय स्ट्रिंग पंजीकरण ग्राहक द्वारा उपलब्ध कराई गई जानकारी का प्रतिनिधित्व करने

प्राधिकरण सर्वर पंजीकृत ग्राहक एक ग्राहक पहचानकर्ता जारी करता है।

+0

अद्वितीय हां, लेकिन चश्मे परवाह नहीं है कि वे "यादृच्छिक" हैं या नहीं। –

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