Suchergebnisse :

×


„Vielen Dank für Ihre Antwort. Wir werden uns bald bei Ihnen melden.“

„Es ist ein Fehler aufgetreten. Bitte senden Sie Ihre Anfrage erneut.“

Überblick


Kerberos-Protokoll:

Kerberos ist ein kryptographiebasiertes Authentifizierungsprotokoll das den Zugriff auf Anwendungen schützt. Dieses Protokoll soll eine sichere Authentifizierung über ein unsicheres Netzwerk ermöglichen. Die Kernidee von Kerberos besteht darin, Benutzer zu authentifizieren und gleichzeitig zu verhindern, dass Passwörter über das Internet gesendet werden.


Miniorange-Symbol

Kerberos/NTLM Single Sign-On (SSO)

Von miniOrange

Mehr erfahren

Kerberos-Begriffe:

Kerberos: Kerberos ist ein Authentifizierungsprotokoll, das das Konzept des Single Sign-On (SSO) unterstützt. Im Fall von HTTP wird die Unterstützung von Kerberos üblicherweise über den Authentifizierungsmechanismus „SPNEGO“ bereitgestellt.

Kerberos-Bereich: Eine administrative Domäne zur Authentifizierung wird mit dem Begriff Realm bezeichnet. Sein Ziel besteht darin, die Einschränkungen zu definieren, wann ein Authentifizierungsserver einen Benutzer, Host oder Dienst authentifizieren kann. Dies bedeutet nicht, dass ein Benutzer und ein Dienst Mitglieder desselben Bereichs sein müssen, damit die Authentifizierung erfolgen kann: Wenn die beiden Objekte über eine Vertrauensverbindung verbunden sind, obwohl sie zu unterschiedlichen Bereichen gehören, kann die Authentifizierung dennoch erfolgen.

Schulleiter: In einem Kerberos-System stellt ein Kerberos-Principal eine eindeutige Identität dar, an die Kerberos Tickets für den Zugriff auf Kerberos-fähige Dienste ausstellen kann. Das Trennzeichen „/“ wird verwendet, um die verschiedenen Komponenten zu trennen, aus denen sich Prinzipalnamen zusammensetzen. Das Zeichen „@“ kann verwendet werden, um einen Bereich als letztes Element des Namens zu kennzeichnen. Wenn kein Bereich angegeben ist, wird davon ausgegangen, dass der Principal zum Standardbereich gehört, der in der Datei krb5.conf festgelegt ist.

Kunden/Benutzer: ein Prozess, der im Namen eines Benutzers auf einen Dienst zugreift. Innerhalb eines Realms kann es mehrere Clients oder Benutzer geben.

Service: Etwas, auf das der Benutzer Zugriff erhalten möchte.

SSO: Single Sign-On ist ein Verfahren, das es einem Benutzer ermöglicht, sich nach Abschluss der Benutzerauthentifizierung nur einmal anzumelden und auf zahlreiche Dienste zuzugreifen. Nach der Anmeldung bei einem primären Dienst erfordert dies eine Authentifizierung bei jedem Dienst, für den der Benutzer eine Berechtigung erteilt hat. SSO bietet eine Reihe von Vorteilen. Einer davon ist die Vermeidung des mühsamen Prozesses der wiederholten Identitätsüberprüfung mithilfe von Passwörtern oder anderen Authentifizierungssystemen.

GSSAPI: Programme können über das Generic Security Service Application Program Interface (GSSAPI), eine Anwendungsprogrammierschnittstelle (API), auf Sicherheitsdienste zugreifen. Ein IETF-Standard ist GSSAPI. Es bietet an sich keine Sicherheit. Stattdessen werden GSSAPI-Implementierungen von Sicherheitsdienstleistern angeboten. Der Austausch undurchsichtiger Nachrichten (Tokens), der die Implementierungsdetails vor der übergeordneten Anwendung verbirgt, ist das Unterscheidungsmerkmal von GSSAPI-Anwendungen.

SPNEGO: Client-Server-Software nutzt den einfachen und geschützten GSSAPI-Verhandlungsmechanismus, der häufig als „spen-go“ bezeichnet wird, um die Auswahl der Sicherheitstechnologie auszuhandeln. Wenn sich eine Client-Anwendung bei einem Remote-Server anmelden muss, aber keine Seite sicher ist, welche Authentifizierungsprotokolle die andere unterstützt, wird SPNEGO eingesetzt. Der Pseudomechanismus verwendet ein Protokoll, um die verfügbaren gemeinsamen GSSAPI-Mechanismen zu identifizieren, wählt einen aus und weist dann alle nachfolgenden Sicherheitsaktionen diesem ausgewählten Mechanismus zu.

KDC: Ein Schlüsselverteilungszentrum ist ein Netzwerkdienst, der Tickets und temporäre Sitzungsschlüssel bereitstellt. oder eine Instanz dieses Dienstes oder des Hosts, auf dem er ausgeführt wird. Das KDC bedient sowohl Erstticket- als auch Ticketgewährungsanfragen. Der anfängliche Ticketteil wird manchmal als Authentifizierungsserver (oder Dienst) bezeichnet. Der Ticket-erteilende Ticketteil wird manchmal als Ticket-erteilender Server (oder Dienst) bezeichnet.


NTLM-Authentifizierungsprotokoll

Der Zugriff eines Clients auf eine Ressource in einer Active Directory-Domäne kann mithilfe des Challenge-Response-Authentifizierungsprotokolls namens Windows NT LAN Manager (NTLM) authentifiziert werden. Wenn ein Client Zugriff auf einen domänenbezogenen Dienst anfordert, sendet der Dienst eine Aufforderung an den Client und weist ihn an, mit seinem Authentifizierungstoken eine mathematische Operation durchzuführen und das Ergebnis dann dem Dienst bereitzustellen. Das Ergebnis kann vom Dienst oder vom Domänencontroller (DC) überprüft werden. Der Dienst gewährt dem Client Zugriff, wenn der DC oder der Dienst überprüft, ob die Antwort des Clients korrekt ist.
Da der Benutzer den zugrunde liegenden Authentifizierungsfaktor nur einmal bei der Anmeldung eingeben muss, handelt es sich bei NTLM um eine Art Single Sign-On (SSO).


