Megosztás:


Oktatóanyag: Active Directory-hitelesítés konfigurálása linuxos SQL Serverrel az adutil használatával

A következőkre vonatkozik:SQL Server Linux rendszeren

Ez az oktatóanyag bemutatja, hogyan konfigurálhatja a Windows Active Directory-hitelesítést linuxos SQL Serverhez az adutil használatával. Az Active Directory-hitelesítés ktpass használatával történő konfigurálásának másik módszeréről a következő oktatóanyagban olvashat: Active Directory-hitelesítés használata linuxos SQL Serverrel.

Ez az oktatóanyag a következő feladatokból áll:

  • Az adutil telepítése
  • Linux-gép csatlakoztatása az Active Directory-tartományhoz
  • Hozzon létre egy Active Directory-felhasználót az SQL Serverhez, és állítsa be a szolgáltatásnév nevét (SPN) az adutil használatával
  • Az SQL Server service keytab (key table) fájljának létrehozása
  • Az SQL Server konfigurálása a keytab-fájl használatára
  • Active Directory-alapú SQL Server-bejelentkezések létrehozása Transact-SQL
  • Csatlakozás AZ SQL Serverhez Active Directory-hitelesítéssel

Előfeltételek

Az Active Directory-hitelesítés konfigurálása előtt a következőkre van szükség:

  • Active Directory Domain Servicest futtató Windows-tartományvezérlő a hálózaton.
  • A adutil eszköz a tartományhoz csatlakoztatott gazdagépre lett telepítve.

Tartománygép-előkészítés

Győződjön meg arról, hogy a Linux-gazdagép IP-címéhez hozzá van adva egy továbbítási állomás (A) bejegyzés az Active Directoryban. Ebben az oktatóanyagban a sql1 gazdagép IP-címe 10.0.0.10. A következő példában a továbbítási gazdagép bejegyzését adjuk hozzá az Active Directoryban. A bejegyzés biztosítja, hogy amikor a felhasználók sql1.contoso.comcsatlakoznak, a megfelelő gazdagéphez érnek.

Képernyőkép a gazdagép rekord hozzáadásáról.

Ebben az oktatóanyagban egy azure-beli környezetet használ három virtuális géppel. Egy virtuális gép (VM) egy Windows Server rendszerű adVM.contoso.comszámítógép, amely tartományvezérlőként (DC) fut a tartománynévvel contoso.com. A második virtuális gép egy Windows 10 nevű winboxügyfélgép, amelyre telepítve van az SQL Server Management Studio (SSMS). A harmadik gép az SQL Servert üzemeltető Ubuntu 18.04 LTS-gép sql1.

Csatlakoztassa a Linux-gazdagépet az Active Directory-tartományhoz

Ha csatlakozni szeretne az Active Directory-tartományhoz sql1 , olvassa el az SQL Server csatlakoztatása Linux-gazdagépen egy Active Directory-tartományhoz című témakört.

Az adutil telepítése

Az adutil telepítéséhez kövesse a Bevezetés az adutil – Active Directory segédprogramba című cikkben ismertetett lépéseket azon a gazdagépen, amelyet az előző lépésben a tartományhoz adott hozzá.

