macOS für die Authentifizierung ausschließlich mit Smart Card konfigurieren

Die Smart-Card-Authentifizierung bietet eine starke Zwei-Faktor-Authentifizierung in macOS Sierra und neuer. macOS High Sierra 10.13.2 und neuer unterstützt die Authentifizierung ausschließlich mit Smart Card für die verpflichtende Verwendung einer Smart Card, bei der die passwortbasierte Authentifizierung deaktiviert wird. 

Dieser Artikel richtet sich an Systemadministratoren, die für die Sicherheitsrichtlinien in Unternehmensumgebungen mit Smart-Card-Authentifizierung verantwortlich sind. 

Anmeldung ausschließlich mit Smart Card aktivieren

Halten Sie sich genau an diese Schritte, um sicherzustellen, dass sich Benutzer am Computer anmelden können.

  1. Koppeln Sie eine Smart Card mit einem Administrator-Benutzeraccount, oder konfigurieren Sie die Attribut-Zuordnung.
  2. Falls Sie strenge Zertifikatsprüfungen aktiviert haben, installieren Sie alle erforderlichen Root-Zertifikate oder Intermediates.
  3. Überprüfen Sie, ob Sie sich mithilfe einer Smart Card bei einem Administratoraccount anmelden können.
  4. Installieren Sie ein Smart-Card-Konfigurationsprofil, das den String "<key>enforceSmartCard</key><true/>" enthält, so wie im folgenden Beispiel für ein Konfigurationsprofil ausschließlich mit Smart Card.
  5. Überprüfen Sie, ob Sie sich nach wie vor mithilfe einer Smart Card anmelden können.

Weitere Informationen zu Payload-Einstellungen für Smart Cards finden Sie in den Apple-Referenzinformationen zu Konfigurationsprofilen.

Weitere Informationen zur Verwendung von Smart-Card-Diensten finden Sie unter macOS-Implementierung: Referenz oder indem Sie Terminal öffnen und man SmartCardServices eingeben.

 

Authentifizierung ausschließlich mit Smart Card deaktivieren

Wenn Sie die auf dem Computer installierten Profile manuell verwalten, können Sie das Profil, das ausschließlich die Smart Card verwendet, auf zwei Arten entfernen. Entweder verwenden Sie den Bereich "Profile" in den Systemeinstellungen oder das Befehlszeilenwerkzeug /usr/bin/profiles. Öffnen Sie für weitere Informationen Terminal, und geben Sie man profiles ein.

Wenn Ihre Clientcomputer für Mobile Device Management (MDM) registriert sind, können Sie die passwortbasierte Authentifizierung wiederherstellen. Entfernen Sie dazu das Smart-Card-Konfigurationsprofil, das die Einschränkung, dass ausschließlich eine Smart Card verwendet werden kann, aktiviert, von den Clientcomputern.

Um zu verhindern, dass Benutzer nicht mehr auf ihren Account zugreifen können, entfernen Sie das enforceSmartCard-Profil, bevor Sie eine Smart Card entkoppeln oder die Attribut-Zuordnung deaktivieren. Wenn ein Benutzer nicht mehr auf seinen Account zugreifen kann, entfernen Sie das Konfigurationsprofil, um das Problem zu beheben.

