सवाल ओएस एक्स प्रमाणीकरण तंत्र वास्तव में क्या करते हैं?


पृष्ठभूमि

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

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

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

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

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

प्रशन

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

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

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

टिप्पणियों

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

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

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

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

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


13
2018-01-06 14:41


मूल




जवाब:


  1. जो मुझे याद है लॉगिनविंडो से: लॉगिन वास्तव में जीयूआई लॉगिन विंडो को बनाने में उपयोग किया जाता है, बिल्टिन के समान: पॉलिसी-बैनर। तो शेष कार्यों से पहले पैदा होना तार्किक है। तो जीयूआई विंडो वह है जो वास्तव में अप्रासंगिक / बाईपास योग्य है, न कि खुद को प्रमाण पत्र।

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

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


1
2018-01-27 12:11





builtin:forward-login,privileged

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

ओएस एक्स: FileVault सक्षम होने पर स्वचालित लॉगिन कैसे अक्षम करें

sudo defaults write /Library/Preferences/com.apple.loginwindow DisableFDEAutoLogin -bool YES

1
2018-06-23 16:56