Active Directory-felhasználó létrehozása az SQL Serverhez az adutil használatával, és a szolgáltatásnév (SPN) beállítása

  1. Szerezze be vagy újítsa meg a Kerberos TGT-t (jegykiadó jegy) a kinit paranccsal. A kinit parancshoz kiemelt fiókot kell használnia, és a gazdagépnek már a tartományhoz kell tartoznia. A fióknak engedélyre van szüksége a tartományhoz való csatlakozáshoz, valamint fiókok és Szolgáltatás Főnév (SPN) létrehozásához a tartományban.

    Ebben a példaszkriptben a rendszer már létrehozott egy kiemelt felhasználót privilegeduser@CONTOSO.COM a tartományvezérlőn.

    kinit privilegeduser@CONTOSO.COM
    
  2. Az adutil használatával hozza létre az új felhasználót, hogy az SQL Server kiemelt Active Directory-fiókként használhassa.

    A jelszavak három különböző módon adhatók meg. Ha több módszert is használ, azok a következő sorrendben elsőbbséget élveznek:

    • A jelszójelző használata: --password <password>
    • Környezeti változóban: ADUTIL_ACCOUNT_PWD
    • Interaktív bemenet parancssori parancssorban

    A környezeti változók vagy interaktív beviteli módszerek biztonságosabbak, mint a jelszójelző.

    adutil user create --name sqluser --distname CN=sqluser,CN=Users,DC=CONTOSO,DC=COM --password '<password>'
    

    A fiók nevét a korábban bemutatott megkülönböztető névvel (--distname) adhatja meg, vagy használhatja a szervezeti egység (szervezeti egység) nevét. A szervezeti egység neve (--ou) elsőbbséget élvez a megkülönböztető névvel szemben, ha mindkettőt megadja. További részletekért futtassa a következő parancsot:

    adutil user create --help
    

    Figyelmeztetés

    A jelszónak az SQL Server alapértelmezett jelszóházirendetkell követnie. Alapértelmezés szerint a jelszónak legalább nyolc karakter hosszúnak kell lennie, és a következő négy készletből három karakterből kell állnia: nagybetűk, kisbetűk, 10 számjegyből és szimbólumokból. A jelszavak legfeljebb 128 karakter hosszúak lehetnek. Használjon olyan jelszavakat, amelyek a lehető legkomplexebbek és hosszúak.

  3. SPN-eket regisztráljon a korábban létrehozott fő azonosítóhoz. A gép teljes tartománynevét (FQDN) kell használnia. Ebben az oktatóanyagban az SQL Server alapértelmezett portját, az 1433-at használjuk. A portszám eltérő lehet.

    adutil spn addauto -n sqluser -s MSSQLSvc -H sql1.contoso.com -p 1433
    
    • addauto automatikusan létrehozza az egyszerű szolgáltatásneveket, feltéve, hogy elegendő jogosultság áll rendelkezésre a kinit fiókhoz.
    • -n: Az SPN-ekhez rendelendő fiók neve.
    • -s: Az SPN-ek (Szolgáltatásnév-azonosítók) létrehozásához használandó szolgáltatásnév. Ebben az esetben az SQL Server szolgáltatásra vonatkozik, ezért a szolgáltatás neve .MSSQLSvc
    • -H: Az SPN-ek (Szolgáltatási Főnevek) létrehozásához használt állomásnév. Ha nincs megadva, a rendszer a helyi gazdagép teljes tartománynevét használja. Ebben az esetben a gazdagép neve sql1, a teljes tartománynév pedig sql1.contoso.com.
    • -p: Az SPN-k létrehozásához használt port. Ha nincs megadva, a SPN-k port nélkül jönnek létre. Az SQL-kapcsolatok ebben az esetben csak akkor működnek, ha az SQL Server-példány az alapértelmezett portot(1433) figyeli.

Az SQL Server szolgáltatás keytab-fájljának létrehozása az mssql-conf használatával

Telepítheti és integrálhatja az adutil-t az mssql-conf használatával, hogy közvetlenül az mssql-conf használatával hozza létre és konfigurálja a keytab-ot. Ez a módszer az SQL Server-szolgáltatás keytab-fájljának létrehozásához ajánlott. Ellenkező esetben manuálisan is létrehozhatja az SQL Server service keytab-fájlt.

Előfeltételek

  1. Győződjön meg arról, hogy a mssql felhasználóé a /var/opt/mssql/mssql.conf fájl, és ne root. Ellenkező esetben az mssql-conf parancsokat a következővel sudokell futtatnia: .

  2. Egy tartományvezérlőn a fiók Active Directory-beállításaiban network.privilegedadaccount (az alábbi példákbansqluser@CONTOSO.COM) engedélyezze az alábbi beállításokat a Fiók lap Fiókbeállítások szakaszában:

    • Ez a fiók támogatja a Kerberos AES 128 bites titkosítását
    • Ez a fiók támogatja a Kerberos AES 256 bites titkosítását

A keytab-fájl létrehozása

