Ansluta SQL Server på en Linux-värd till en Active Directory-domän
gäller för:SQL Server – Linux
Den här artikeln innehåller allmän vägledning om hur du ansluter en SQL Server Linux-värddator till en Active Directory-domän. Det finns två metoder: använd ett inbyggt SSSD-paket eller använd Active Directory-leverantörer från tredje part. Exempel på produkter för domänanslutning från tredje part är PowerBroker Identity Services (PBIS), One Identityoch Centrify.
Den här guiden innehåller steg för att kontrollera active directory-konfigurationen. Det är dock inte avsett att ge instruktioner om hur du ansluter en dator till en domän när du använder verktyg från tredje part.
Not
Information om hur du konfigurerar Active Directory med nyare versioner av Ubuntu, RHEL eller SLES finns i Tutorial: Use adutil to configure Active Directory authentication with SQL Server on Linux.
Förutsättningar
Innan du konfigurerar Active Directory-autentisering måste du konfigurera en Active Directory-domänkontrollant, Windows, i nätverket. Anslut sedan SQL Server på Linux-värden till en Active Directory-domän.
Exempelstegen som beskrivs i den här artikeln är endast för vägledning och refererar till operativsystemen Ubuntu 16.04, Red Hat Enterprise Linux (RHEL) 7.x och SUSE Linux Enterprise Server (SLES) 12. Faktiska steg kan variera något i din miljö beroende på hur din övergripande miljö är konfigurerad och operativsystemversionen. Ubuntu 18.04 använder till exempel netplan medan Red Hat Enterprise Linux (RHEL) 8.x använder nmcli bland andra verktyg för att hantera och konfigurera nätverk. Du bör kontakta system- och domänadministratörer för din miljö för specifika verktyg, konfiguration, anpassning och eventuell felsökning.
Omvänd DNS (rDNS)
När du konfigurerar en dator som kör Windows Server som domänkontrollant kanske du inte har en rDNS-zon som standard. Kontrollera att det finns en tillämplig rDNS-zon för både domänkontrollanten och IP-adressen för den Linux-dator som ska köra SQL Server.
Se också till att det finns en PTR-post som pekar på dina domänkontrollanter.
Kontrollera anslutningen till en domänkontrollant
Kontrollera att du kan kontakta domänkontrollanten med hjälp av både de korta och fullständigt kvalificerade namnen på domänen och med hjälp av domänkontrollantens värdnamn. Domänkontrollantens IP-adress bör också matchas mot domänkontrollantens fullständiga domännamn:
ping contoso
ping contoso.com
ping dc1.contoso.com
nslookup <IP address of dc1.contoso.com>
Tips
I den här handledningen används contoso.com
och CONTOSO.COM
som exempel på domännamn respektive riksnamn. Den använder också DC1.CONTOSO.COM
som exempel på fullständigt kvalificerade domännamn för domänkontrollanten. Du måste ersätta dessa namn med dina egna värden.
För att säkerställa korrekt domännamnsmatchning är det viktigt att uppdatera /etc/resolv.conf
-filen om det finns några avvikelser under namnkontrollerna. Uppdateringsproceduren varierar mellan olika distributioner. Därför rekommenderar vi att du konsulterar den officiella dokumentationen för att få korrekt vägledning. Följande lista innehåller länkar för vissa distributioner och deras nyckelversioner:
Fördelning | Referensartikel |
---|---|
RHEL 8 | Konfigurera /etc/resolve.conf manuellt |
RHEL 9 | Konfigurera /etc/resolve.conf manuellt |
SLES 15 | inställningar för NETCONFIG_DNS_STATIC_SEARCHLIST och NETCONFIG_DNS_STATIC_SERVERS |
Ubuntu | avsnittet om namnuppslagning |
Målet är att konfigurera /etc/resolv.conf
korrekt för din distribution för att underlätta domännamnsmatchning. Om din domän till exempel är contoso.com och Active Directory IP-adressen är 10.0.0.4, bör /etc/resolv.conf
konfigureras i enlighet med detta för att säkerställa korrekt namnuppslagning från värddatorn.
cat /etc/resolv.conf
Här är resultatet.
# Generated by NetworkManager
search contoso.com com
nameserver 10.0.0.4
RHEL 7.x
Redigera
/etc/sysconfig/network-scripts/ifcfg-eth0
-filen så att active directory-domänen finns i listan över domänsökningar. Eller redigera en annan gränssnittskonfigurationsfil efter behov:sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
Innehållet bör se ut ungefär som i följande exempel:
PEERDNS=no DNS1=<Domain controller IP address> DOMAIN="contoso.com com"
När du har redigerat den här filen startar du om nätverkstjänsten:
sudo systemctl restart network
Kontrollera nu att filen
/etc/resolv.conf
innehåller en rad som i följande exempel:sudo vi /etc/resolv.conf
Innehållet bör se ut ungefär som i följande exempel:
search contoso.com com nameserver <Domain controller IP address>
Om du fortfarande inte kan pinga domänkontrollanten hittar du domänkontrollantens fullständigt kvalificerade domännamn och IP-adress. Ett exempel på domännamn är
DC1.CONTOSO.COM
. Lägg till följande post i/etc/hosts
:sudo vi /etc/hosts
Innehållet bör se ut ungefär som i följande exempel:
<IP address> DC1.CONTOSO.COM CONTOSO.COM CONTOSO
Ansluta till Active Directory-domänen
När den grundläggande konfigurationen och anslutningen med domänkontrollanten har verifierats finns det två alternativ för att ansluta en SQL Server Linux-värddator till Active Directory-domänkontrollanten:
Alternativ 1: Använd SSSD-paketet för att ansluta till Active Directory-domän
Den här metoden kopplar SQL Server-värdservern till en Active Directory-domän genom att använda realmd och sssd-paket.
Det här är den bästa metoden för att ansluta en Linux-värd till en Active Directory-domänkontrollant.
De senaste instruktionerna finns i den officiella dokumentation som tillhandahålls av distributionspartnerna.
Fördelning | Referensartikel |
---|---|
RHEL 8 | Identifiera och ansluta till en AD-domän med SSSD- |
RHEL 9 | Identifiera och ansluta till en AD-domän med SSSD- |
SLES | Ansluta till Active Directory med hjälp av Windows-domänmedlemskap |
Ubuntu | Konfigurera SSSD med Active Directory |
Använd följande steg för att ansluta en SQL Server-värd till en Active Directory-domän:
Använd realmd för att ansluta värddatorn till din Active Directory-domän. Du måste först installera både realmd och Kerberos-klientpaketen på värddatorn för SQL Server genom att använda Linux-distributionens pakethanterare.
Om kerberos-klientpaketinstallationen frågar efter ett sfärnamn anger du domännamnet i versaler.
När du har bekräftat att dns-koden är korrekt konfigurerad ansluter du till domänen genom att köra följande kommando. Du måste autentisera med ett Active Directory-konto som har tillräcklig behörighet i Active Directory för att ansluta en ny dator till domänen. Det här kommandot skapar ett nytt datorkonto i Active Directory, skapar filen
/etc/krb5.keytab
värdnyckelflik, konfigurerar domänen i/etc/sssd/sssd.conf
och uppdaterar/etc/krb5.conf
.På grund av ett problem med realmdska du först ställa in datorns värdnamn på FQDN istället för datornamnet. Annars kanske realmd inte skapar alla nödvändiga tjänstens huvudnamn (SPN) för datorn och DNS-poster uppdateras inte automatiskt, även om domänkontrollant stöder dynamiska DNS-uppdateringar.
sudo hostname <old hostname>.contoso.com
När du har kört det här kommandot ska
/etc/hostname
-filen innehålla<old hostname>.contoso.com
.sudo realm join contoso.com -U 'user@CONTOSO.COM' -v
Du bör se meddelandet
Successfully enrolled machine in realm
.I följande tabell visas några felmeddelanden som du kan få och förslag på hur du löser dem:
Felmeddelande Rekommendation Necessary packages are not installed
Installera dessa paket med hjälp av Linux-distributionens pakethanterare innan du kör kommandot realm join igen. Insufficient permissions to join the domain
Kontrollera med en domänadministratör att du har tillräcklig behörighet för att ansluta Linux-datorer till din domän. KDC reply did not match expectations
Du kanske inte har angett rätt sfärnamn för användaren. Sfärnamn är skiftlägeskänsliga och skrivs vanligtvis med versaler och kan identifieras med kommandot realm discover contoso.com. SQL Server använder SSSD och NSS för att mappa användarkonton och grupper till säkerhetsidentifierare (SID). SSSD måste konfigureras och köras för ATT SQL Server ska kunna skapa Active Directory-inloggningar. realmd gör vanligtvis detta automatiskt som en del av anslutningen till domänen, men i vissa fall måste du göra detta separat.
Mer information finns i hur du konfigurera SSSD manuelltoch konfigurera NSS för att arbeta med SSSD.
Kontrollera att du nu kan samla in information om en användare från domänen och att du kan hämta en Kerberos-biljett som den användaren. I följande exempel används id, kinitoch klist kommandon för detta.
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
Om
id user\@contoso.com
returnerarNo such user
kontrollerar du att SSSD-tjänsten har startats genom att köra kommandotsudo systemctl status sssd
. Om tjänsten körs och du fortfarande ser felet kan du prova att aktivera utförlig loggning för SSSD. Mer information finns i Red Hat-dokumentationen för Felsökning av SSSD-.Om
kinit user\@CONTOSO.COM
returnerarKDC reply didn't match expectations while getting initial credentials
, kontrollera att du har angett området i versaler.
Mer information finns i Red Hat-dokumentationen för Identifiera och ansluta till identitetsdomäner.
Alternativ 2: Använd openLDAP-providerverktyg från tredje part
Du kan använda verktyg från tredje part, till exempel PBIS, VASeller Centrify. Den här artikeln beskriver inte steg för varje enskilt verktyg. Du måste först använda något av dessa verktyg för att ansluta Linux-värden som kör SQL Server till domänen innan du fortsätter.
SQL Server använder inte någon kod eller ett bibliotek från tredje part för Active Directory-relaterade frågor. SQL Server frågar alltid Active Directory med hjälp av OpenLDAP-biblioteksanrop direkt i den här installationen. Tredjepartsintegratörer används endast för att koppla Linux-datorn till Active Directory-domänen, och SQL Server har ingen direkt kommunikation med dessa verktyg.
Viktig
Se rekommendationerna för att använda konfigurationsalternativet mssql-conf network.disablesssd
i avsnittet Ytterligare konfigurationsalternativ i artikeln Använda Active Directory-autentisering med SQL Server på Linux.
Kontrollera att din /etc/krb5.conf
är korrekt konfigurerad. För de flesta Active Directory-leverantörer från tredje part görs den här konfigurationen automatiskt. Kontrollera dock /etc/krb5.conf
efter följande värden för att förhindra framtida problem:
sudo vi /etc/krb5.conf
Innehållet bör se ut ungefär som i följande exempel:
[libdefaults]
default_realm = CONTOSO.COM
[realms]
CONTOSO.COM = {
}
[domain_realm]
contoso.com = CONTOSO.COM
.contoso.com = CONTOSO.COM
Kontrollera att omvänd DNS är korrekt konfigurerad
Följande kommando ska returnera det fullständigt kvalificerade domännamnet (FQDN) för datorn som kör SQL Server. Ett exempel är SqlHost.contoso.com
.
host <IP address of SQL Server host>
Utdata för det här kommandot bör likna <reversed IP address>.in-addr.arpa domain name pointer SqlHost.contoso.com
. Om det här kommandot inte returnerar värdens FQDN, eller om det fullständiga domännamnet är felaktigt, lägger du till en omvänd DNS-post för SQL Server på Linux-värden till DNS-servern.
Nästa steg
I den här artikeln beskrivs hur du konfigurerar en SQL Server på en Linux-värddator med Active Directory-autentisering. Följ de här anvisningarna för att slutföra konfigurationen av SQL Server på Linux för att stödja Active Directory-konton.