NTLM Authentication Protocol Single Sign-On (SSO)-Ablauf
  • Das NEGOTIATE_MESSAGE definiert eine NTLM-Negotiate-Nachricht, die vom Client an den Server gesendet wird. Mit dieser Nachricht kann der Client dem Server seine unterstützten NTLM-Optionen angeben.
  • Das CHALLENGE_MESSAGE definiert eine NTLM-Herausforderungsnachricht, die vom Server an den Client gesendet wird und vom Server verwendet wird, um den Client zum Nachweis seiner Identität aufzufordern.
  • Das AUTHENTICATE_MESSAGE definiert eine NTLM-Authentifizierungsnachricht, die vom Client an den Server gesendet wird, nachdem CHALLENGE_MESSAGE vom Client verarbeitet wurde.

Die Windows-Authentifizierung verwendet je nach Client- und Serverkonfiguration entweder das Kerberos-Authentifizierungsprotokoll oder das NTLM-Authentifizierungsprotokoll.

Kerberos-Authentifizierungsprotokoll


Ein Computernetzwerk-Sicherheitsprotokoll namens Kerberos authentifiziert Dienstanfragen zwischen zwei oder mehr vertrauenswürdigen Hosts über ein nicht vertrauenswürdiges Netzwerk, beispielsweise das Internet
  • Nachricht A: Client-/TGS-Sitzungsschlüssel, verschlüsselt mit dem geheimen Schlüssel des Clients/Benutzers.
  • Nachricht B: Ticket-Granting-Ticket verschlüsselt mit dem geheimen Schlüssel des TGS.
  • Nachricht C: Bestehend aus dem TGT von Nachricht B und der ID des angeforderten Dienstes.
  • Nachricht D: Mit dem Client/TGS-Sitzungsschlüssel verschlüsselter Authentifikator.
  • Nachricht E: Mit dem geheimen Schlüssel des Dienstes verschlüsseltes Client-zu-Server-Ticket.
  • Nachricht F: Client/Server-Sitzungsschlüssel, verschlüsselt mit dem Client/TGS-Sitzungsschlüssel.
  • Nachricht G: Ein neuer Authentifikator, der die Client-ID und den Zeitstempel enthält und mit dem Client/Server-Sitzungsschlüssel verschlüsselt ist.
  • Nachricht H: Der im Authentifikator des Clients gefundene Zeitstempel, verschlüsselt mit dem Client/Server-Sitzungsschlüssel.

Kerberos SSO unter Ubuntu/Debian


Voraussetzungen:

  1. Ein Dienstkonto/Benutzerkonto im Active Directory.
  2. Für das Kontokennwort sollte ein Kennwort festgelegt sein Nicht abgelaufen.

Miniorange-Symbol

Kerberos/NTLM Single Sign-On (SSO)

Von miniOrange

Mehr erfahren

Schritt 1: Erstellen Sie eine Keytab-Datei auf dem AD-Domänencontroller.

  • Öffnen Sie auf dem AD-Domänencontroller die Eingabeaufforderung im Administratormodus und führen Sie den folgenden Befehl aus, um die Keytab-Datei zu erstellen.
  • ktpass -princ HTTP/<Server Host Name>@EXAMPLE.COM -mapuser <username@EXAMPLE.COM>
    -pass password -ptype KRB5_NT_PRINCIPAL -out <PATH>\spn.keytab

    Hinweis: Gewährleisten BEISPIEL.COM sollte in Großbuchstaben geschrieben werden. Wenn der Benutzer mit SPN bereits vorhanden ist, verwenden Sie diesen Benutzer, um einen neuen zu erstellen. Das Kerberos-Prinzip unterscheidet zwischen Groß- und Kleinschreibung. Bitte prüfen Sie, ob es Unterschiede in der Groß-/Kleinschreibung gibt, bevor Sie den Keytab-Befehl ausführen.

  • Im Folgenden sind die Komponenten des Befehls aufgeführt.
  • Server-Hostname: Dies ist der Hostname der auf dem Server gehosteten Site.
    EXAMPLE.COM: Es handelt sich um den Active Directory-Domänennamen.
    Benutzername: Es handelt sich um ein Dienstkonto im Active Directory.
    Passwort: Es handelt sich um das Passwort des oben verwendeten Dienstkontos.
    Pfad: Pfad zu einem lokalen Speicherort, an dem die Keytab-Datei gespeichert wird. (C:\Temp\spn.keytab)

Hinweis: Der obige Befehl erstellt eine Keytab-Datei. Es muss auf dem Client-Server platziert werden, auf dem Ihre WordPress-Site gehostet wird. Der Benutzer, der Apache ausführt, sollte vollen Zugriff auf diese Datei haben. Der Benutzer sollte über Berechtigungen für die Keytab-Datei verfügen.


  • Öffnen Sie „Active Directory-Benutzer und -Computer“ und wählen Sie im oberen Menü „Ansicht“ >> „Erweiterte Funktionen“.
  • Öffnen Sie das Dienstkonto, gehen Sie zur Registerkarte „Attributeditor“ und navigieren Sie zum servicePrincipalName, um den SPN-Eintrag zu überprüfen.
  • Navigieren Sie zur Registerkarte „Delegierung“.
  • Wählen Sie „Diesem Benutzer vertrauen“ für die Delegierung an einen beliebigen Dienst aus (nur Kerberos).
  • Kerberos-Dienst-SSO-Delegierung für Windows Active Directory
  • Klicken Sie auf Anwenden.

  • Kopieren Sie die Keytab Datei vom AD-Domänencontroller auf den auf Apache gehosteten Webserver übertragen.
  • Erteilen Sie der Kerberos-Keytab-Datei die Berechtigung:
  • chmod 644 etc/apache2/spn.keytab

Schritt 2: Kerberos-Clientbibliotheken auf dem Webserver installieren.

  • Verwenden Sie den folgenden Befehl auf Ihrem Terminal, um die Kerberos-Clientbibliotheken zu installieren.
  • sudo apt-get install krb5-user

