Conexión a SQL Server con Azure Data Studio
Azure Data Studio admite la conexión a SQL Server mediante Kerberos.
Para usar autenticación integrada (autenticación de Windows) en MacOS o Linux, debe configurar un vale Kerberos que vincule el usuario actual a una cuenta de dominio de Windows.
Requisitos previos
Para empezar, necesitará lo siguiente:
- Acceso a una máquina Windows unida a un dominio para consultar el controlador de dominio de Kerberos.
- SQL Server debe configurarse para permitir la autenticación Kerberos. En el caso del controlador de cliente que se ejecuta en Unix, la autenticación integrada solo se admite con Kerberos. Para más información, vea Uso de la autenticación integrada de Kerberos para conectar con SQL Server. Debe haber nombres de entidad de seguridad de servicio (SPN) registrados para cada instancia de SQL Server a la que esté intentando conectarse. Para obtener más información, vea Registrar un nombre de entidad de seguridad de servicio para las conexiones con Kerberos.
Comprobación de si SQL Server tiene configuración de Kerberos
Inicie sesión en la máquina host de SQL Server. En el símbolo del sistema de Windows, use setspn -L %COMPUTERNAME%
para enumerar todos los nombres de entidad de seguridad de servicio (SPN) del host. Compruebe que hay entradas que comienzan por MSSQLSvc/HostName.Domain.com. Estas entradas significan que SQL Server ha registrado un nombre de entidad de seguridad de servicio y que está listo para aceptar la autenticación Kerberos.
Si no tiene acceso al host de la instancia de SQL Server, desde cualquier otro sistema operativo Windows unido a la misma instancia de Active Directory, puede usar el comando setspn -L <SQLSERVER_NETBIOS>
, donde <SQLSERVER_NETBIOS> es el nombre de equipo del host de la instancia de SQL Server.
Obtener el Centro de distribución de claves de Kerberos
Busque el valor de configuración del Centro de distribución de claves (KDC) de Kerberos. Ejecute el siguiente comando en un equipo Windows que esté unido al dominio de Active Directory.
Inicie cmd.exe
y ejecute nltest
.
nltest /dsgetdc:DOMAIN.COMPANY.COM (where "DOMAIN.COMPANY.COM" maps to your domain's name)
Sample Output
DC: \\dc-33.domain.company.com
Address: \\2111:4444:2111:33:1111:ecff:ffff:3333
...
The command completed successfully
Copie el nombre del controlador de dominio que es el valor de configuración del KDC requerido. En este caso, es dc-33.domain.company.com.
Unión del sistema operativo al controlador de dominio de Active Directory
Ubuntu
sudo apt-get install realmd krb5-user software-properties-common python-software-properties packagekit
Edite el archivo /etc/network/interfaces
para que la dirección IP del controlador de dominio de Active Directory aparezca como dns-nameserver. Por ejemplo:
<...>
# The primary network interface
auto eth0
iface eth0 inet dhcp
dns-nameservers **<AD domain controller IP address>**
dns-search **<AD domain name>**
Nota
La interfaz de red (eth0) puede diferir en los distintos equipos. Para averiguar cuál es la que está usando, ejecute ifconfig y copie la interfaz que tiene una dirección IP y bytes transmitidos y recibidos.
Después de editar este archivo, reinicie el servicio de red:
sudo ifdown eth0 && sudo ifup eth0
Ahora compruebe que el archivo /etc/resolv.conf
contiene una línea similar a la siguiente:
nameserver **<AD domain controller IP address>**
sudo realm join contoso.com -U 'user@CONTOSO.COM' -v
<...>
* Success
RedHat Enterprise Linux
sudo yum install realmd krb5-workstation
Edite el archivo /etc/sysconfig/network-scripts/ifcfg-eth0
(u otro archivo de configuración de interfaz que corresponda) para que la dirección IP del controlador de dominio de Active Directory aparezca como un servidor DNS:
<...>
PEERDNS=no
DNS1=**<AD domain controller IP address>**
Después de editar este archivo, reinicie el servicio de red:
sudo systemctl restart network
Ahora compruebe que el archivo /etc/resolv.conf
contiene una línea similar a la siguiente:
nameserver **<AD domain controller IP address>**
sudo realm join contoso.com -U 'user@CONTOSO.COM' -v
<...>
* Success
Configuración de KDC en krb5.conf con macOS
En esta sección se describe el archivo de configuración de Kerberos.
Edite el archivo /etc/krb5.conf
en el editor que prefiera. Configure las claves siguientes:
sudo vi /etc/krb5.conf
[libdefaults]
default_realm = DOMAIN.COMPANY.COM
[realms]
DOMAIN.COMPANY.COM = {
kdc = dc-33.domain.company.com
}
Luego, guarde el archivo krb5.conf y salga.
Nota
El dominio debe estar en MAYÚSCULAS.
Prueba de la recuperación de un vale de concesión de vales
Obtenga un vale de concesión de vales (TGT) del KDC.
kinit username@DOMAIN.COMPANY.COM
Vea los vales disponibles mediante klist. Si el comando kinit se ha ejecutado correctamente, debería ver un vale.
klist
krbtgt/DOMAIN.COMPANY.COM@ DOMAIN.COMPANY.COM.
Conexión mediante Azure Data Studio
Cree un nuevo perfil de conexión.
Seleccione Autenticación de Windows como tipo de autenticación.
Complete el perfil de conexión y seleccione Conectar.
Después de conectarse correctamente, el servidor aparece en la barra lateral SERVIDORES.