2010-01-27 8 views
14

मैं इस तथ्य के बावजूद ओपनआईडी समुदाय पर गंभीरता से संदेह करना शुरू कर रहा हूं कि यह काम करता है।ओपनआईडी बहुत जटिल है?

मैं वर्तमान में ओपनआईडी को 'इस' साइट के लिए प्रमाणीकरण सेवा के रूप में मूल्यांकन करने की प्रक्रिया में हूं और वादे महान हैं, लेकिन मैं इसे काम पर नहीं ला सकता हूं। और मैं वास्तव में खो गया हूँ।

मैं एसओ समुदाय से यहां मेरी सहायता करने के लिए कहता हूं। मुझे जवाब दें और मुझे उदाहरण दिखाएं ताकि मैं इस तरह से इसका लाभ उठा सकूं।

मेरा परिदृश्य बहुत विशिष्ट है। मैं एक विशिष्ट Google Apps डोमेन के माध्यम से उपयोगकर्ताओं को प्रमाणीकृत करना चाहता हूं। अगर आपके पास इस Google Apps डोमेन तक पहुंच है, तो आपके पास मेरे वेब एप्लिकेशन तक पहुंच है।

जहां मैं खो जाता हूं, क्या सभी आवश्यक शर्तें और निर्भरताएं शामिल हैं।

  1. एक्सआरडी क्या है?
  2. यादिस क्या है?
  3. मुझे एक्सआरडी और यादिस की आवश्यकता क्यों है?
  4. मेरी वेबसाइट पर ओपनआईडी प्रमाणीकरण को तैनात करने के लिए मुझे क्या करने की ज़रूरत है?

इसके अलावा, यह मेरे लिए वास्तव में महत्वपूर्ण है।

जब मैं SO में लॉगिन करता हूं, तो मैं अपने Google खाते का उपयोग करता हूं। जब मैं लॉगिन बटन पर क्लिक करता हूं तो मुझे इस पुष्टिकरण पृष्ठ के साथ प्रस्तुत किया जाता है। जहां मैं अपने Google खाता प्रमाण-पत्रों का उपयोग करने का अधिकार दे रहा हूं।

किसी भी तरह, Google जानता है कि यह "Stackoverflow.com" है जो मुझसे पूछ रहा है कि लॉगिन करना ठीक है या नहीं। और मैं जानना चाहता हूं कि इस छोटे से पाठ पर मेरे पास किस तरह का नियंत्रण है। मैं कई अलग-अलग डोमेन पर ओपनआईडी को तैनात करना चाहता हूं लेकिन मैं पसंद करूंगा कि वे सभी विशेष पैरामीटर जैसे कि गुप्त एपीआई कुंजी और क्या नहीं के साथ व्यक्तिगत रूप से कॉन्फ़िगर किए बिना काम करेंगे। हालांकि, मुझे यह सुनिश्चित नहीं है कि यह ओपनआईडी की एक शर्त है, या Google द्वारा प्रदान की गई संघीय लॉगिन API।

+0

मुझे यह समस्या भी हो रही है। ओपनआईडी PHP लाइब्रेरी एक ऐसे पेज के साथ रिक्त पृष्ठ का उपयोग करना चाहता है जो जावास्क्रिप्ट का उपयोग करके ऑटो-सबमिट करता है, लेकिन मैं इसके बजाय HTTP हेडर रीडायरेक्ट का उपयोग करने के लिए चुने गए, लेकिन Google का ओपनआईडी कोई उपयोगी डेटा नहीं लौटाएगा। – amphetamachine

+1

यह नहीं पता कि यह आपके प्रश्न के लिए प्रासंगिक है, लेकिन मुझे यकीन नहीं है कि आप OpenID के साथ Google Apps डोमेन खाते का उपयोग कर सकते हैं। मेरे पास Google Apps खाते और एक "सादा" Google खाता है, और केवल अंतिम कार्य OpenID प्रमाणीकरण के लिए काम करता है। यदि कोई जानता है कि ओपनआईडी के रूप में डोमेन खाते के लिए ऐप्स का सफलतापूर्वक उपयोग कैसे करें, तो कृपया बताएं। :) –

+1

@calmh - मुझे कुछ सुंदर विश्वास दस्तावेज मिल गए हैं कि आप Google Apps डोमेन के विरुद्ध प्रमाणित करने के लिए OpenID या OAuth का उपयोग कर सकते हैं, जब तक आप प्रीमियम सेवा के लिए भुगतान करते हैं। लेकिन आश्चर्य की बात है कि मुझे नमूने नहीं मिला है कि इसे कैसे किया जाए। –

उत्तर

3

मुझे वास्तव में मेरी समस्या का समाधान मिला है, और संक्षेप में, यह बहुत आसान था। मैं अभी भी एक्सआरडीएस और याडीस को नहीं समझता लेकिन मैं इसे आसानी से लेवरेज कर रहा हूं।

आप जो चाहते हैं, और जो आप खोज रहे हैं वह ओपनआईडी "रिलेइंग पार्टी" सामान करने के लिए कोड है। ओपनआईडी प्रदाताओं के उपभोक्ता के रूप में यह "आप" है। आप ओपनआईडी एंडपॉइंट और वॉयला दर्ज करते हैं, आपने ओपनआईडी को अपनी साइट सक्षम कर दी है, यह कोड अभ्यास में दिखाता है।