Schritt 3: Module für Apache installieren.

Hinweis: In den neuesten Versionen von Ubuntu/Debian ist die mod_auth_kerb wurde veraltet und durch ersetzt mod_auth_gssapi.

1: Installieren Sie das Modul mod_auth_kerb für Apache.
  • Verwenden Sie den folgenden Befehl, um das auth_kerb-Modul für Apache auf Debian-basierten Systemen zu installieren:
  • sudo apt-get install libapache2-mod-auth-kerb
  • Sobald das Modul auth_kerb installiert ist, muss es mit dem folgenden Befehl aktiviert werden.
  • a2enmod auth_kerb
  • Starten Sie Apache nach der Aktivierung neu, damit es wirksam wird.

Or


2: Installieren Sie das Modul mod-auth-gssapi für Apache.
  • Verwenden Sie den folgenden Befehl, um das Modul libapache2-mod-auth-gssapi für Apache auf Debian-basierten Systemen zu installieren:
  • sudo apt-get -y install libapache2-mod-auth-gssapi

Schritt 4: Konfigurieren Sie die Active Directory-Domäne in der Kerberos-Konfigurationsdatei.

  • Öffnen und bearbeiten Sie die krb5.conf Datei.
    Der Pfad zur krb5.conf-Datei für Linux ist C:/etc/krb5.conf und für andere Das UNIX-basierte System ist c:/etc/krb5/krb5.conf
  • Fügen Sie den folgenden Konfigurationsausschnitt hinzu krb5.conf Datei unter dem genannten Abschnitt:
  • [libdefaults]
    default_realm = EXAMPLE.COM
    # ...
    # ...
    [realms]
    EXAMPLE.COM = {
    kdc = <DNS entries pointing to your primary domain controller>: Port
    admin_server = <DNS entries pointing to your primary domain controller>: Port
    }
    [domain_realm]
    .example.com = EXAMPLE.COM
    example.com = EXAMPLE.COM

    Hinweis: Ersetzen Sie die IP/DNS des AD-DOMAIN-CONTROLLERS mit Ihrer IP/DNS-Adresse. Sicherstellen BEISPIEL.COM sollte in Großbuchstaben geschrieben werden.
    Ersetzen Sie die BEISPIEL.COM mit dem Active Directory-Domänennamen.
    Und stellen Sie sicher, dass der Port 88 auf dem AD-Domänencontroller von diesem Server aus zugänglich ist.

  • Speichern Sie die Datei.

Schritt 5: Konfigurieren Sie Kerberos SSO für das Site-Verzeichnis

  • Bearbeiten Sie die angelegte Konfigurationsdatei des virtuellen Hosts, die darunter gespeichert ist /etc/apache2/sites-enabled-Verzeichnis oder die standardmäßige virtuelle Hostdatei mit dem Namen 000-default.conf

  • Hinweis: Fügen Sie den folgenden Abschnitt im Verzeichnis entsprechend dem verwendeten Apache-Modul hinzu. Z.B: „mod_auth_kerb“ or „mod_auth_gssapi“.

  1. Fügen Sie den folgenden Abschnitt im Verzeichnis der Site hinzu für mod_auth_kerb.
  2. <Directory "/placeholder">
        AuthType Kerberos
        KrbAuthRealms EXAMPLE.COM
        KrbServiceName HTTP/<Server Host Name>
        Krb5Keytab <PATH TO KEYTAB>
        KrbMethodNegotiate on
        KrbMethodK5Passwd on
        require valid-user
    </Directory>

    Or


  3. Fügen Sie den folgenden Abschnitt im Verzeichnis der Site hinzu für mod_auth_gssapi.
  4. <IfModule !mod_auth_gssapi.c>
        LoadModule auth_gssapi_module /usr/lib64/httpd/modules/mod_auth_gssapi.so
    </IfModule>
    <Directory "/placeholder">
        AuthType GSSAPI
        AuthName "Kerberos auth"
        GssapiAllowedMech krb5
        GssapiBasicAuth On
        GssapiCredStore keytab:<PATH TO KEYTAB>
        GssapiLocalName On
        BrowserMatch Windows gssapi-no-negotiate
        Require valid-user
    </Directory>

    Hinweis: Gewährleisten BEISPIEL.COM sollte in Großbuchstaben geschrieben werden.
    Im Folgenden sind die Komponenten der obigen Konfiguration aufgeführt:

    EXAMPLE.COM: Dies ist die Active Directory-Domäne, wie in krb5.conf konfiguriert.
    PFAD ZUM KEYTAB: Zugänglicher Pfad zum Keytab auf diesem Server. (etc/spn.keytab)
  • Nach dieser Konfiguration muss Apache neu gestartet werden, damit die Änderungen wirksam werden.

Sobald Sie mit der Konfiguration der Einstellungen fertig sind, Klicke hier um Browser für Kerberos SSO zu konfigurieren.

Um Ihre Kerberos/NTLM-SSO-Konfiguration zu testen, klicken Sie hier.

Bitte beheben Sie Fehler klicken Sie hier.

Kerberos SSO auf RHEL/CentOS

Voraussetzungen für Dienstkonto:

  1. Für das Kontokennwort sollte ein Kennwort festgelegt sein Nicht abgelaufen.
  2. Dem Konto sollte für die Delegierung vertraut werden.

Wenn Sie kein Dienstkonto haben, erstellen Sie ein neues Benutzerkonto (Dienstkonto) in Active Directory-Benutzer und -Computer. Stellen Sie sicher, dass diesem Objekt keine SPN-Einträge zugewiesen sind (das Attribut „servicePrincipalName“ sollte leer sein).


Miniorange-Symbol

Kerberos/NTLM Single Sign-On (SSO)

Von miniOrange

Mehr erfahren

