Soru OS X yetkilendirme mekanizmaları gerçekte ne yapar?


Arka fon

Başarıya ulaşmanın en iyi yolunu belirlemek için OS X giriş sürecini daha iyi anlamaya çalışıyorum. VPN Tek Oturum Açma.

Lütfen yanılıyorsam beni düzeltin ama buna inanıyorum.

  1. launchd(8) aramalar gettyent(3) ve dolayısıyla ttys(5) yürütmek loginwindow.app için /dev/console.

  2. loginwindow.app elde etme girişimleri system.login.console yetkilendirme veri tabanının aşağıdaki mekanizmaları belirttiği yetkilendirme hakkı (işlevlerini anlamamla birlikte listelenir); ayrıcalıklı olanlar authd süreç (root olarak), ayrıcalıklı olmayanlar ise SecurityAgent işlem (_securityagent olarak):

    • builtin:policy-banner (görüntüler Giriş Penceresi bannerayarlanmışsa).
    • loginwindow:login (kimlik bilgileri ister).
    • builtin:login-begin
    • builtin:reset-password,privileged (gerçekleştirir Apple ID kullanarak şifre sıfırlama).
    • builtin:forward-login,privileged (Önyüklemede EFI'dan gelen ileri düzey bilgiler).
    • builtin:auto-login,privileged (önyükleme sırasında otomatik giriş kimlik bilgilerini uygular).
    • builtin:authenticate,privileged (başlatır pam_authenticate(3) için authorization hizmet; "uid" bağlam değerini ayarlar.
    • PKINITMechanism:auth,privileged (bir TGT elde ederek Kerberos'u başlatır).
    • builtin:login-success
    • loginwindow:success (Oturum açma oturumunu yetkisiz uzaktan erişimden korur; sisteme ait utmp ve utmpx veritabanlarında oturum açmayı kaydeder; konsol terminali için sahip ve izinleri ayarlar).
    • HomeDirMechanism:login,privileged (kullanıcının giriş dizinini bağlar).
    • HomeDirMechanism:status (ev dizini montajının ilerlemesini gösterir).
    • MCXMechanism:login (yapılandırma profillerini uygular).
    • loginwindow:done (Genel sistem varsayılanlarını dahil etmek için kullanıcının tercihlerini sıfırlar, kullanıcının tercihlerini kullanarak fare, klavye ve sistem sesini yapılandırır, kullanıcının grup izinlerini ayarlar, kullanıcı kaydını Dizin Hizmetleri'nden alır ve bu bilgiyi oturuma uygular, kullanıcının bilgisayarını yükler. tercihler, ortam değişkenleri, aygıt ve dosya izinleri, anahtarlık erişimi vb. dahil çevre; Dock, Finder ve SystemUIServer'ı başlatır; kullanıcı için giriş öğelerini başlatır).

Sorular

Her mekanizmanın işlevini anlamamı çok isterim:

  1. Kaynak kodları açık bir şekilde kullanılabilir mi?  Biliyorum ki olmayanbuiltin mekanizmalar altında bulunabilir eklentileri ile tanımlanır /System/Library/CoreServices/SecurityAgentPluginsama kaynak oldukları kaynağı bulamıyorum. Nerede bulabilirim builtin mekanizmalar tanımlanmıştır.

  2. Kaynak mevcut değilse, herhangi bir yerde belgelenen mekanizmalar nelerdir?

Gözlemler

  1. Nasıl olabilir loginwindow:login çağrılırsa kimlik bilgilerini isteme önce  builtin:forward-login ve builtin:auto-loginhangisi GUI'nin atlanmasına neden oluyor? Bu kimlik bilgileri için bağlamı denetler ve mevcutsa kendini atlar mı? Garip görünüyor.

  2. Ayrıca, Apple’da açıklandığı gibi 802.1X Kimlik Doğrulama teknik beyaz kağıt:

    Oturum Açma Penceresi Modu yapılandırıldığında ve kullanıcı bir   Giriş penceresindeki kullanıcı adı ve şifre, iki şey olacak.   İlk olarak, giriş penceresi bilgisayara 802.1X üzerinden kimlik doğrulaması yapar.   Kullanıcı girilen kullanıcı adı ve şifreyi kullanarak ağ. Sonra   802.1X kimlik doğrulaması başarılı, giriş penceresi kimlik doğrulaması yapacak   harici dizine aynı kullanıcı adı ve parola.

    Bu kimlik doğrulamanın ikinci aşaması pam_opendirectory.so modül ve mevcut ağa bağımlıdır, ilk aşama (ağa 802.1X üzerinden kimlik doğrulaması) bundan önce gerçekleşmelidir. Yani, önce builtin:authenticate mekanizması.

    Rahat bir incelemeden loginwindow eklenti ikili, böyle bir 802.1X kimlik doğrulaması işliyor gibi görünüyor - ama önce bu eklenti içinde çağrılan tek mekanizma builtin:authenticate olduğu loginwindow:login. Bu mekanizmanın sadece giriş istemini değil, aynı zamanda 802.1X kimlik doğrulamasını da denediğini düşünerek düzeliyorum mu? (Eğer öyleyse, bu sadece küçük bir özensiz IMHO değil, aynı zamanda EFI / otomatik giriş bilgilerinin 802.1X giriş penceresi kimlik doğrulaması için kullanılamayacağını da gösterir.)


13
2018-01-06 14:41


Menşei




Cevaplar:


  1. Giriş penceresini hatırladığımdan: Giriş aslında yerleşik GUI giriş penceresinin oluşturulmasında kullanılır: ilke-banner. Bu yüzden, eylemlerin geri kalanından önce ortaya çıkması mantıklıdır. Yani GUI penceresi, kimlik bilgileri değil, aslında alakasız / bypass edilebilen bir penceredir.

  2. Tam olarak neyi değiştirmek ve ne amaçla yapmak istersiniz? Örneğin, yetkilendirme eklentisinin başka durumlarda çağrılmasını istiyorsanız, bunu auth.db dosyasını düzenleyerek yapabilirsiniz.

Ayrıca, yerleşik: alt sistemlerin kimlik doğrulaması 802.1X ile yerel kimlik doğrulaması arasındaki farkın üstesinden gelmelidir.


1
2018-01-27 12:11





builtin:forward-login,privileged

OS X Giriş Penceresine başarılı FileVault girişini iletir ve oraya giriş yapma gereğini atlar. Tek oturum açma gibi bir şey. Bunu benim ortamımda devre dışı bıraktım çünkü kurulduğum 802.1X profilini kullanmıyordum. Bunu yapmayı deneyeceğim.

OS X: FileVault etkinleştirildiğinde otomatik giriş nasıl devre dışı bırakılır

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

1
2018-06-23 16:56