// using DotNetOpenAuth 
var openid = new OpenIdRelyingParty(); 
var response = openid.GetResponse(); 
if (response == null) 
{ 
    // Google account end point (works fine) 
    var googleID = "https://www.google.com/accounts/o8/id"; 
    // Google hosted account end point 
    // https://www.google.com/accounts/o8/site-xrds?hd=mydomain.com 
    // I was unable to test this, but I was running my RP (this code) 
    // from localhost and it's quite possible that a hosted account RP 
    // has to return to the same domain. 
    // It went fine, but crashed with a "Unable to resolve mydomain.com" error 
    // once I logged in. 
    openid.CreateRequest(googleID).RedirectToProvider(); 
} 
else 
{ 
    switch (response.Status) 
    { 
     case AuthenticationStatus.Authenticated: 
      // Success 
      // to allow persistance across sessions 
      // you'll have to track the "claimed identifier" 
      // some OpenID providers allow you to get an email address through 
      // extensions but this is not always possible. 
      // the claimed identifier is typically your safest bet 
      // and it's a big URL which uniquely identifies the guest 
      // as a specific user, however, you know very little about this user 
      // which is a good thing becuase you don't have to give out personal or 
      // sensitive information to start using a service. 
      break; 

     default: 
      // Something went wrong, check Status property 
      break; 
    } 
} 

जबकि मैं इसे समझ रहा था, मुझे हर स्पेस से इंप्रेशन मिला। वहां से बाहर निकलने के लिए मुझे अपना "ओपनआईडी प्रदाता" होस्ट करना था जिसने इसे ध्वनि बना दिया जैसे मुझे खातों या प्रक्रिया के कुछ हिस्से को संभालना था। हकीकत में मुझे बस इतना करना था।

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

2

ऐसा लगता है कि आप वास्तव में RPX की जांच करना चाहते हैं - यह एक ऐसा समाधान है जो डेवलपर्स (और उपयोगकर्ताओं) के लिए ओपनआईडी समेत अपने पसंदीदा प्रमाणीकरण तंत्र का उपयोग करना आसान बनाता है।

तृतीय पक्ष पहचान प्रदाताओं और अपनी वेबसाइट के बीच एक प्रॉक्सी के रूप में काम करते हुए, RPX आप आसानी से फेसबुक, गूगल, याहू !, ट्विटर, माइस्पेस, एओएल, विंडोज लाइव/MSN/हॉटमेल पर अपने मौजूदा खाते के साथ उपयोगकर्ताओं को प्रमाणित मदद करता है, या कोई अन्य ओपनआईडी प्रदाता।

+3

यहां तक ​​कि सोचा था कि आरपीएक्स बहुत उपयोगी हो सकता है, अगर मैं और Google को छोड़कर कोई पार्टियां प्रमाणीकरण में भाग लेती हैं तो मैं वास्तव में इसे पसंद करूंगा। यह ठीक हो सकता है, लेकिन मैं तीसरे पक्ष की निर्भरता नहीं चाहता हूं। –

6

वास्तव में आप सवाल (अर्थात् सभी तार्किक अंक disregarding) उत्तर देने के लिए मैं कर रहा हूँ के रूप में हम बात DotNetOpenAuth उपयोग करते हुए मेरे साइटों में से एक के लिए OpenID कार्यान्वित करने में; और यह काफी मामूली रहा है।

यह सिर्फ एक .NET नियंत्रण है जिसे आप छोड़ते हैं, चीजों की एक छोटी राशि को कॉन्फ़िगर करते हैं, और फिर इसे फ़ॉर्म प्रमाणीकरण से लिंक करते हैं। काफी अच्छा।

+1

मैं लाइब्रेरी के साथ familar हूँ, मैंने इसे स्वयं इस्तेमाल किया है और यह बेवकूफ है। हालांकि, क्या आपने एसएसओ (एकल साइन-ऑन) के लिए Google Apps के साथ OAuth की कोशिश की है? –

4

ठीक है, आपके पास एक शीर्षलेख के तहत बहुत सारे प्रश्न हैं। मुझे देखने दो कि क्या मैं इसे तोड़ सकता हूं।

XRD और Yadis:

"Yadis" OpenID की सेवा खोज हिस्सा के लिए नाम था - सा है कि आप से "मेरे OpenID example.com है" हो जाता है के लिए "आधिकारिक सर्वर करने के लिए अपने ओपनआईडी openid.example.com/server पर है और यह एएक्स एक्सटेंशन के साथ v2 का समर्थन करता है। " एक्सआरडीएस एक्सएमएल स्कीमा है जो उस जानकारी को रखती है।

(तथ्य यह है कि ओपनआईडी (मानक जिसे हम किसी मान्यता प्राप्त मानक निकाय के माध्यम से विकसित नहीं करते हैं) पर निर्भर करता है XRD (an entirely different standards body में किसी अन्य कार्य-प्रगति मानक से) शायद खेदजनक है। मैं बस इतना कह सकता हूं कि यह अच्छा लगता है उस समय विचार।)