Schritt 1: Erstellen Sie eine Keytab-Datei auf dem AD-Domänencontroller.

  • Öffnen Sie auf dem AD-Domänencontroller die Eingabeaufforderung im Administratormodus und führen Sie den folgenden Befehl aus, um die Keytab-Datei zu erstellen.
  • ktpass -princ HTTP/<Server Host Name>@EXAMPLE.COM -mapuser <username@EXAMPLE.COM>
    -pass password -ptype KRB5_NT_PRINCIPAL -out <PATH>\spn.keytab

    Anmerkungen: Gewährleisten BEISPIEL.COM sollte in Großbuchstaben geschrieben werden. Das Kerberos-Prinzip unterscheidet zwischen Groß- und Kleinschreibung. Bitte prüfen Sie, ob es Unterschiede in der Groß-/Kleinschreibung gibt, bevor Sie den Keytab-Befehl ausführen.

  • Im Folgenden sind die Komponenten des Befehls aufgeführt.
Server-Hostname: Dies ist der Hostname der auf dem Server gehosteten Site.
EXAMPLE.COM: Es handelt sich um den Active Directory-Domänennamen.
Benutzername: Es handelt sich um ein Dienstkonto im Active Directory.
Passwort: Es handelt sich um das Passwort des oben verwendeten Dienstkontos.
Pfad: Pfad zu einem lokalen Speicherort, an dem die Keytab-Datei gespeichert wird. (C:\Temp\spn.keytab)

Hinweis: Der obige Befehl erstellt eine Keytab-Datei. Es muss auf dem Client-Server platziert werden, auf dem Ihre WordPress-Site gehostet wird. Der Benutzer, der Apache ausführt, sollte vollen Zugriff auf diese Datei haben. Der Benutzer sollte die Berechtigung für die Keytab-Datei haben.



  • Kopieren Sie die Keytab Datei vom AD-Domänencontroller auf den auf Apache gehosteten Webserver übertragen.
  • Erteilen Sie der Kerberos-Keytab-Datei die Berechtigung:
  • chmod 644 etc/httpd/spn.keytab

Schritt 2: Kerberos-Clientbibliotheken auf dem Webserver installieren.

  • Verwenden Sie den folgenden Befehl auf Ihrem Terminal, um die Kerberos-Clientbibliotheken zu installieren.
  • yum install -y krb5-workstation krb5-devel krb5-libs mod_auth_gssapi mod_session

    Hinweis: In den neuesten Versionen von CentOS ist die mod_auth_kerb wurde veraltet und durch ersetzt mod_auth_gssapi.


Schritt 3: Module für Apache installieren.

    1: Installieren Sie das Modul mod_auth_kerb für Apache.
  • Verwenden Sie den folgenden Befehl, um das auth_kerb-Modul für Apache auf Red Hat-basierten Systemen zu installieren. (Für die neuesten Versionen von RHEL verwenden Sie das Modul mod-auth-gssapi.)
  • yum install mod_auth_kerb

Or


    2: Installieren Sie das Modul mod-auth-gssapi für Apache.
  • Verwenden Sie den folgenden Befehl, um das Modul libapache2-mod-auth-gssapi für Apache auf Debian-basierten Systemen zu installieren:
  • sudo apt-get -y install libapache2-mod-auth-gssapi

Schritt 4: Konfigurieren Sie die Active Directory-Domäne in der Kerberos-Konfigurationsdatei.

  • Öffnen und bearbeiten Sie die krb5.conf Datei.
    Der Pfad zur krb5.conf-Datei für RHEL ist C:/etc/krb5.conf
  • Fügen Sie den folgenden Konfigurationsausschnitt hinzu krb5.conf Datei unter dem genannten Abschnitt:
  • Navigieren Sie zu der [libdefaults] Abschnitt und fügen Sie Folgendes hinzu:
  • default_realm = EXAMPLE.COM
    dns_lookup_realm = true
    dns_lookup_kdc = true
  • Navigieren Sie zu der [Bereiche] Abschnitt und fügen Sie Folgendes hinzu:
  • EXAMPLE.COM = {
    kdc = <DNS entries pointing to your primary domain controller>: Port
    admin_server = <DNS entries pointing to your primary domain controller>: Port
    }
  • Navigieren Sie zu der [domain_realm] Abschnitt und fügen Sie Folgendes hinzu:
  • .example.com = EXAMPLE.COM
    example.com = EXAMPLE.COM

    Hinweis: Ersetzen Sie die IP/DNS des AD-DOMAIN-CONTROLLERS mit Ihrer IP/DNS-Adresse. Sicherstellen BEISPIEL.COM sollte in Großbuchstaben geschrieben werden.
    Ersetzen Sie die BEISPIEL.COM mit dem Active Directory-Domänennamen.
    Und stellen Sie sicher, dass der Port 88 auf dem AD-Domänencontroller von diesem Server aus zugänglich ist.

  • Speichern Sie die Datei.

Schritt 5: Konfigurieren Sie Kerberos SSO für das Site-Verzeichnis

  • Bearbeiten Sie die auferlegte Host-Konfigurationsdatei /etc/httpd/conf/httpd.conf
  • Fügen Sie den folgenden Abschnitt im Verzeichnis der Site hinzu für mod_auth_kerb.
  • <Directory "/placeholder">
        AuthType Kerberos
        KrbAuthRealms EXAMPLE.COM
        KrbServiceName HTTP/<Server Host Name>
        Krb5Keytab <PATH TO KEYTAB>
        KrbMethodNegotiate on
        KrbMethodK5Passwd on
        require valid-user
    </Directory>

    Or


  • Fügen Sie den folgenden Abschnitt im Verzeichnis der Site hinzu für mod_auth_gssapi.
  • LoadModule auth_gssapi_module modules/mod_auth_gssapi.so
    <Directory "/placeholder">
        AuthType GSSAPI
        AuthName "Kerberos auth"
        GssapiBasicAuth On
        GssapiCredStore keytab:<PATH TO KEYTAB>
        GssapiLocalName On
        Require valid-user
    </Directory>

    Im Folgenden sind die Komponenten der obigen Konfiguration aufgeführt:

    PFAD ZUM KEYTAB Zugänglicher Pfad zum Keytab auf diesem Server. (etc/apache2/spn.keytab)
    „/Platzhalter“ Pfad zum Dokumentstamm
  • Nach dieser Konfiguration muss Apache neu gestartet werden, damit die Änderungen wirksam werden.