Wenn Sie die Ausschließlich-Smart-Card-Richtlinie anwenden, bevor Sie die Authentifizierung ausschließlich mit Smart Card aktivieren, kann dies dazu führen, dass ein Benutzer nicht mehr auf seinen Computer zugreifen kann. Um dieses Problem zu beheben, entfernen Sie die Ausschließlich-Smart-Card-Richtlinie:

  1. Schalten Sie den Mac ein, und halten Sie dann sofort Befehlstaste-R gedrückt, um aus der macOS-Wiederherstellung zu starten. Lassen Sie die Tasten los, sobald Sie das Apple-Logo, eine sich drehende Weltkugel oder eine Aufforderung zur Eingabe eines Firmware-Passworts sehen. 
  2. Wählen Sie im Fenster "Dienstprogramme" die Option "Festplattendienstprogramm" aus, und klicken Sie dann auf "Fortfahren".
  3. Wählen Sie in der Seitenleiste "Festplattendienstprogramm" das Volume, das Sie verwenden möchten, und wählen Sie dann in der Menüleiste "Ablage"> "Aktivieren". (Wenn das Volume bereits aktiviert ist, wird diese Option grau dargestellt.) Geben Sie dann Ihr Administratorpasswort ein, wenn Sie dazu aufgefordert werden.
  4. Beenden Sie das Festplattendienstprogramm.
  5. Wählen Sie "Terminal" aus dem Menü "Dienstprogramme" in der Menüleiste aus.
  6. Löschen Sie das Konfigurationsprofil-Repository. Öffnen Sie dazu Terminal, und geben Sie die folgenden Befehle ein.
    Ersetzen Sie <volumename> in diesen Befehlen durch den Namen des macOS-Volumes, auf dem die Profileinstellungen installiert wurden. 
    rm /Volumes/<volumename>/var/db/ConfigurationProfiles/MDM_ComputerPrefs.plist
    rm /Volumes/<volumename>/var/db/ConfigurationProfiles/.profilesAreInstalled
    rm /Volumes/<volumename>/var/db/ConfigurationProfiles/Settings/.profilesAreInstalled
    rm /Volumes/<volumename>/var/db/ConfigurationProfiles/Store/ConfigProfiles.binary
    rm /Volumes/<volumename>/var/db/ConfigurationProfiles/Setup/.profileSetupDone
  7. Wenn Sie fertig sind, wählen Sie das Menü "Apple" () > "Neustart".
  8. Installieren Sie alle Konfigurationsprofile, die vorhanden waren, bevor Sie die Authentifizierung ausschließlich mit Smart Card aktiviert haben, neu.

 

Secure Shell Daemon (SSHD) zur Unterstützung der Authentifizierung ausschließlich mit Smart Card konfigurieren

Benutzer können mit ihrer Smart Card die Authentifizierung über SSH an lokalen oder entfernten Computern durchführen, die korrekt konfiguriert sind. Befolgen Sie diese Schritte, um SSHD auf einem Computer zu konfigurieren, damit er die Smart-Card-Authentifizierung unterstützt. 

Aktualisieren Sie die Datei /etc/ssh/sshd_config:

  1. Verwenden Sie den folgenden Befehl, um ein Backup der Datei sshd_config anzulegen:
    sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config_backup_`date "+%Y-%m-%d_%H:%M"`
  2. Ändern Sie in der Datei sshd_config "#ChallengeResponseAuthentication yes" in "ChallengeResponseAuthentication no" sowie "#PasswordAuthentication yes" in "#PasswordAuthentication no.".

Verwenden Sie anschließend die folgenden Befehle, um SSHD neu zu starten:

sudo launchctl stop com.openssh.sshd

sudo launchctl start com.openssh.sshd

Wenn ein Benutzer die SSH-Sitzungen mit einer Smart Card authentifizieren möchte, bitten Sie ihn, folgende Schritte auszuführen:

  1. Verwenden Sie den folgenden Befehl, um den öffentlichen Schlüssel aus seiner Smart Card zu exportieren:
    ssh-keygen -D /usr/lib/ssh-keychain.dylib
  2. Fügen Sie den öffentlichen Schlüssel aus dem vorherigen Schritt zur Datei ~/.ssh/authorized_keys auf dem gewünschten Computer hinzu.
  3. Verwenden Sie den folgenden Befehl, um ein Backup der Datei ssh_config anzulegen:
    sudo cp /etc/ssh/ssh_config /etc/ssh/ssh_config_backup_`date "+%Y-%m-%d_%H:%M"`
  4. Fügen Sie in der Datei /etc/ssh/ssh_config die Zeile "PKCS11Provider=/usr/lib/ssh-keychain.dylib." hinzu.

Auf Wunsch kann ein Benutzer auch den folgenden Befehl verwenden, um den privaten Schlüssel zu seinem ssh-Agenten hinzuzufügen:

ssh-add -s /usr/lib/ssh-keychain.dylib

 

