OS X प्राधिकरण तंत्र वास्तव में क्या करते हैं?


13

पृष्ठभूमि 

मैं वीपीएन सिंगल साइन ऑन को प्राप्त करने का सबसे अच्छा तरीका तय करने के लिए, ओएस एक्स लॉगिन प्रक्रिया की बेहतर समझ को चमकाने की कोशिश कर रहा हूं ।

कृपया मुझे सही करें अगर मैं गलत हूं, लेकिन मेरा मानना ​​है कि-

  1. launchd(8)कॉल gettyent(3)और इस प्रकार के ttys(5)लिए निष्पादित करने के loginwindow.appलिए निर्धारित करता है /dev/console

  2. loginwindow.appsystem.login.consoleप्राधिकरण अधिकार प्राप्त करने का प्रयास , जिसके लिए प्राधिकरण डेटाबेस निम्नलिखित तंत्र निर्दिष्ट करता है (उनके कार्य की मेरी समझ के साथ एक साथ सूचीबद्ध); वे जो authdप्रक्रिया के भीतर विशेषाधिकार प्राप्त हैं (रूट के रूप में), जबकि वे जो SecurityAgentप्रक्रिया के भीतर विशेषाधिकार प्राप्त नहीं हैं (जैसे _securityagent):

    • builtin:policy-banner( लॉगिन विंडो बैनर प्रदर्शित करता है , यदि सेट किया गया है)।
    • loginwindow:login (साख के लिए संकेत)।
    • builtin:login-begin
    • builtin:reset-password,privileged( Apple ID का उपयोग करके पासवर्ड रीसेट करता है )।
    • builtin:forward-login,privileged (बूट पर EFI से फॉरवर्ड क्रेडेंशियल्स)।
    • builtin:auto-login,privileged (बूट पर ऑटो-लॉगिन क्रेडेंशियल लागू होता है)।
    • builtin:authenticate,privileged( सेवा के pam_authenticate(3)लिए आह्वान authorization; सेट "यूआईडी" संदर्भ मूल्य)।
    • PKINITMechanism:auth,privileged (टीजीटी प्राप्त करके केर्बरोस को इनिशियलाइज़ करता है)।
    • builtin:login-success
    • loginwindow:success (अनधिकृत रिमोट एक्सेस से लॉगिन सत्र को सुरक्षित करता है; सिस्टम के utmp और utmpx डेटाबेस में लॉगिन को रिकॉर्ड करता है; कंसोल टर्मिनल के लिए स्वामी और अनुमतियां सेट करता है)।
    • HomeDirMechanism:login,privileged (उपयोगकर्ता के घर निर्देशिका mounts)।
    • HomeDirMechanism:status (घर निर्देशिका बढ़ते की प्रगति प्रदर्शित करता है)।
    • MCXMechanism:login (कॉन्फ़िगरेशन प्रोफाइल लागू करता है)।
    • loginwindow:done (वैश्विक सिस्टम डिफॉल्ट्स को शामिल करने के लिए उपयोगकर्ता की वरीयताओं को रीसेट करता है; उपयोगकर्ता की वरीयताओं का उपयोग करके माउस, कीबोर्ड और सिस्टम साउंड को कॉन्फ़िगर करता है; उपयोगकर्ता की समूह अनुमतियाँ सेट करता है; निर्देशिका सेवाओं से उपयोगकर्ता रिकॉर्ड को पुनर्प्राप्त करता है और उस जानकारी को सत्र पर लागू करता है, उपयोगकर्ता की कंप्यूटिंग लोड करता है पर्यावरण - वरीयताओं सहित, पर्यावरण चर, डिवाइस और फ़ाइल अनुमतियाँ, कीचेन एक्सेस, और इसी तरह, डॉक, फाइंडर और सिस्टम यूज़रवर लॉन्च करता है, उपयोगकर्ता के लिए लॉगिन आइटम लॉन्च करता है)।

प्रशन

मैं प्रत्येक तंत्र के कार्य के बारे में अपनी समझ की पुष्टि करना चाहूंगा:

  1. क्या उनका सोर्स कोड खुले तौर पर उपलब्ध है? मुझे पता है कि गैर- builtinतंत्र को प्लगइन्स द्वारा परिभाषित किया जाता है जो कि नीचे पाया जा सकता है /System/Library/CoreServices/SecurityAgentPlugins, लेकिन मुझे वह स्रोत नहीं मिल सकता है जहां से वे बनाए गए थे। न ही मैं पा सकता हूं कि builtinतंत्र कहां परिभाषित हैं।

  2. यदि स्रोत उपलब्ध नहीं है, तो क्या तंत्र कहीं भी प्रलेखित हैं?