Sobald Sie mit der Konfiguration der Einstellungen fertig sind, Klicke hier um Browser für Kerberos SSO zu konfigurieren.

Um Ihre Kerberos/NTLM-SSO-Konfiguration zu testen, klicken Sie hier.

Bitte beheben Sie Fehler klicken Sie hier.

SSO mit Windows-Authentifizierung auf IIS-Server


  • Öffnen Sie die Eingabeaufforderung im Administratormodus.
  • Führen Sie den folgenden Befehl aus, um den Dienstprinzipalnamen (SPN) für das Dienstkonto hinzuzufügen.
  • Hinweis: Angenommen, die Website muss unter http://machinename und http://machinename.domain.com antworten. Diese Adressen müssen wir im SPN-Attribut des Dienstkontos angeben.

    Setspn -S http/<computer-name>.<domain-name> <domain-user-account>

    Beispiel: C:\Benutzer\Administrator> setspn -S HTTP/Maschinenname.domain.com service_account

    Hinweis: „machinename.domain.com“ ist hier der Computername. Stellen Sie sicher, dass es auf dem Windows-Server auflösbar ist, auf dem der AD-Dienst ausgeführt wird.


  • Überprüfen Sie, ob dies richtig eingestellt wurde, indem Sie den folgenden Befehl ausführen:
  • setspn -l domain or service_account

    Beispiel: C:\Benutzer\Administrator> setspn -l service_account oder C:\Benutzer\Administrator> setspn -l domain_name

    Legen Sie den Service Principal Name (SPN)-Eintrag für die Kerberos-SSO-Authentifizierung auf dem Windows IIS-Server fest
  • Das Ergebnis sollte aufgelistet sein http/maschinenname.domain.com

  • Öffnen Sie Active Directory-Benutzer und -Computer und wählen Sie im oberen Menü die Option aus Ansicht >> Erweiterte Funktionen.
  • Öffnen Sie das Dienstkonto und gehen Sie zu Attributeditor Navigieren Sie zur Registerkarte „ servicePrincipalName, um den SPN-Eintrag zu überprüfen.
  • Navigieren Sie zu der Delegation Tab.
  • Auswählen Vertrauen Sie diesem Benutzer für die Delegierung an einen beliebigen Dienst (nur Kerberos).
  • Kerberos-Dienstdelegierung für Kerberos-Single-Sign-On für RHEL-, CentOS-, Ubuntu- und Fedora-Systeme
  • Klicken Sie auf Kostenlos erhalten und dann auf Installieren. Jetzt bewerben.
  • Öffnen Sie den Microsoft Store auf Ihrem Windows-PC. IIS-Manager und klicken Sie auf die Website, für die Sie die Windows-Authentifizierung aktivieren möchten.
  • Doppelklicken Sie auf Authentifizierung.
  • Windows IIS-Manager zum Konfigurieren der Windows-Authentifizierungseinstellungen für Websites, um Kerberos SSO zu aktivieren
  • Im Abschnitt „Authentifizierung“ sehen Sie, dass standardmäßig nur die anonyme Authentifizierung aktiviert ist. IIS versucht immer, eine anonyme Authentifizierung durchzuführen. Deaktivieren Sie daher die anonyme Authentifizierung und aktivieren Sie die Windows-Authentifizierung.
  • Aktivieren Sie die Windows-Authentifizierung über den Windows IIS-Manager für Kerberos SSO in der konfigurierten Anwendung
  • Klicken Sie mit der rechten Maustaste auf die Windows-Authentifizierung und dann auf die Anbieter.
  • Liste der Windows-Authentifizierungsanbieter für den Internetinformationsdienst IIS-Manager
  • Das folgende Fenster wird angezeigt. Stellen Sie sicher, dass „Verhandeln“ in der Anbieterliste ganz oben steht.
  • Der Windows IIS-Manager ermöglicht dem Windows-Authentifizierungsanbieter die einmalige Anmeldung (SSO) mit dem Kerberos-Protokoll

    Hinweis: Standardmäßig stehen zwei Anbieter zur Verfügung: Negotiate und NTLM. Negotiate ist ein Container, der Kerberos als erste Authentifizierungsmethode verwendet. Wenn die Authentifizierung fehlschlägt, wird NTLM verwendet. Daher ist es erforderlich, dass Negotiate in der Liste der Anbieter an erster Stelle steht.


  • Klicken Sie auf Ok , um das Fenster zu schließen.
  • Um den IIS-Anwendungspool so zu konfigurieren, dass er über das erstellte SPN-Konto gestartet wird, klicken Sie auf „Anwendungspools“, um das Fenster „Anwendungspools“ zu öffnen.
  • Klicken Sie mit der rechten Maustaste auf die Domäne und klicken Sie in der Liste auf „Erweiterte Einstellungen“.
  • Erweiterte Einstellungen der Windows Internet Information Service (IIS)-Manager-Anwendungspool-Site zum Aktivieren von Kerberos SSO
  • Klicken Sie im Fenster „Erweiterte Einstellungen“ unter „Prozessmodell“ auf die Identität.
  • Konfigurieren Sie die Identität über die erweiterten Einstellungen des Windows IIS-Manager-Anwendungspools, um Kerberos SSO zu aktivieren
  • Wählen Sie in der Anwendungspoolidentität die Option „Benutzerdefiniertes Konto“ aus und klicken Sie auf die Schaltfläche „Festlegen“, um die Identität festzulegen.
  • Ändern Sie es von ApplicationPoolIdentity in \ .
  • Beispiel:domain.com\service_account

    Kerberos SSO unter Windows konfiguriert ein benutzerdefiniertes Konto über die Identitätseinstellungen des IIS-Manager-Anwendungspools
  • Gehen Sie zum Konfigurationseditor.
  • Gehen Sie zum Konfigurationseditor des Windows IIS-Managers, um die Kerberos-/NTLM-Authentifizierung auf der Website zu aktivieren
  • Wählen Sie im Dropdown-Menü system.webServer > Sicherheit > Authentifizierung > WindowsAuthentication aus.
  • Konfigurieren Sie useAppPoolCredentials, um die Kerberos-Authentifizierung für den Windows IIS-Server zu konfigurieren
  • Ändern Sie „useAppPoolCredentials“ in „True“. und useKernelMode auf False.
  • Hinweis: Wenn Sie „useAppPoolCredentials“ auf „True“ setzen, bedeutet dies, dass wir IIS erlauben, das Domänenkonto zum Entschlüsseln von Kerberos-Tickets von den Clients zu verwenden.

  • Klicken Sie auf Kostenlos erhalten und dann auf Installieren. Nehmen.
  • Starten Sie den IIS-Server neu.

  • Sie können überprüfen, ob auf der Website die Kerberos-Authentifizierung verwendet wird, indem Sie den HTTP-Verkehr mit Fiddler überwachen.
  • Starten Sie den Fiddler und starten Sie den Browser mit der gewünschten Website. Suchen Sie die Zeile für den Website-Zugriff auf der linken Seite des Fensters. Wählen Sie auf der rechten Seite des Fensters die Registerkarte „Inspizieren“ aus. Dass Kerberos zur Authentifizierung auf der IIS-Website verwendet wurde, geht aus der Zeile „Authorization Header (Negotiate) scheint ein Kerberos-Ticket zu enthalten“ hervor.

    Das Kerberos-Ticket ist während des Kerberos-SSO-Prozesses im Autorisierungsheader enthalten