Ausschließlich Smart Card für den SUDO-Befehl aktivieren

Verwenden Sie den folgenden Befehl, um ein Backup der Datei /etc/pam.d/sudo anzulegen:

sudo cp /etc/pam.d/sudo /etc/pam.d/sudo_backup_`date "+%Y-%m-%d_%H:%M"`

Ersetzen Sie anschließend den kompletten Inhalt der Datei /etc/pam.d/sudo mit dem folgenden Text:

# sudo: auth account password session
auth        sufficient    pam_smartcard.so
auth        required      pam_opendirectory.so
auth        required      pam_deny.so
account     required      pam_permit.so
password    required      pam_deny.so
session     required      pam_permit.so

 

Ausschließlich Smart Card für den LOGIN-Befehl aktivieren

Verwenden Sie den folgenden Befehl, um ein Backup der Datei /etc/pam.d/login anzulegen:

sudo cp /etc/pam.d/login /etc/pam.d/login_backup_`date "+%Y-%m-%d_%H:%M"`

Ersetzen Sie anschließend den kompletten Inhalt der Datei /etc/pam.d/login mit dem folgenden Text:

# login: auth account password session
auth        sufficient    pam_smartcard.so
auth        optional      pam_krb5.so use_kcminit
auth        optional      pam_ntlm.so try_first_pass
auth        optional      pam_mount.so try_first_pass
auth        required      pam_opendirectory.so try_first_pass
auth        required      pam_deny.so
account     required      pam_nologin.so
account     required      pam_opendirectory.so
password    required      pam_opendirectory.so
session     required      pam_launchd.so
session     required      pam_uwtmp.so
session     optional      pam_mount.so

 

Ausschließlich Smart Card für den SU-Befehl aktivieren

Verwenden Sie den folgenden Befehl, um ein Backup der Datei /etc/pam.d/su anzulegen:

sudo cp /etc/pam.d/su /etc/pam.d/su_backup_`date "+%Y-%m-%d_%H:%M"`

Ersetzen Sie anschließend den kompletten Inhalt der Datei /etc/pam.d/su mit dem folgenden Text:

# su: auth account password session
auth        sufficient    pam_smartcard.so
auth        required      pam_rootok.so
auth        required      pam_group.so no_warn group=admin,wheel ruser root_only fail_safe
account     required      pam_permit.so
account     required      pam_opendirectory.so no_check_shell
password    required      pam_opendirectory.so
session     required      pam_launchd.so

 

Beispiel für ein Konfigurationsprofil ausschließlich mit Smart Card

Dies ist ein Beispiel für ein Konfigurationsprofil ausschließlich mit Smart Card. Es enthält die unterschiedlichen Arten von Schlüsseln und Strings, die in diesem Profiltyp vorhanden sind.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PayloadContent</key>
<array>
<dict>
<key>PayloadDescription</key>
<string>Configures smart card-only</string>
<key>PayloadDisplayName</key>
<string>Smart card-only</string>
<key>PayloadIdentifier</key>
<string>com.apple.configprofile.78.</string>
<key>PayloadOrganization</key>
<string>Apple</string>
<key>PayloadType</key>
<string>com.apple.security.smartcard</string>
<key>PayloadUUID</key>
<string>5A15247B-899C-474D-B1D7-DBD82BDE5678</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>UserPairing</key>
<false/>
<key>allowSmartCard</key>
<true/>
<key>checkCertificateTrust</key>
<false/>
<key>enforceSmartCard</key>
<true/>
</dict>
</array>
<key>PayloadDescription</key>
<string>Smartcard profile.</string>
<key>PayloadDisplayName</key>
<string>Smart card-only</string>
<key>PayloadIdentifier</key>
<string>com.apple.configprofile.77</string>
<key>PayloadOrganization</key>
<string></string>
<key>PayloadRemovalDisallowed</key>
<false/>
<key>PayloadType</key>
<string>Configuration</string>
<key>PayloadScope</key>
<string>system</string>
<key>PayloadUUID</key>
<string>7D34CC86-C707-44D2-9A9F-C5F6E347BD77</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
</plist>

 

Veröffentlichungsdatum: