Blog

Einrichten von realmübergreifendem Vertrauen zwischen Active Directory und Kerberos KDC

Aktualisiert Oktober 22, 2025
4 Minuten

Was müssen Sie konfigurieren, wenn Sie realmübergreifendes Vertrauen zwischen Kerberos KDC und Active Directory einrichten.

Dies ist der zweite Teil der Blogserie. Es handelt sich dabei um einen "Hilfs-Blog", in dem erklärt wird, wie Sie realmübergreifendes Vertrauen zwischen einem Active Directory und einem Kerberos KDC einrichten. Der Rest der Serie enthält:

  • was ist Kerberos und wie richtet man einen Kerberos-Server ein: Kerberos-Grundlagen und die Installation eines KDC
  • wie man realmübergreifendes Vertrauen zwischen einem Active Directory und dem KDC-Server einrichtet -- dieser Blog
  • wie Sie Kerberos mit Cloudera Manager und Hadoop verwenden: (Einrichten der Kerberos-Authentifizierung für Hadoop mit Cloudera Manager)

Realmübergreifendes Vertrauen beschreibt Situationen, in denen Clients (in der Regel Benutzer) eines Realms Kerberos verwenden, um sich bei Diensten (z. B. Serverprozessen) zu authentifizieren, die zu einem anderen Realm gehören. Nehmen wir an, dass Clients in Realm A die Dienste in Realm B nutzen möchten. In diesem Fall muss der Administrator konfigurieren, dass Realm B dem Realm A vertraut, indem er einen Schlüssel zwischen den beiden beteiligten KDCs (der beiden verschiedenen Realms) austauscht. Im obigen Beispiel hätte der Schlüssel die Form krbtgt/B@A und sollte zu beiden KDCs mit demselben Schlüssel hinzugefügt werden. Standardmäßig ist Cross-Realm Trust unidirektional, d.h. wenn Sie möchten, dass auch Benutzer aus dem Bereich B auf Dienste im Bereich A zugreifen können, müssen Sie einen weiteren Schlüssel (krbtgtgt@A/B) hinzufügen. Mehr über Realm-übergreifendes Vertrauen: Übergreifende Authentifizierung .

Glücklicherweise gibt es einen guten Cloudera-Beitrag darüber, wie wir einen lokalen Kerberos-KDC so konfigurieren können, dass er einem Active Directory vertraut (siehe hier). Dieser Beitrag fasst die gleichen Schritte zusammen.

Konfiguration im Active Directory

Wir hatten einen Windows 2008 Active Directory-Server installiert.

  1. Verwenden Sie ksetup, um das Kerberos-Protokoll und das Key Distribution Center (KDC) einzurichten und zu pflegen, um Kerberos-Realms zu unterstützen, die nicht gleichzeitig Windows-Domänen sind. Mit dem folgenden ksetup-Befehl wird Ihr Computer so konfiguriert, dass er den GDD.NL-Realm erkennt: ksetup /addkdc IHR-LOKALES-REALM.FIRMA.COM kdc-server-hostname.cluster.firma.firma.com In unserem Fall sieht dieser Befehl wie folgt aus: ksetup /addkdc GDD.NL host1.meinedomain.nl
  2. Verwenden Sie netdom zur Verwaltung des Vertrauens zwischen Domänen netdom trust YOUR-LOCAL-REALM.COMPANY.COM /Domain:AD-REALM.COMPANY.COM /add /realm /passwordt:HINWEIS: Ja, es handelt sich um passwordt. Damit geben Sie ein neues Vertrauenskennwort an. Dieser Parameter ist nur gültig, wenn Sie den Parameter /add angeben und nur, wenn eine der von Ihnen angegebenen Domänen eine Nicht-Windows-Kerberos-Domäne ist. Sie legen das Vertrauenskennwort nur für die Windows-Domäne fest, d.h. Sie benötigen keine Anmeldedaten für die Nicht-Windows-Domäne. In unserem Fall: netdom trust GDD.NL /Domain:WIN_GDD.NL /add /realm /passwordt:
  3. Stellen Sie den richtigen Verschlüsselungstyp ein ksetup /SetEncTypeAttr YOUR-LOCAL-REALM.COMPANY.COM Dieser Befehl sieht so aus: ksetup /SetEncTypeAttr GDD.NL AES256-CTS-HMAC-SHA1-96 AES128-CTS-HMAC-SHA1-96 RC4-HMAC-MD5 DES-CBC-MD5 DES-CBC-CRC

Konfiguration auf dem Kerberos-Server

Fügen Sie einen realmübergreifenden krbtgt-Prinzipal zum Kerberos-KDC hinzu. Um diesen hinzuzufügen, müssen Sie kadmin oder kadmin.local verwenden. Verwenden Sie dasselbe Passwort, das Sie im Befehl netdom auf dem Active Directory Server verwendet haben.

kadmin: addprinc -e "" krbtgt/YOUR-LOCAL-REALM.COMPANY.COM@AD-REALM.COMPANY.COM

In unserem Fall sieht dieser Befehl wie folgt aus:

kadmin: addprinc -e "aes256-cts:normal aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal" krbtgt/GDD.NL@WIN_GDD.NL

Konfiguration auf allen Knoten des Clusters

Überprüfen Sie die Kerberos-Datei /etc/krb5.conf. Diese sollte beide Realms für alle Clusterknoten enthalten. Der Standard-Realm und der Domänen-Realm sollten als MIT-Kerberos-Realm eingestellt bleiben, der für den Cluster lokal ist. (also GDD.NL)

[realms] WIN_GDD.NL = { kdc = host1.mywindomain.nl:88 admin_server = host1.mywindomain:749 } GDD.NL = { kdc = host1.mydomain.nl:88 admin_server = host1.mydomain.nl:749 default_domain = mydomain.nl }

Um die Principal-Namen aus dem Active Directory-Bereich ordnungsgemäß in lokale Namen in Hadoop zu übersetzen, müssen Sie die Einstellung hadoop.security.auth_to_local in der Datei core-site.xml auf allen Rechnern des Clusters konfigurieren. Ich brauchte diesen Teil nicht zu tun. Wenn Sie an den Details interessiert sind, empfehle ich Ihnen die Seite Configuring the Mapping from Kerberos Principals to Short Names für weitere Einzelheiten.

Testen Sie das realmübergreifende Vertrauen. Vergewissern Sie sich, dass winUser im Active Directory existiert. Wir sollten in der Lage sein, ein gültiges Zertifikat zu erhalten:

$ kinit -p winUser $ klist Ticket-Cache: FILE:/tmp/krb5cc_500 Standardprinzipal: winUser@GDD.NL

Gültig ab läuft aus Serviceprinzip 02/28/14 01:25:22 03/01/14 01:25:22 krbtgt/GDD.NL@WIN_GDD.NL erneuern bis 03/07/14 01:25:22

Bis zum nächsten Mal, wenn wir besprechen, wie Sie Cloudera Manager und Hadoop für die Verwendung von Kerberos konfigurieren.

Contact

Let’s discuss how we can support your journey.