Sobald Sie mit der Konfiguration der Einstellungen fertig sind, Klicke hier um Browser für Kerberos SSO zu konfigurieren.

Um Ihre Kerberos/NTLM-SSO-Konfiguration zu testen, klicken Sie hier.

Bitte beheben Sie Fehler klicken Sie hier.

SSO mit Apache auf Windows Xampp Server


  • Öffnen Sie die Eingabeaufforderung im Administratormodus.
  • Führen Sie den folgenden Befehl aus, um den Dienstprinzipalnamen (SPN) für das Dienstkonto hinzuzufügen.
  • Setspn -s http/<computer-name>.<domain-name> <domain-user-account>

    Beispiel: C:\Benutzer\Administrator> setspn -S HTTP/Maschinenname.domain.com service_account

    Hinweis: „machinename.domain.com“ ist hier der Computername. Stellen Sie sicher, dass es auf dem Windows-Server auflösbar ist, auf dem der AD-Dienst ausgeführt wird.

  • Überprüfen Sie, ob dies richtig eingestellt wurde, indem Sie den folgenden Befehl ausführen:
  • setspn -l domain\service_account
  • Das Ergebnis sollte aufgelistet sein http/maschinenname.domain.com
  • Öffnen Sie Active Directory-Benutzer und -Computer und wählen Sie im oberen Menü die Option aus Ansicht >> Erweiterte Funktionen.
  • Öffnen Sie das Dienstkonto und gehen Sie zu Attributeditor Navigieren Sie zur Registerkarte „ servicePrincipalName, um den SPN-Eintrag zu überprüfen.
  • Navigieren Sie zu der Delegation Tab.
  • Auswählen Vertrauen Sie diesem Benutzer für die Delegierung an einen beliebigen Dienst (nur Kerberos).
  • Kerberos für die Windows-Authentifizierung auf dem IIS-Server
  • Klicken Sie auf Kostenlos erhalten und dann auf Installieren. Jetzt bewerben.

  • Mehr Info um das Apache-Modul herunterzuladen.
  • Kopieren Sie die mod_authnz_sspi.so für Apache24 > Module Ordner und legen Sie es im Verzeichnis „modules“ (C:\xampp\apache\modules) ab.
  • Kopieren Sie die sspipkgs.exe Datei von Apache24 -> bin Ordner und platzieren Sie ihn im bin-Ordner Ihres Xampp-Apache-Ordners (.....\xampp\apache\bin) auf Ihrem Webserver.
  • Öffnen Sie httpd.conf (...\xampp\apache\conf) und platzieren Sie die folgende Codezeile im Abschnitt LoadModule.
  • LoadModule authnz_sspi_module modules/mod_authnz_sspi.so
  • Stellen Sie sicher, dass die folgenden Module unkommentiert sind:
  • LoadModule authn_core_module modules/mod_authn_core.so
    LoadModule authz_core_module modules/mod_authz_core.so

  • Stellen Sie außerdem sicher, dass die LDAP-Erweiterung aktiviert ist.
  • Öffnen Sie den Microsoft Store auf Ihrem Windows-PC. httpd.conf Datei aus (.....\xampp\Apache\conf\httpd.conf).
    Gehen Sie zu und fügen Sie die folgenden Zeilen nach #Require all grants ein.
  • <Directory "...../xampp/htdocs">
    ......
    ......
    #Require all granted
    AllowOverride None Options None
    AuthType SSPI
    SSPIAuth On
    SSPIAuthoritative On
    Require valid-user
    </Directory>

  • Starten Sie Ihren Apache-Server neu.

Sobald Sie mit der Konfiguration der Einstellungen fertig sind, Klicke hier um Browser für Kerberos SSO zu konfigurieren.

Um Ihre Kerberos/NTLM-SSO-Konfiguration zu testen, klicken Sie hier.

Bitte beheben Sie Fehler klicken Sie hier.

Konfigurieren Sie Browser für Kerberos SSO


Die clientseitige Konfiguration ermöglicht es dem jeweiligen Browser, SPNEGO zu verwenden, um die Kerberos-Authentifizierung für den Browser auszuhandeln. Sie müssen sicherstellen, dass der Browser auf dem System eines Endbenutzers für die Unterstützung der Kerberos-Authentifizierung konfiguriert ist.


