Herstellen einer Verbindung von Azure Data Studio zu SQL Server über Kerberos

Azure Data Studio unterstützt das Herstellen der Verbindung mit SQL Server mithilfe von Kerberos.

Um die integrierte Authentifizierung (Windows-Authentifizierung) unter macOS oder Linux verwenden zu können, müssen Sie ein Kerberos-Ticket einrichten, mit dem Ihr aktueller Benutzer mit einem Windows-Domänenkonto verknüpft wird.

Voraussetzungen

Zunächst benötigen Sie Folgendes:

Überprüfen, ob SQL Server ein Kerberos-Setup aufweist

Melden Sie sich beim Hostcomputer von SQL Server an. Verwenden Sie an der Windows-Eingabeaufforderung setspn -L %COMPUTERNAME%, um alle SPNs für den Host aufzulisten. Überprüfen Sie, ob Einträge vorhanden sind, die mit MSSQLSvc/HostName.contoso.com beginnen. Diese Einträge bedeuten, dass SQL Server einen Dienstprinzipalnamen registriert hat und bereit ist, die Kerberos-Authentifizierung zu akzeptieren.

Falls Sie keinen Zugriff auf den Host der SQL Server-Instanz haben, können Sie von einem anderen Windows-Betriebssystem aus, das mit der gleichen Active Directory-Instanz verknüpft ist, den Befehl setspn -L <SQLSERVER_NETBIOS> verwenden, wobei <SQLSERVER_NETBIOS> der Computername des Hosts der SQL Server-Instanz ist.

Abrufen des Kerberos-Schlüsselverteilungscenters

Suchen Sie den Kerberos-KDC-Konfigurationswert (Key Distribution Center, Schlüsselverteilungscenter). Führen Sie den folgenden Befehl auf einem Windows-Computer aus, der mit Ihrer Active Directory-Domäne verknüpft ist:

Führen Sie nltest an der Befehlszeile aus, und ersetzen Sie „DOMAIN.CONTOSO.COM“ durch den Namen Ihrer Domäne.

nltest /dsgetdc:DOMAIN.CONTOSO.COM

Die Ausgabe ähnelt dem folgenden Beispiel:

DC: \\dc-33.domain.contoso.com
Address: \\2111:4444:2111:33:1111:ecff:ffff:3333
...
The command completed successfully

Kopieren Sie den DC-Namen, der der erforderliche KDC-Konfigurationswert ist. In diesem Fall lautet er „dc-33.domain.contoso.com“.

Verknüpfen Ihres Betriebssystems mit dem Active Directory-Domänencontroller

sudo apt-get install realmd krb5-user software-properties-common python-software-properties packagekit

Bearbeiten Sie die /etc/network/interfaces-Datei so, dass die IP-Adresse Ihres Active Directory-Domänencontrollers als dns-nameserver aufgeführt wird. Beispiel:

<...>
# The primary network interface
auto eth0
iface eth0 inet dhcp
dns-nameservers **<AD domain controller IP address>**
dns-search **<AD domain name>**

Hinweis

Die Netzwerkschnittstelle (eth0) kann für verschiedene Computer unterschiedlich sein. Um herauszufinden, welche Sie verwenden, führen Sie ifconfig aus, und kopieren Sie die Schnittstelle, die über eine IP-Adresse verfügt und Bytes übermittelt und empfangen hat.

Nachdem Sie diese Datei bearbeitet haben, sollten Sie den Netzwerkdienst neu starten:

sudo ifdown eth0 && sudo ifup eth0

Überprüfen Sie nun, ob die /etc/resolv.conf-Datei eine Zeile wie die folgende enthält:

nameserver **<AD domain controller IP address>**

Einbinden in die Active Directory-Domäne:

sudo realm join contoso.com -U 'user@CONTOSO.COM' -v

Folgende Ausgabe wird erwartet:

<...>
* Success

Testen des Ticket Granting Ticket-Abrufs

Rufen Sie ein Ticket Granting Ticket (TGT) aus dem KDC ab.

kinit username@DOMAIN.CONTOSO.COM

Zeigen Sie die verfügbaren Tickets mithilfe von klist an. Wenn kinit erfolgreich war, sollte ein Ticket angezeigt werden.

klist

Folgende Ausgabe wird erwartet:

krbtgt/DOMAIN.CONTOSO.COM@ DOMAIN.CONTOSO.COM.

Verbindungsherstellung mithilfe von Azure Data Studio

  1. Erstellen Sie ein neues Verbindungsprofil.

  2. Wählen Sie Windows-Authentifizierung als Authentifizierungstyp aus.

  3. Geben Sie für den Server einen vollqualifizierten Hostnamen im Format hostname.DOMAIN.CONTOSO.COM ein.

  4. Vervollständigen Sie das Verbindungsprofil, und klicken Sie auf Verbinden.

Nachdem die Verbindung erfolgreich hergestellt wurde, wird Ihr Server in der Randleiste SERVER angezeigt.