"तैनात करने के लिए मुझे क्या करने की ज़रूरत है?"

जोसेफ स्मर का A Recipe for OpenID-Enabling Your Site देखें। पवित्र गाय, यह 2+ साल पुरानी है? हालांकि, यह अभी भी प्रासंगिक है।

कैसे OpenID प्रदाता आपकी साइट (निर्भर पार्टी) को दिखाता है:

कि छोटे पाठ (उदाहरण के लिए "stackoverflow.com") है OpenID "दायरे" है, जो एक पैरामीटर आप प्रदाता के पास है और एंडपॉइंट यूआरएल का सख्त सबसेट है जिसका उपयोग आप उनकी प्रतिक्रिया को संसाधित करने के लिए करते हैं। (इसलिए यदि आप server2.example.com/foobar पर ओपनआईडी प्रतिक्रिया भेजने के लिए सर्वर को बताते हैं, तो आपका क्षेत्र example.com, या server2.example.com, या server2.example.com/foobar हो सकता है, लेकिन server99.example नहीं .com)

गुप्त API कुंजियां:।

सामान्य में, वहाँ प्राप्त करने के लिए कोई बाहर का बैंड गुप्त API कुंजी है। सामान्य उद्देश्य ओपनआईडी प्रदाताओं के लिए, कुंजी को मानक ओपनआईडी एसोसिएशन तंत्र के माध्यम से जारी किया जाता है।

अब आपने कुछ सुविधाओं पर क्लिक किया है, जो एक ओपनआईडी प्रदाता निश्चित रूप से मूल्यवान मान सकता है - जैसे "मैं उपयोगकर्ता को एक और उपयोगकर्ता के अनुकूल तरीके से कैसे बता सकता हूं कि वे किस साइट को लॉग इन कर रहे हैं यूआरएल अंश "या" मैं इस अनुरोध को कैसे पहचान सकता हूं वास्तव में एक आरपी से आ रहा है मेरे पास कुछ प्रकार के संविदात्मक संबंध हैं ", लेकिन ऐसी विशेषताएं ओपनआईडी 2.0 मानक में कुछ भी नहीं हैं।

+0

जानकारीपूर्ण, लेकिन यह अभी भी आसान नहीं है या पर्याप्त विवरण के साथ मुझे यह मिलता है। ओपनआईडी मेरे लिए एक रहस्य बना हुआ है ... जब आप वास्तव में उपभोक्ता हैं, तो आप इसे प्रदाता क्यों कहते हैं, और जब आप अंत बिंदु की तरह दिखते हैं तो आप ओपनआईडी पहचानकर्ता क्यों कहते हैं? मैं पहले से ही इतने सारे स्तरों पर उलझन में हूं। –

+0

क्या आप विशेष रूप से ऊपर लिखा कुछ चीज़ के बारे में उलझन में हैं? शब्दावली के संबंध में, क्या आपने http://openid.net/specs/openid-authentication-2_0.html#terminology के शब्दावली अनुभाग को पढ़ा है? – keturn

+0

मैं स्वीकार करूंगा कि मैंने कल्पना नहीं पढ़ी है। शब्दावली के बारे में हिस्सा सहायक है लेकिन शब्दों की पसंद है? मुझे शब्दावली के साथ समस्याएं हैं। यह सिर्फ इतना है कि मुझे यह समझने के लिए विनिर्देश को चालू नहीं करना चाहिए कि ओपनआईडी को कैसे डिलीपी किया जा सकता है, न कि मैं तकनीकी भाग को ध्यान में रखता हूं, लेकिन यह अपरिचित है और कुछ हद तक कागज में डाल दिया गया है। इस बारे में रैमबल होना चाहिए कि यह कुछ स्तर के अमूर्तता पर कैसे काम करता है, लेकिन यह उल्लेख करने में असफल रहा कि यह अभ्यास में कैसे काम करता है। कुछ मैं अब खुद से पता लगाना शुरू कर रहा हूँ। हालांकि मैं सभी मदद की सराहना करता हूं, मुझे उम्मीद है कि बिना कहने के चला जाता है। –

-1

मेरे अनुभव में, हाँ।

मैं विशेष रूप से मोनो पर डॉटनेट ओपेनएथ का उपयोग करने की कोशिश कर रहा था, और कहीं भी तेज़ नहीं हुआ, और मैंने इसे काम करने के कई तरीकों की कोशिश की, और बहुत निराश हो गया।

कोई विकल्प नहीं है, मैंने LoginRadius (पहले से ही एक वर्डप्रेस साइट के साथ उपयोग कर रहा है) का उपयोग किया है, और इसे बहुत आसान पाया है, साथ ही यह प्रमाणीकरण करने के लिए पॉपअप-विंडो पॉप अप करता है, जिस तरह से मैं इसे DotNetOpenAuth के साथ चाहता था।

वे इस समय स्वतंत्र दिखते हैं, लेकिन यह बीटा कहता है। तो वे भविष्य में इसके लिए चार्ज कर सकते हैं ...

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