बिना “वैध-उपयोगकर्ता की आवश्यकता” के बावजूद अपना काम करने के लिए mod_auth_kerb को कैसे बताएं


11

मैंने Apache पर mod_auth_kerb का उपयोग करके SSO प्रमाणीकरण लागू किया । मेरा विन्यास इस तरह दिखता है:

<Location /login/ >
    AuthType Kerberos
    AuthName "Kerberos Login"
    KrbMethodNegotiate on
    KrbAuthoritative on
    KrbVerifyKDC on
    KrbAuthRealm D.ETHZ.CH
    Krb5Keytab /etc/HTTP.keytab
    KrbSaveCredentials on
    RequestHeader set KERBEROS_USER %{REMOTE_USER}s
</Location>

मेरी समस्या यह है कि, बिना require valid-user, mod_auth_kerb भी उपयोगकर्ता को प्रमाणित करने और KERBEROS_USERसमाप्त होने का प्रयास नहीं करता है (null)। यदि मैं जोड़ता हूं require valid-user, तो यदि ब्राउज़र इसका समर्थन करता है, तो उपयोगकर्ता स्वचालित रूप से प्रमाणित होता है, लेकिन यदि ब्राउज़र Kerberos Negotiate का समर्थन नहीं करता है तो एक बदसूरत मोडल लॉगिन फ़ॉर्म (ala HTTP बेसिक प्रामाणिक) दिखाया जाता है।

मैं जो हासिल करना चाहता हूं वह यह है कि यदि कोई उपयोगकर्ता जाता है /login/, तो mod_auth_kerb कर्बरोस नेगोशिएट के माध्यम से उपयोगकर्ता को प्रमाणित करने की कोशिश करता है। यदि वह विफल रहता है, तो उपयोगकर्ता के लिए एक सामान्य HTML लॉगिन फ़ॉर्म प्रस्तुत किया जाएगा।

क्या ऐसे में अपाचे / mod_auth_kerb को कॉन्फ़िगर करना संभव है?


अपने लॉगिन फ़ॉर्म और उचित त्रुटि हैंडलिंग की आपूर्ति को छोड़कर, यह उचित (अपेक्षित) व्यवहार है।
बिलहोर

जवाबों:


12

मैंने एक बार ऐसा किया है जब मैंने एक साधारण सिंगल-साइनॉन टूल बनाया (कर्बर को mod_auth_tkt के साथ विलय करने के लिए)। इसके लिए थोड़ी सी चिकोरी की आवश्यकता थी:

  • / webauth / लॉगिन को एक require valid-userनिर्देश द्वारा संरक्षित किया गया था । यदि कोई वैध करबरोस क्रेडेंशियल्स के साथ जुड़ा हुआ है, तो हमने REMOTE_USER से उनका उपयोगकर्ता नाम प्राप्त किया, उन्हें एक प्रमाणीकरण कुकी दी, और उन्हें अपने रास्ते पर भेज दिया।

  • अपाचे विन्यास ने ErrorDocumentअप्रार्थित उपयोगकर्ताओं को / webauth / requirement_authentication पर पुनर्निर्देशित करने के अनुरोध का उपयोग किया :

    ErrorDocument 401 / webauth / requirement_authentication

    यह निम्नलिखित क्रियाएं करेगा:

    • 401 परिणाम कोड लौटाएं (सामान्य रूप से, ErrorDocuments आपका परिणाम कोड खाएं), और
    • एक लॉगिन फ़ॉर्म प्रस्तुत करें।
  • लॉगिन फ़ॉर्म वही करेगा जो आप अपेक्षा करते हैं: एक उपयोगकर्ता नाम / पासवर्ड फ़ॉर्म प्रस्तुत करें, उसी को मान्य करें, और उसके बाद उन्हें कुकी दें।


एक दिलचस्प समाधान के लिए +1।
सैम हेलिके

महान, यह पूरी तरह से काम करता है!
बेंजामिन वोहलवेंड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.