Allgemeine Kerberos-SSO-Konfiguration für alle Browser


  • Gehen Sie zur Systemsteuerung und klicken Sie auf Netzwerk und Internet >> Internetoptionen.
  • Dadurch wird ein Internet-Eigenschaftenfenster geöffnet. Klicke auf Sicherheit >> Lokales Intranet >> Websites.
  • Konfigurieren Sie Browser für die Kerberos-Authentifizierung mit Internetoptionen

  • Danach klicken Sie auf die Schaltfläche Schaltfläche "Erweitert".
  • Konfigurieren Sie erweiterte Einstellungen über die Internetoptionen für Kerberos SSO in Chrome und Internet Explorer

  • Im Fügen Sie diese Website zur Zone hinzu Fügen Sie im Abschnitt die Website-URL hinzu, auf der Sie sich mit SSO anmelden möchten.
  • Konfigurieren Sie die Website in der Intranetzone über die Internetoptionen für Kerberos SSO
  • Klicken Sie auf Kostenlos erhalten und dann auf Installieren. Extras > Internetoptionen > Sicherheit > Lokales Intranet > Stufe anpassen.
  • Scrollen Sie nach unten zu den Benutzerauthentifizierungsoptionen und wählen Sie aus Automatische Anmeldung nur in der Intranetzone.
  • Automatische Anmeldung an der Intranetzone mithilfe des Kerberos-Authentifizierungsprotokolls
  • Klicken Sie auf Ok Klicken Sie auf die Schaltfläche und starten Sie dann Ihren Browser neu.


Sobald Sie mit den oben genannten Einstellungen fertig sind, müssen Sie die Browsereinstellungen für Internet Explorer, Google Chrome und Apple Safari nicht mehr konfigurieren.


1. Internet Explorer
2. Google Chrome
3. Mozilla Firefox
4. Apple Safari


Internet Explorer

Standardmäßig gelten die allgemeinen Browserkonfigurationseinstellungen. Für den Internet Explorer sind keine weiteren zusätzlichen Einstellungen erforderlich.



Google Chrome

Standardmäßig gelten die allgemeinen Browser-Konfigurationseinstellungen, für Google Chrome sind keine weiteren zusätzlichen Einstellungen erforderlich.



Mozilla Firefox

  • Öffnen Sie den Mozilla Firefox-Browser und geben Sie ein about: config in der Adressleiste.
  • Suchen Sie nach HEIF-Bilderweiterungen. network.negotiate-auth.trusted-uris Wählen Sie den Präferenznamen aus und klicken Sie auf Bearbeiten. Geben Sie den Hostnamen oder die Domäne des Webservers ein, der durch Kerberos HTTP SPNEGO geschützt ist. Geben Sie mehrere Domänen und Hostnamen durch Komma getrennt an.
  • Konfigurieren Sie Mozilla Firefox für Kerberos SSO (Single Sign-On).
  • Suchen Sie nach HEIF-Bilderweiterungen. network.automatic-ntlm-auth.trusted-uris Geben Sie den Präferenznamen ein und klicken Sie auf Bearbeiten. Geben Sie den Hostnamen oder die Domäne des Webservers ein, der durch Kerberos HTTP SPNEGO geschützt ist. Geben Sie mehrere Domänen und Hostnamen durch Komma getrennt an.
  • Konfigurieren Sie die Mozilla Firefox-Einstellungen für die Kerberos-Authentifizierung
  • Klicken Sie auf Kostenlos erhalten und dann auf Installieren. OK und starten Sie dann Ihren Browser neu.


Apple Safari

  • Safari unter Windows unterstützt SPNEGO ohne weitere Konfiguration. Es unterstützt sowohl Kerberos als auch NTLM als Submechanismus von SPENGO.

Testen Sie Ihre Kerberos/NTLM-SSO-Konfiguration


Zeitsynchronization

Das Kerberos-Protokoll erfordert, dass die Uhrzeiten von Client und Server übereinstimmen: Wenn die Systemuhr des Clients nicht mit der des Servers übereinstimmt, schlägt die Authentifizierung fehl. Die einfachste Möglichkeit, die Systemuhren zu synchronisieren, ist die Verwendung eines Network Time Protocol (NTP)-Servers.


Mit Befehlen überprüfen.

Um Ihre Keytab- und Kerberos-Konfiguration zu überprüfen, können Sie die folgenden Befehle ausführen:

  1. Klist
  2. Der Befehl klist zeigt den Inhalt eines Caches oder einer Schlüsseltabelle für Kerberos-Anmeldeinformationen an. Mit diesem Befehl können Sie überprüfen, ob Sie ein gültiges Ticket haben oder nicht.

  3. klist -t -k etc/apache2/spn.keytab
  4. Zum Auflisten aller Einträge in der Schlüsseltabelle etc/apache2/spn.keytab mit Zeitstempeln.

  5. klist -ek /etc/apache2/spn.keytab
  6. Zeigt den Verschlüsselungstyp für den Sitzungsschlüssel und das Ticket an und listet die Einträge in einer Schlüsseltabelle auf.

  7. kinit -V -kt /etc/apache2/spn.keytab -p HTTPS/webserver.yourdomain.com@YOURDOMAIN.COM
  8. Überprüfen Sie die Kerberos-Authentifizierung mit der Keytab-Datei.

  9. kdestroy -A
  10. Mit diesem Befehl können Sie unter Linux jedes Kerberos-Token auf Ihrem lokalen Computer zurücksetzen. Der Befehl zerstört Ihr vorheriges Kerberos-Ticket.

  11. Klist-Bereinigung
  12. Mit diesem Befehl können Sie unter Windows jedes Kerberos-Token auf Ihrem lokalen Computer zurücksetzen. Der Befehl zerstört Ihr vorheriges Kerberos-Ticket.


Testkonfiguration.

  • Um die SSO-Konfiguration zu testen, erstellen Sie eine test.php-Datei in Ihrem WordPress-Stammverzeichnis.
    Geben Sie die folgende Zeile ein:
  • <?php
    var_dump($_SERVER);
    ?>
  • Speichern Sie die Datei und greifen Sie im Webbrowser darauf zu. Sie werden das sehen $_SERVER-Inhalt.
  • Suchen Sie nach HEIF-Bilderweiterungen. „REMOTE_USER“ und es sollte den aktuell angemeldeten Benutzernamen enthalten.
  • Hinweis: Bitte entfernen Sie die Datei test.php, nachdem Sie Ihre Konfiguration überprüft haben. Da es einige wertvolle Informationen enthält.