Miután létrehozta a felhasználót és az SPN-eket, az alábbi lépések végrehajtásával létrehozhatja a kulcstartót.

  1. Váltás a felhasználóra oracle :

    su mssql
    
  2. Jelentkezzen be Active Directory-felhasználóként a kinit következő paranccsal:

    kinit privilegeduser@CONTOSO.COM
    
  3. Hozza létre a keytab fájlt:

    /opt/mssql/bin/mssql-conf setup-ad-keytab /var/opt/mssql/secrets/mssql.keytab sqluser
    

    Amikor a rendszer arra kéri, hogy indítsa újra az SQL Server szolgáltatást az új Active Directory-konfiguráció bevezetéséhez, a következő szakaszban teheti meg.

  4. Ellenőrizze, hogy a keytab a megfelelő bejegyzésekkel van-e létrehozva:

    klist -kte /var/opt/mssql/secrets/mssql.keytab
    

    A következő példához hasonló kimenetnek kell megjelennie:

    keytab name: FILE:/var/opt/mssql/secrets/mssql.keytab
    KVNO Timestamp           Principal
    ---- ------------------- ------------------------------------------------------
       4 12/30/2021 14:02:08 sqluser@CONTOSO.COM (aes256-cts-hmac-sha1-96)
       4 12/30/2021 14:02:08 MSSQLSvc/sql1.contoso.com:1433@CONTOSO.COM (aes256-cts-hmac-sha1-96)
       4 12/30/2021 14:02:08 MSSQLSvc/sql1.contoso.com@CONTOSO.COM (aes256-cts-hmac-sha1-96)
       4 12/30/2021 14:02:08 MSSQLSvc/sql1:1433@CONTOSO.COM (aes256-cts-hmac-sha1-96)
       4 12/30/2021 14:02:08 MSSQLSvc/sql1@CONTOSO.COM (aes256-cts-hmac-sha1-96)
    

    Ha a /var/opt/mssql/mssql.conf fájlt nem a mssql birtokolja, konfigurálnia kell az mssql-conf-t, hogy az előző lépéseknek megfelelően állítsa be az network.kerberoskeytabfile és network.privilegedadaccount értékeket. Amikor a rendszer kéri, írja be a jelszót.

    /opt/mssql/bin/mssql-conf set network.kerberoskeytabfile /var/opt/mssql/secrets/mssql.keytab
    /opt/mssql/bin/mssql-conf set network.privilegedadaccount sqluser
    
  5. Ellenőrizze a konfigurációt, hogy az Active Directory-hitelesítés problémamentesen működjön.

    /opt/mssql/bin/mssql-conf validate-ad-config /var/opt/mssql/secrets/mssql.keytab
    

    A kimenet az alábbi példához hasonlóan néz ki:

    Detected Configuration:
    Default Realm: CONTOSO.COM
    Keytab: /var/opt/mssql/secrets/mssql.keytab
    Reverse DNS Result: sql1.contoso.com
    SQL Server Port: 1433
    Detected SPNs (SPN, KVNO):
    (MSSQLSvc/sql1.CONTOSO.COM:1433, 4)
    (MSSQLSvc/sql1.CONTOSO.COM, 4)
    (MSSQLSvc/sql1:1433, 4)
    (MSSQLSvc/sql1, 4)
    Privileged Account (Name, KVNO):
    (sqluser, 4)
    

Az SQL Server szolgáltatáskulcs-fájljának manuális létrehozása

