Aggiungere un host di SQL Server in Linux a un dominio Active Directory
Si applica a: SQL Server - Linux
Questo articolo fornisce indicazioni generali su come aggiungere un computer host di SQL Server in Linux a un dominio di Active Directory. Sono disponibili due metodi: usare un pacchetto SSSD incorporato o usare provider Active Directory di terze parti. Esempi di prodotti di terze parti per l'aggiunta a un dominio sono PowerBroker Identity Services (PBIS), One Identity e Centrify.
Questa guida include i passaggi per verificare la configurazione di Active Directory. Non ha tuttavia lo scopo di fornire istruzioni su come aggiungere un computer a un dominio quando si usano utilità di terze parti.
Nota
Per informazioni sulla configurazione di Active Directory con le versioni più recenti di Ubuntu, RHEL o SLES, vedi Esercitazione: Usare adutil per configurare l'autenticazione di Active Directory con SQL Server in Linux.
Prerequisiti
Prima di configurare l'autenticazione di Active Directory, è necessario configurare un controller di dominio Active Directory, Windows, nella rete. Aggiungere quindi l'host di SQL Server in Linux a un dominio di Active Directory.
Le procedure di esempio descritte in questo articolo sono puramente indicative e fanno riferimento ai sistemi operativi Ubuntu 16.04, Red Hat Enterprise Linux (RHEL) 7.x e SUSE Linux Enterprise Server (SLES) 12. Le procedure effettive possono essere leggermente diverse a seconda della configurazione dell'ambiente generale e della versione del sistema operativo. Ad esempio, Ubuntu 18.04 usa netplan, mentre Red Hat Enterprise Linux (RHEL) 8.x usa nmcli tra gli altri strumenti per gestire e configurare la rete. È consigliabile coinvolgere gli amministratori di sistema e di dominio dell'ambiente per le attività specifiche di installazione degli strumenti, configurazione e personalizzazione e per l'eventuale risoluzione dei problemi.
DNS inverso (rDNS)
Quando si configura un computer che esegue Windows Server come controller di dominio, è possibile che non sia disponibile una zona rDNS per impostazione predefinita. Assicurati che esista una zona rDNS applicabile sia per il controller di dominio che per l'indirizzo IP del computer Linux che eseguirà SQL Server.
Assicurarsi anche che esista un record PTR che punta ai controller di dominio.
Controllare la connessione a un controller di dominio
Verificare che sia possibile contattare il controller di dominio usando sia il nome breve che quello completo del dominio e usando il nome host del controller di dominio. Anche l'indirizzo IP del controller di dominio deve essere risolto nel nome di dominio completo del controller di dominio:
ping contoso
ping contoso.com
ping dc1.contoso.com
nslookup <IP address of dc1.contoso.com>
Suggerimento
Questa esercitazione usa contoso.com
e CONTOSO.COM
rispettivamente come nome di dominio e nome dell'area di autenticazione di esempio. Usa anche DC1.CONTOSO.COM
come nome di dominio completo di esempio del controller di dominio. È necessario sostituire questi nomi con i valori effettivi.
Per garantire una corretta risoluzione dei nomi di dominio, è fondamentale aggiornare il file /etc/resolv.conf
se vengono rilevate discrepanze durante i controlli dei nomi. La procedura di aggiornamento varia in base alle distribuzioni; pertanto, si consiglia di consultare la documentazione ufficiale per trovare indicazioni accurate. L'elenco seguente fornisce collegamenti per alcune distribuzioni e le relative versioni principali:
Distribuzione | Articolo di riferimento |
---|---|
RHEL 8 | Configurazione manuale di /etc/resolv.conf |
RHEL 9 | Configurazione manuale di /etc/resolv.conf |
SLES 15 | Impostazioni di NETCONFIG_DNS_STATIC_SEARCHLIST e NETCONFIG_DNS_STATIC_SERVERS |
Ubuntu | Sezione Risoluzione dei nomi |
L'obiettivo è configurare /etc/resolv.conf
correttamente per la distribuzione, in modo da agevolare la risoluzione dei nomi di dominio. Ad esempio, se il dominio è contoso.com e l'indirizzo IP di Active Directory è 10.0.0.4, /etc/resolv.conf
deve essere configurato di conseguenza per garantire la corretta risoluzione dei nomi dall'host.
cat /etc/resolv.conf
Il set di risultati è il seguente.
# Generated by NetworkManager
search contoso.com com
nameserver 10.0.0.4
RHEL 7.x
Modifica il file
/etc/sysconfig/network-scripts/ifcfg-eth0
in modo che il dominio Active Directory sia incluso nell'elenco di ricerca del dominio. In alternativa, modificare un altro file di configurazione dell'interfaccia nel modo appropriato:sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
I contenuti dovrebbero essere simili all'esempio seguente:
PEERDNS=no DNS1=<Domain controller IP address> DOMAIN="contoso.com com"
Dopo aver modificato il file, riavviare il servizio di rete:
sudo systemctl restart network
Verifica ora che il file
/etc/resolv.conf
contenga una riga simile all’esempio seguente:sudo vi /etc/resolv.conf
I contenuti dovrebbero essere simili all'esempio seguente:
search contoso.com com nameserver <Domain controller IP address>
Se non è ancora possibile effettuare il ping del controller di dominio, trova il nome di dominio completo e l'indirizzo IP del controller di dominio. Un nome di dominio di esempio è
DC1.CONTOSO.COM
. Aggiungi la voce seguente a/etc/hosts
:sudo vi /etc/hosts
I contenuti dovrebbero essere simili all'esempio seguente:
<IP address> DC1.CONTOSO.COM CONTOSO.COM CONTOSO
Aggiungi le macchine virtuali al dominio Active Directory
Una volta verificata la configurazione di base e la connettività con il controller di dominio, sono disponibili due opzioni per l'aggiunta di un computer host di SQL Server in Linux con il controller di dominio Active Directory:
Opzione 1: Usare il pacchetto SSSD per aggiungere il dominio Active Directory
Questo metodo aggiunge l'host di SQL Server a un dominio di Active Directory usando i pacchetti realmd e sssd.
È il metodo preferito per l'aggiunta di un host Linux a un controller di dominio Active Directory.
Per istruzioni più aggiornate, consultare la documentazione ufficiale fornita dai partner di distribuzione.
Distribuzione | Articolo di riferimento |
---|---|
RHEL 8 | Individuazione e aggiunta a un dominio di Active Directory tramite SSSD |
RHEL 9 | Individuazione e aggiunta a un dominio di Active Directory tramite SSSD |
SLES | Aggiungere Active Directory usando realmd in SUSE Linux Enterprise Server 15 |
Ubuntu | Come configurare SSSD con Active Directory |
Per aggiungere un host di SQL Server a un dominio di Active Directory, seguire questa procedura:
Usa realmd per aggiungere il computer host al dominio Active Directory. È necessario prima installare i pacchetti client realmd e Kerberos nel computer host di SQL Server usando lo strumento di gestione pacchetti della distribuzione Linux:
Se l'installazione del pacchetto client Kerberos richiede un nome dell'area di autenticazione, immettere il nome di dominio in lettere maiuscole.
Dopo aver verificato che il DNS sia configurato correttamente, aggiungere il dominio eseguendo il comando seguente. È necessario eseguire l'autenticazione con un account di Active Directory che disponga di privilegi sufficienti in Active Directory per aggiungere un nuovo computer al dominio. Questo comando crea un nuovo account computer in Active Directory, crea il file keytab host
/etc/krb5.keytab
, configura il dominio in/etc/sssd/sssd.conf
e aggiorna/etc/krb5.conf
.A causa di un problema con realmd, impostare prima di tutto il nome host del computer sul nome di dominio completo anziché sul nome del computer. In caso contrario, realmd potrebbe non creare tutti i nomi dell'entità servizio necessari per il computer e le voci DNS non verranno aggiornate automaticamente, anche se il controller di dominio supporta gli aggiornamenti dinamici di DNS.
sudo hostname <old hostname>.contoso.com
Dopo aver eseguito questo comando, il file
/etc/hostname
deve contenere<old hostname>.contoso.com
.sudo realm join contoso.com -U 'user@CONTOSO.COM' -v
Dovrebbe essere visualizzato il messaggio
Successfully enrolled machine in realm
.La tabella seguente elenca alcuni messaggi di errore che si potrebbero ricevere e suggerimenti per risolverli:
Messaggio d'errore Elemento consigliato Necessary packages are not installed
Installare i pacchetti usando lo strumento di gestione pacchetti della distribuzione Linux prima di eseguire di nuovo il comando realm join. Insufficient permissions to join the domain
Verificare con un amministratore di dominio di disporre di autorizzazioni sufficienti per aggiungere computer Linux al dominio. KDC reply did not match expectations
È possibile che non sia stato specificato il nome dell'area di autenticazione corretto per l'utente. I nomi dell'area di autenticazione fanno distinzione tra maiuscole e minuscole, in genere sono in maiuscolo e possono essere identificati con il comando realm discover contoso.com. SQL Server usa SSSD e NSS per il mapping degli account utente e dei gruppi agli ID di sicurezza (SID). SSSD deve essere configurato e in esecuzione affinché SQL Server possa creare correttamente gli account di accesso di Active Directory. realmd in genere esegue questa operazione automaticamente nell'ambito dell'aggiunta del dominio, ma in alcuni casi è necessario eseguirla separatamente.
Per altre informazioni, vedere gli articoli che spiegano come configurare SSSD manualmente e come configurare NSS per l'uso con SSSD.
Verificare che sia ora possibile raccogliere informazioni su un utente dal dominio e che sia possibile acquisire un ticket Kerberos come tale utente. A questo scopo, l'esempio seguente usa i comandi id, kinit e klist.
id user@contoso.com uid=1348601103(user@contoso.com) gid=1348600513(domain group@contoso.com) groups=1348600513(domain group@contoso.com) kinit user@CONTOSO.COM Password for user@CONTOSO.COM: klist Ticket cache: FILE:/tmp/krb5cc_1000 Default principal: user@CONTOSO.COM
Se
id user\@contoso.com
restituisceNo such user
, verifica che il servizio SSSD sia stato avviato correttamente eseguendo il comandosudo systemctl status sssd
. Se il servizio è in esecuzione e viene ancora visualizzato l'errore, provare ad abilitare la registrazione dettagliata per SSSD. Per altre informazioni, vedere la documentazione di Red Hat relativa alla risoluzione dei problemi di SSSD.Se
kinit user\@CONTOSO.COM
restituisceKDC reply didn't match expectations while getting initial credentials
, verifica di avere specificato il nome dell'area di autenticazione in maiuscolo.
Per altre informazioni, vedere la documentazione di Red Hat relativa all'individuazione e aggiunta di domini di identità.
Opzione 2: Usare le utilità del provider OpenLDAP di terze parti
È possibile usare utilità di terze parti come PBIS, VAS o Centrify. Questo articolo non include le procedure per ogni singola utilità. Prima di procedere, è necessario usare una di queste utilità per aggiungere l'host Linux per SQL Server al dominio.
SQL Server non usa codice o librerie di integratori di terze parti per le query correlate ad Active Directory. Esegue sempre le query su Active Directory tramite chiamate alla libreria OpenLDAP direttamente in questa configurazione. Gli integratori di terze parti vengono usati solo per aggiungere l'host Linux al dominio Active Directory e SQL Server non ha alcuna comunicazione diretta con queste utilità.
Importante
Vedere i consigli per l'uso dell'opzione di configurazione mssql-conf network.disablesssd
nella sezione Opzioni di configurazione aggiuntive dell'articolo Usare l'autenticazione di Active Directory con SQL Server in Linux.
Verifica che il record /etc/krb5.conf
sia configurato correttamente. Per la maggior parte dei provider di Active Directory di terze parti, questa configurazione viene eseguita automaticamente. Tuttavia, per evitare eventuali problemi futuri, verificare se in /etc/krb5.conf
sono presenti i valori seguenti:
sudo vi /etc/krb5.conf
I contenuti dovrebbero essere simili all'esempio seguente:
[libdefaults]
default_realm = CONTOSO.COM
[realms]
CONTOSO.COM = {
}
[domain_realm]
contoso.com = CONTOSO.COM
.contoso.com = CONTOSO.COM
Verificare che il DNS inverso sia configurato correttamente
Il comando seguente deve restituire il nome di dominio completo (FQDN) dell'host che esegue SQL Server. Un esempio è SqlHost.contoso.com
.
host <IP address of SQL Server host>
L'output di questo comando dovrebbe essere simile a <reversed IP address>.in-addr.arpa domain name pointer SqlHost.contoso.com
. Se il comando non restituisce il nome di dominio completo dell'host o se il nome di dominio completo non è corretto, aggiungi una voce di DNS inverso per l'host di SQL Server in Linux al server DNS.
Passaggio successivo
Questo articolo ha illustrato la configurazione di un computer host di SQL Server in Linux con l'autenticazione di Active Directory. Per completare la configurazione di SQL Server in Linux per il supporto degli account Active Directory, seguire queste istruzioni.