Conectar o Azure Data Studio ao SQL Server usando o Kerberos

O Azure Data Studio dá suporte à conexão com o SQL Server usando o Kerberos.

Para usar a autenticação integrada (Autenticação do Windows) no macOS ou no Linux, você precisa configurar um tíquete do Kerberos que vincule o usuário atual a uma conta de domínio do Windows.

Pré-requisitos

Para começar, você precisa do seguinte:

Verificar se o SQL Server tem uma configuração Kerberos

Entre no computador host do SQL Server. No prompt de comando do Windows, use setspn -L %COMPUTERNAME% para listar todos os SPNs do host. Verifique se há entradas que começam com MSSQLSvc/HostName.contoso.com. Essas entradas significam que o SQL Server registrou um SPN e está pronto para aceitar a autenticação Kerberos.

Se você não tiver acesso ao host da instância do SQL Server, poderá usar o comando setspn -L <SQLSERVER_NETBIOS>, em que <SQLSERVER_NETBIOS> é o nome do computador do host da instância do SQL Server, em qualquer outro sistema operacional Windows ingressado no mesmo Active Directory.

Obter o centro de distribuição de chaves Kerberos

Localize o valor de configuração do KDC (Centro de Distribuição de Chaves) do Kerberos. Execute o comando a seguir em um computador Windows que esteja ingressado em seu domínio do Active Directory.

Execute nltest na linha de comando e substitua "DOMAIN.CONTOSO.COM" pelo nome do domínio.

nltest /dsgetdc:DOMAIN.CONTOSO.COM

A saída deverá ser semelhante ao seguinte exemplo:

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

Copie o nome do controlador de domínio que é o valor de configuração do KDC necessário. Nesse caso, é dc-33.domain.contoso.com.

Ingressar o sistema operacional no controlador de domínio do Active Directory

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

Edite o arquivo /etc/network/interfaces para que o endereço IP do controlador de domínio do Active Directory esteja listado como dns-nameserver. Por exemplo:

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

Observação

O adaptador de rede (eth0) pode ser diferente para computadores diferentes. Para descobrir qual deles você está usando, execute ifconfig e copie a interface que tem um endereço IP e os bytes transmitidos e recebidos.

Após editar esse arquivo, reinicie o serviço de rede:

sudo ifdown eth0 && sudo ifup eth0

Agora, verifique se seu arquivo /etc/resolv.conf contém uma linha semelhante à seguinte:

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

Ingresse no domínio do Active Directory:

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

Veja a saída esperada:

<...>
* Success

Testar a recuperação do tíquete de concessão de tíquete

Obtenha um TGT (Tíquete de Concessão de Tíquete) do KDC.

kinit username@DOMAIN.CONTOSO.COM

Exiba os tíquetes disponíveis usando klist. Se o kinit tiver sido bem-sucedido, você deverá ver um tíquete.

klist

Veja a saída esperada:

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

Conectar-se usando o Azure Data Studio

  1. Crie um perfil de conexão.

  2. Selecione Autenticação do Windows como o tipo de autenticação.

  3. Para o Servidor, insira um nome de host totalmente qualificado, no formato hostname.DOMAIN.CONTOSO.COM.

  4. Conclua o perfil de conexão e selecione Conectar.

Depois que você se conectar com êxito, o servidor será exibido na barra lateral SERVIDORES.