Ha telepítette az adutil-t , és integrálta az mssql-conf-tal, továbbléphet az SQL Server szolgáltatás keytab-fájljának létrehozására az mssql-conf használatával.

  1. Hozza létre a keytab-fájlt, amely a korábban létrehozott négy egyszerű szolgáltatásnév mindegyikéhez tartalmaz bejegyzéseket, egyet pedig a felhasználó számára.

    adutil keytab createauto -k /var/opt/mssql/secrets/mssql.keytab -p 1433 -H sql1.contoso.com --password '<password>' -s MSSQLSvc
    

    Figyelmeztetés

    A jelszónak az SQL Server alapértelmezett jelszóházirendetkell követnie. Alapértelmezés szerint a jelszónak legalább nyolc karakter hosszúnak kell lennie, és a következő négy készletből három karakterből kell állnia: nagybetűk, kisbetűk, 10 számjegyből és szimbólumokból. A jelszavak legfeljebb 128 karakter hosszúak lehetnek. Használjon olyan jelszavakat, amelyek a lehető legkomplexebbek és hosszúak.

    A lehetséges parancssori lehetőségek a következők:

    • -k: Az elérési út, ahol a mssql.keytab fájl létrejön. Az előző példában a /var/opt/mssql/secrets/ könyvtárnak már léteznie kell a gazdagépen.
    • -p: Az SPN-k létrehozásához használt port. Ha nincs megadva, a SPN-k port nélkül jönnek létre.
    • -H: Az SPN-ek (Szolgáltatási Főnevek) létrehozásához használt állomásnév. Ha nincs megadva, a rendszer a helyi gazdagép teljes tartománynevét használja. Ebben az esetben a gazdagép neve sql1, a teljes tartománynév pedig sql1.contoso.com.
    • -s: Az SPN-ek (Szolgáltatásnév-azonosítók) létrehozásához használandó szolgáltatásnév. Ebben a példában az SQL Server-szolgáltatás neve .MSSQLSvc
    • --password: A korábban létrehozott kiemelt Active Directory-felhasználói fiók jelszava.
    • -e vagy --enctype: A keytab bejegyzés titkosítási típusai. Használjon vesszővel tagolt értéklistát. Ha nincs megadva, megjelenik egy interaktív üzenet.

    Több titkosítási típust is választhat, ha a gazdagép és a tartomány támogatja a titkosítás típusát. Ebben a példában választhatja a aes256-cts-hmac-sha1-96 és a aes128-cts-hmac-sha1-96 lehetőségeket. Éles környezetben azonban kerülni kell arcfour-hmac, mert gyengén titkosít.

    Ha a titkosítási típust kérés nélkül szeretné kiválasztani, az előző parancs argumentumával megadhatja a -e titkosítás típusát. A beállítási lehetőségekről az adutil keytab alábbi paranccsal kaphat további segítséget:

    adutil keytab createauto --help
    
  2. Adjon hozzá egy bejegyzést az SQL Server által az Active Directoryhoz való csatlakozáshoz használt egyszerű név és jelszó kulcstáblájában:

    adutil keytab create -k /var/opt/mssql/secrets/mssql.keytab -p sqluser --password '<password>'
    

    Figyelmeztetés

    A jelszónak az SQL Server alapértelmezett jelszóházirendetkell követnie. Alapértelmezés szerint a jelszónak legalább nyolc karakter hosszúnak kell lennie, és a következő négy készletből három karakterből kell állnia: nagybetűk, kisbetűk, 10 számjegyből és szimbólumokból. A jelszavak legfeljebb 128 karakter hosszúak lehetnek. Használjon olyan jelszavakat, amelyek a lehető legkomplexebbek és hosszúak.

    • -k: Elérési út, ahol létre szeretné hozni a mssql.keytab fájlt.
    • -p: Principal hozzáadása a keytab-hoz.

    A adutil keytab [ create | autocreate ] fájl nem írja felül az előző fájlokat, csak hozzáfűzi a fájlhoz, ha már jelen van.

  3. Győződjön meg arról, hogy a mssql felhasználóé a létrehozott keytab, és hogy csak a mssql felhasználó rendelkezik olvasási/írási hozzáféréssel a fájlhoz. Az chown és chmod parancsokat a következőképpen futtathatja:

    chown mssql /var/opt/mssql/secrets/mssql.keytab
    chmod 440 /var/opt/mssql/secrets/mssql.keytab
    

Az SQL Server konfigurálása a keytab használatára

Futtassa az alábbi parancsokat az SQL Server konfigurálásához az előző lépésben létrehozott kulcstartó használatára, és állítsa be a kiemelt Active Directory-fiókot a korábban létrehozott felhasználóként. A példánkban a felhasználónév a következő sqluser: .

/opt/mssql/bin/mssql-conf set network.kerberoskeytabfile /var/opt/mssql/secrets/mssql.keytab
/opt/mssql/bin/mssql-conf set network.privilegedadaccount sqluser

Az SQL Server újraindítása

Futtassa a következő parancsot az SQL Server szolgáltatás újraindításához:

sudo systemctl restart mssql-server

Active Directory-alapú SQL Server-bejelentkezések létrehozása Transact-SQL

Csatlakozzon az SQL Server-példányhoz, és futtassa a következő parancsokat a bejelentkezés létrehozásához, és győződjön meg arról, hogy létezik.

CREATE LOGIN [contoso\privilegeduser]
    FROM WINDOWS;

SELECT name
FROM sys.server_principals;

Csatlakozás AZ SQL Serverhez Active Directory-hitelesítéssel

Windows-hitelesítő adataival csatlakozzon az SQL Server-példányhoz az SQL Server Management Studio (SSMS) használatával.

Az sqlcmd segédprogramhoz hasonló eszközzel windowsos hitelesítéssel is csatlakozhat az SQL Server-példányhoz.

sqlcmd -E -S 'sql1.contoso.com'