टिप्पणियों

  1. loginwindow:loginक्रेडेंशियल के लिए कैसे प्रेरित किया जा सकता है यदि इसे पहले ही लागू किया गया हो , builtin:forward-loginऔर builtin:auto-loginदोनों में से कौन जीयूआई को बायपास किया जाए? क्या यह ऐसी साख के लिए संदर्भ का निरीक्षण करता है और यदि वे मौजूद हैं तो खुद को छोड़ देते हैं? अजीब लगता है।

  2. इसके अलावा, जैसा कि Apple के 802.1X प्रमाणीकरण तकनीकी श्वेत पत्र में वर्णित है :

    जब लॉगिन विंडो मोड कॉन्फ़िगर किया जाता है और एक उपयोगकर्ता नाम और लॉगिन विंडो में पासवर्ड टाइप होता है, तो दो चीजें होंगी। सबसे पहले, लॉगिन विंडो उपयोगकर्ता के नाम और पासवर्ड का उपयोग करके नेटवर्क में 802.1X के माध्यम से कंप्यूटर को प्रमाणित करेगी और उपयोगकर्ता द्वारा दर्ज किया गया पासवर्ड। 802.1X प्रमाणीकरण सफल होने के बाद, लॉगिन विंडो बाहरी निर्देशिका के लिए उसी उपयोगकर्ता नाम और पासवर्ड को प्रमाणित करेगी।

    चूंकि उस प्रमाणीकरण के दूसरे चरण को pam_opendirectory.soमॉड्यूल द्वारा नियंत्रित किया जाता है और यह मौजूद नेटवर्क पर निर्भर है, इसलिए पहले चरण (802.1X के माध्यम से नेटवर्क के लिए प्रमाणीकरण) आवश्यक रूप से पहले होना चाहिए। यही है, यह builtin:authenticateतंत्र से पहले होना चाहिए ।

    loginwindowप्लगइन बाइनरी के एक आकस्मिक निरीक्षण से , ऐसा लगता है कि यह इस तरह के 802.1X प्रमाणीकरण को संभालता है - लेकिन उस प्लगइन के भीतर लागू केवल एकमात्र तंत्र builtin:authenticateहै loginwindow:login। क्या मैं यह सोचने में सही हूं कि यह तंत्र न केवल लॉगिन प्रॉम्प्ट प्रदर्शित करता है, बल्कि फिर 802.1X प्रमाणीकरण का भी प्रयास करता है? (यदि ऐसा है, तो न केवल थोड़ा मैला IMHO लगता है, बल्कि यह भी सुझाव देता है कि EFI / ऑटो-लॉगिन से क्रेडेंशियल्स का उपयोग 802.1X लॉगिन विंडो प्रमाणीकरण के लिए नहीं किया जा सकता है।)

जवाबों:


1
  1. मुझे लॉगिनविंडो क्या याद दिलाता है: लॉगिन वास्तव में GUI लॉगिन विंडो को निर्मित करने में उपयोग किया जाता है, बिलिन के समान: नीति-बैनर। इसलिए बाकी कार्रवाइयों से पहले इसे उछाला जाना तर्कसंगत है। तो GUI विंडो वह है जो वास्तव में अप्रासंगिक / बाईपासेबल है, न कि स्वयं क्रेडेंशियल्स।

  2. आप वास्तव में किस उद्देश्य से संशोधित करना चाहते हैं? उदाहरण के लिए, यदि आपको अन्य स्थितियों में प्राधिकरण प्लगइन को लागू करने की आवश्यकता होती है, तो आप वह कर सकते हैं जिसे आप संपादित कर सकते हैं।

इसके अलावा, बिलिन: प्रमाणित उप-प्रणालियों को 802.1X और स्थानीय प्राधिकरण के बीच अंतर को संभालना चाहिए।


1
builtin:forward-login,privileged

आगे की ओर सफल OSV लॉगिन विंडो में FileVault लॉगिन और वहाँ लॉगिन करने की आवश्यकता को बायपास करता है। यह एकल साइन-ऑन की तरह है। मैंने इसे अपने वातावरण में अक्षम कर दिया था क्योंकि यह मेरे द्वारा सेटअप किए गए 802.1X प्रोफ़ाइल का उपयोग नहीं कर रहा था। मैं ऐसा करने की कोशिश करूंगा।

OS X: FileVault इनेबल होने पर ऑटोमैटिक लॉगइन को डिसेबल कैसे करें

sudo defaults write /Library/Preferences/com.apple.loginwindow DisableFDEAutoLogin -bool YES
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.