PHP

2008-12-23 3 views
12

में केर्बेरोज प्रमाणीकरण मान लें कि मुझे केर्बेरोस के बारे में बहुत कुछ नहीं पता - बस मूल बातें।PHP

मैं है ...

  • डेबियन लिनक्स 2.6 वेबसर्वर
    • अपाचे 2,2
      • mod_auth_kerb/5.3
      • PHP/5,2
  • एक (काम) करबरोस क्षेत्र
  • विंडोज क्लाइंट
    • फ़ायरफ़ॉक्स 3
    • एक पहचान "[email protected]" में लॉग इन एमआईटी में नेटवर्क पहचान प्रबंधक

कैसे कर मैं इस जानकारी का उपयोग एक PHP स्क्रिप्ट में करता हूं ताकि अगर वेबसाइट के पास केर्बेरोज टिकट हो तो मुझे वेबसाइट पर लॉग इन करने की आवश्यकता नहीं है? मैं नहीं चाहता कि अपाचे प्रमाणीकरण को संभालने के लिए। मुझे यह पता लगाना होगा कि कौन सा उपयोगकर्ता PHP के माध्यम से साइट तक पहुंच रहा है।

क्या यह संभव है? यदि हां, तो कैसे?

जो मैंने अभी तक पाया है: मुझे "enable" the domain in Firefox होना है।

हालांकि कि इसके बारे में ...

उत्तर

3

मुझे यकीन है कि अगर यह मदद मिलेगी नहीं कर रहा हूँ, लेकिन ऐसा लगता है अपाचे पीएचपी modauthkerb पैकेज के साथ उपयोगकर्ता नाम जानकारी भेज देंगे अगर आप KrbSaveCredentials पैरामीटर का उपयोग करें। आप php में दो वैश्विक चर मिलना चाहिए:

$_SERVER['REMOTE_USER'] 
$_SERVER['KRB5CCNAME'] 

http://archives.postgresql.org/pgsql-admin/2004-08/msg00144.php लगता है कि वे इस काम के मिल गया है।

इस तरह यदि आप देख सकते हैं कि उपयोगकर्ता क्या है, तो वास्तव में यह आवश्यक नहीं है कि PHP वास्तव में प्रमाणीकरण करता है।

1

mod_auth_kerb आपके लिए वास्तविक प्रमाणीकरण को संभालेगा। इसके बाद, यह REMOTE_USER और KRB5CCNAME पर्यावरणीय चर सेट करेगा। नोट कुछ चेतावनियां देखते हैं कि: यदि Krb5AuthToLocal विकल्प सक्षम है

  • mod_auth_kerb करबरोस प्राचार्य और स्थानीय उपयोगकर्ता नाम के बीच अनुवाद कर सकते हैं।
  • यदि क्रब 5AuthToLocal सक्षम है, प्रमाणीकरण सफल होने पर, mod_auth_kerb एक अधिकृत नाम से स्थानीय नाम पर अनुवाद करने के लिए केर्बेरोस लाइब्रेरी को कॉल करेगा क्योंकि केर्बेरोस प्रिंसिपल हमेशा ऑपरेटिंग सिस्टम में वास्तविक उपयोगकर्ता के समान नहीं होता है (आप प्रिंसिपल को उपयोगकर्ता नामों पर मैप कर सकते हैं)।
  • जब एमआईटी केर्बेरोज उपयोग में है, तो यह मानचित्रण /etc/krb5.conf में auth_to_local नियमों की सहायता से किया जाता है, विवरण के लिए krb5.conf मैन्युअल पृष्ठ देखें।
  • mod_auth_kerb में एक बग है जिसके परिणामस्वरूप स्थानीय नाम का प्रिंसिपल से अधिक लंबा नाम नहीं होना चाहिए।यह आम तौर पर वास्तविक क्षेत्र से प्रधानाचार्यों के लिए सच है क्योंकि वे बिना किसी वास्तविक भाग के प्रस्तुत करते हैं, यानी 'उपयोगकर्ता @ REALM' के बजाय 'उपयोगकर्ता'। हालांकि, यदि आपके पास कई विश्वसनीय क्षेत्र हैं, तो गैर-डिफ़ॉल्ट क्षेत्रों के उपयोगकर्ता '[email protected]' के रूप में दिखाए जाएंगे और फिर mod_auth_kerb फिक्र हो जाएगा। यह बग फेडोरा 18+ और RHEL6.5 में तय किया जाना चाहिए, डेबियन के बारे में निश्चित नहीं है क्योंकि mod_auth_kerb अपस्ट्रीम थोड़ा सा मर चुका है।
  • इसलिए, आपके REMOTE_USER चर में या तो mod_auth_kerb कॉन्फ़िगर किया गया था, इस पर निर्भर करते हुए, आपके REMOTE_USER चर में या तो केर्बेरोस प्रिंसिपल या स्थानीय उपयोगकर्ता नाम होगा। यदि आपका एप्लिकेशन इस तथ्य पर निर्भर करता है कि REMOTE_USER मान वास्तविक मौजूदा सिस्टम उपयोगकर्ता होना चाहिए, तो आपको यह सुनिश्चित करना होगा कि Krb5AuthToLocal विकल्प सक्षम है और ऐसे उपयोगकर्ता सिस्टम में (Winbind या sssd के माध्यम से) दिखाई दे रहे हैं।

अपने मामले के लिए मैं उत्कृष्ट को देखने के लिए कैसे टॉम McLaughlin द्वारा की सलाह देते हैं: http://blogs.freebsdish.org/tmclaugh/2010/07/15/mod_auth_kerb-ad-and-ldap-authorization/

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