Kerberos-Authentifizierung über mehrere Domänen hinweg


  • Erstellen Sie separate Keytabs für jede Domäne und führen Sie sie mit dem ktutil-Tool zusammen:
  • ktutil
    ktutil: read_kt <keytab_filename_1>
    ktutil: read_kt <keytab_filename_2>
    ktutil: read_kt <keytab_filename_3>
    ktutil: write_kt spn.keytab
    ktutil: quit

  • Überprüfen Sie die Zusammenführung mit dem folgenden Befehl:
  • klist -k spn.keytab
  • krb5.conf konfigurieren:
    Die Datei krb5.conf enthält Kerberos-Konfigurationsinformationen, darunter KDC- und Admin-Server für einen oder mehrere Kerberos-Bereiche, Standardwerte für den aktuellen Bereich und Zuordnungen von Hostnamen zu Kerberos-Bereichen. Bei mehreren Domänen sollte die Datei krb5.conf mit Informationen zu verschiedenen Domänen/Domänenbereichen aktualisiert werden, damit die Authentifizierung funktioniert.

Problemlösung


Dies sind die häufigsten Fehlermeldungen:

    kinit: Pre-authentication failed: Invalid argument while getting initial credentials
  • Der RC4-Verschlüsselungstyp, der in AD-Umgebungen immer noch häufig verwendet wird, in RHEL-8.3 jedoch bereits standardmäßig deaktiviert ist. Sie können sich auf das folgende Beispiel beziehen, um Ihrer Keytab-Datei einen Verschlüsselungstyp hinzuzufügen.
  • Beispiel:
    ktutil
    addent -password -p HTTP/<Server Host Name>@EXAMPLE.COM -k 1 -e aes256-cts-hmac-sha1-96
    wkt spn.keytab.

  • Unspecified GSS failure. Minor code may provide more information (Clock skew too great)
    or
    kinit: krb5_get_init_creds: Too large time skew
  • Kerberos ist sehr zeitkritisch. Stellen Sie sicher, dass die Uhren auf den Hosts für Active Directory und den Webserver identisch sind. Richten Sie einen Ihrer Domänencontroller als NTP-Server für Ihre Client-Computer ein.

  • gss_acquire_cred() failed: Unspecified GSS failure. Minor code may provide more information (, Permission denied)
  • Falsche Dateisystemberechtigungen für /etc/apache2/spn.keytab, dh für den Linux-Benutzer des Webservers nicht lesbar.
  • Um Dateisystemberechtigungen zu ändern, verwenden Sie chmod 644 /etc/apache2/spn.keytab

  • gss_acquire_cred() failed: Unspecified GSS failure. Minor code may provide more information (, Key table entry not found).
  • Fehlender Dienstprinzipal (möglicherweise HTTP/webserver.yourdomain.com@YOURDOMAIN.COM) in /etc/apache2/spn.keytab.

  • Warning: received token seems to be NTLM, which isn't supported by the Kerberos module. Check your IE configuration. gss_accept_sec_context() failed: An unsupported mechanism was requested (, Unknown error)
  • Die Website befindet sich nicht in der Zone „Lokales Intranet“ im IE oder der IE ist falsch konfiguriert, siehe Authentifizierung. Verwendet NTLM anstelle von Kerberos.

  • gss_accept_sec_context() failed: Unspecified GSS failure. Minor code may provide more information (, ).
  • Falsches KVNO- oder Maschinenkennwort in etc/apache2/spn.keytab. Erstellen Sie die Schlüsseltabelle mit den richtigen Informationen neu.
  • Problem mit dem lokalen Kerberos-Ticket-Cache auf Ihrer Workstation. Verwenden Sie Kerbtray.exe, um den Ticket-Cache zu leeren und die Website erneut im IE zu öffnen.

  • kinit: KDC has no support for encryption type while getting initial credentials
  • Ändern Sie den Standardverschlüsselungstyp im Abschnitt libdefaults der Datei /etc/apache2/krb5.conf. Fügen Sie die default_tgs_enctypes und default_tkt_enctypes zu Ihrer Konfiguration hinzu.
  • [libdefaults]
    default_tgs_enctypes = arcfour-hmac-md5 des-cbc-crc des-cbc-md5
    default_tkt_enctypes = arcfour-hmac-md5 des-cbc-crc des-cbc-md5

    kinit: krb5_get_init_creds: Error from KDC: CLIENT EXPIRED
    or
    kinit: Client's entry in database has expired while getting initial credentials
  • Ihr Kerberos-Konto ist nicht mehr aktiv. Die Zugangsdaten für das Konto müssen erneuert werden.

  • kinit: krb5_cc_get_principal: No credentials cache file found
    or
    kinit: krb5_get_init_creds: Error from KDC: CLIENT_NOT_FOUND
  • Beim Ausführen des Befehls kinit wurde die falsche Domäne als Ziel ausgewählt. Überprüfen Sie den Domänennamen. Er sollte in Großbuchstaben geschrieben sein: EXAMPLE.COM

  • kinit : Cannot find KDC for requested realm while getting initial credentials
  • Die Datei /etc/apache2/krb5.conf enthält nicht den Active Directory-Domänennamen (.EXAMPLE.COM).

  • kinit: Preauthentication failed while getting initial credentials
  • Verursacht durch versehentliche Eingabe des Kerberos-Passworts. Bitte versuche es erneut. Oder aufgrund der Uhr Ihres Systems. Stellen Sie sicher, dass der Datumsbefehl eine auf 5 Minuten genaue Zeit zurückgibt.

  • kinit: Client not found in Kerberos database while getting initial credentials
  • Ihr Kerberos-Prinzipal kann sich von Ihrem Benutzernamen auf Ihrem lokalen System unterscheiden.

  • kinit: Client's entry in database has expired
  • Sie müssen Ihr Kerberos-Passwort ändern.

Hallo!

Brauchen Sie Hilfe? Wir sind hier!

Support
Kontaktieren Sie den miniOrange-Support
Erfolg

Vielen Dank für Ihre Anfrage.

Wenn Sie innerhalb von 24 Stunden nichts von uns hören, können Sie gerne eine Folge-E-Mail an senden info@xecurify.com