Connettere Azure Data Studio a SQL Server tramite Kerberos

Azure Data Studio supporta la connessione a SQL Server tramite Kerberos.

Per usare l'autenticazione integrata (autenticazione di Windows) in macOS o Linux, è necessario configurare un ticket Kerberos che collega l'utente corrente a un account di dominio di Windows.

Prerequisiti

Per iniziare, è necessario:

Verificare se SQL Server è configurato per Kerberos

Accedere al computer host di SQL Server. Al prompt dei comandi di Windows usare setspn -L %COMPUTERNAME% per elencare tutti i nomi SPN per l'host. Verificare che siano presenti voci che iniziano con MSSQLSvc/HostName.contoso.com. Queste voci indicano che SQL Server ha registrato un SPN ed è pronto ad accettare l'autenticazione Kerberos.

Se non si ha accesso all'host dell'istanza di SQL Server, da qualsiasi altro sistema operativo Windows aggiunto allo stesso dominio di Active Directory si può usare il comando setspn -L <SQLSERVER_NETBIOS>, dove <SQLSERVER_NETBIOS> è il nome computer dell'host dell'istanza di SQL Server.

Ottenere il Centro distribuzione chiavi Kerberos

Trovare il valore di configurazione del Centro distribuzione chiavi (KDC) Kerberos. Eseguire il comando seguente in un computer Windows aggiunto al dominio di Active Directory.

Eseguire nltest dalla riga di comando e sostituire "DOMAIN.CONTOSO.COM" con il nome di dominio.

nltest /dsgetdc:DOMAIN.CONTOSO.COM

L'output è simile al seguente esempio:

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

Copiare il nome del controller di dominio che è il valore di configurazione KDC richiesto. In questo caso, è dc-33.domain.contoso.com.

Aggiungere il sistema operativo al controller di dominio di Active Directory

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

Modificare il file /etc/network/interfaces in modo che l'indirizzo IP del controller di dominio di Active Directory sia elencato come dns-nameserver. Ad esempio:

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

Nota

L'interfaccia di rete (eth0) potrebbe variare per computer diversi. Per individuare quella in uso, eseguire ifconfig e copiare l'interfaccia che ha un indirizzo IP e ha trasmesso e ricevuto byte.

Dopo aver modificato il file, riavviare il servizio di rete:

sudo ifdown eth0 && sudo ifup eth0

Verificare ora che il file /etc/resolv.conf contenga una riga come la seguente:

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

Aggiungere al dominio di Active Directory:

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

Ecco l'output previsto:

<...>
* Success

Testare il recupero del ticket di concessione ticket

Ottenere un Ticket Granting Ticket (TGT) da KDC.

kinit username@DOMAIN.CONTOSO.COM

Visualizzare i ticket disponibili usando klist. Se kinit ha avuto esito positivo, verrà visualizzato un ticket.

klist

Ecco l'output previsto:

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

Connettersi tramite Azure Data Studio

  1. Creare un nuovo profilo di connessione.

  2. Selezionare Autenticazione di Windows come tipo di autenticazione.

  3. Per il server, immettere il nome host completo nel formato hostname.DOMAIN.CONTOSO.COM.

  4. Completare il profilo di connessione e selezionare Connetti.

Dopo il completamento della connessione, il server compare nella barra laterale SERVER.