मेरे पास एक आवश्यकता है जहां, मुझे एक केंद्रीय सर्वर यानी एसएसओ सर्वर के प्रमाणीकरण के साथ डिफ़ॉल्ट उपयोगकर्ता प्रमाणीकरण को बदलना होगा।
Drupal डिबगिंग के द्वारा मुझे पता चला कि सभी सत्र प्रबंधन includes/session.inc
फ़ाइल में होता है । मैं छवि में दिखाए अनुसार प्रमाणीकरण करना चाहता हूं:
SCENARIO: लॉगिन
करें चरणों का विवरण होगा:
- SSO सर्वर पर उपयोगकर्ता नाम और पासवर्ड जमा करने के लिए लॉगिन फ़ॉर्म को बदलें ( Drupal पर नहीं , बल्कि .NET पर)।
- उस साइट के डेटाबेस का उपयोग करके एसएसओ सर्वर पर उपयोगकर्ता को प्रमाणित करें; और मेरी वेबसाइट (या एक मॉड्यूल द्वारा एक फार्म?) के कुछ कस्टम PHP पृष्ठ पर प्रतिक्रिया भेजें ।
- प्रतिक्रिया का उपयोग करते हुए, उपयोगकर्ता तालिका में उपयोगकर्ता की पहचान करें , और पासवर्ड की जांच के बिना उस उपयोगकर्ता के लिए एक सत्र बनाएं (जैसा कि इसका मतलब होगा डबल प्रमाणीकरण)। डिफ़ॉल्ट रूप से, Drupal एक कुकी को
$insecure_session_name
चर के नाम से , और मान के साथ सेट करता है$sid
। मैं चाहता हूं कि द्रुपाल यहां कुकी सेट न करें, इसके बजाय चर के मूल्यों को एसएसओ सर्वर पर भेजें। - SSO सर्वर मान लेगा, एक कुकी बनाएगा, और इसे मुख्य डोमेन में छोड़ देगा
domain.com
(दोनों को याद दिलाने के लिएmy website
औरsso server
मुख्य डोमेन के उप डोमेन पर हैं, जो कि Drupal में भी नहीं है)। फिर, drupal साइट उस कुकी का उपयोग करके लॉग इन कर सकती है।
मुझे पता है कि यह एक कठिन सवाल है, मैं सिर्फ संकेत की तलाश कर रहा हूं कि मुझे कैसे शुरू करना चाहिए? जैसा कि वे कहते हैं "आपको कोर को हैक नहीं करना चाहिए"। तो, मेरे सवाल हैं:
- मुझे यह समझने के लिए कहां देखना चाहिए कि ड्रुपल प्रमाणीकरण और सत्र प्रबंधन कैसे गहराई से काम करता है?
- क्या कोई ऐसा तरीका है जहां मैं फ़ंक्शंस का
includes/session.inc
उपयोग करके फ़ंक्शंस को कॉल कर सकता हूं (जैसा कि फ़ंक्शंस के साथ टिप्पणी "आंतरिक उपयोग के लिए केवल संशोधित करने के लिए / नहीं संशोधित करने के लिए)"?
नोट: मैं उपयोगकर्ता को पंजीकृत करने के लिए उसी विधि का उपयोग करूंगा, ताकि रिकॉर्ड एसएसओ सर्वर के केंद्रीय डेटाबेस में बना रहे। और उस दौरान Drupal साइट के डेटाबेस में उसी उपयोगकर्ता के लिए कुछ जंक पासवर्ड डाल दिया जाएगा (जैसे लॉगिन करते समय पासवर्ड की जाँच नहीं की जाएगी)।