Megosztás a következőn keresztül:


A Microsoft Entra ID használata az ODBC-illesztőprogrammal

ODBC-illesztőprogram letöltése

Megjegyzés:

Bár a Microsoft Entra ID az Azure Active Directory (Azure AD) új neve, a meglévő környezetek megzavarásának megakadályozása érdekében az Azure AD továbbra is megmarad néhány kódoltan rögzített elemben, például a felhasználói felület mezőiben, kapcsolatszolgáltatókban, hibakódokban és parancsmagokban. Ebben a cikkben a két név felcserélhető.

Cél

Az SQL Server 13.1-es és újabb verziójához készült Microsoft ODBC-illesztő lehetővé teszi, hogy az ODBC-alkalmazások a Microsoft Entra ID azonosítójú identitások használatával csatlakozzanak az Azure SQL Database-hez vagy az Azure SQL Managed Instance-hez. A hitelesítés történhet felhasználónévvel és jelszóval, Microsoft Entra hozzáférési jogkivonattal, Microsoft Entra által felügyelt identitással (17.3+) vagy integrált Windows-hitelesítéssel összevont, tartományhoz csatlakoztatott környezetben (Linux/macOS rendszeren 17,6+). Az ODBC-illesztőprogram 13.1-es verziójához a Microsoft Entra hozzáférési jogkivonat-hitelesítés csak Windows rendszeren érhető el. Az ODBC Driver 17-es és újabb verziója támogatja ezt a hitelesítést minden platformon (Windows, Linux és macOS). A Windows ODBC Driver 17.1-es verziójában egy új, többtényezős hitelesítést támogató interaktív Microsoft Entra hitelesítési módszert vezetnek be. Az ODBC Driver 17.3.1.1-es verziójában új Microsoft Entra felügyelt identitás-hitelesítési módszer lett hozzáadva a rendszer által hozzárendelt és a felhasználó által hozzárendelt felügyelt identitásokhoz. Mindezek a lehetőségek új DSN- és kapcsolati sztring-kulcsszavak, valamint kapcsolati attribútumok használatával érhetők el.

A Microsoft Entra-hitelesítés használatához konfigurálnia kell az Azure SQL-adatforrást. További információért tekintse meg a Microsoft Entra-hitelesítés konfigurálását és kezelését az Azure SQL-ben.

Megjegyzés:

A Linuxon és macOS-en futó ODBC-illesztőprogram a 17.6-os verzió előtt csak a Microsoft Entra-hitelesítést támogatja közvetlenül a Microsoft Entra-azonosítóval. Ha Microsoft Entra-felhasználónév-/jelszó-hitelesítést használ Linux- vagy macOS-ügyfélről, és a Microsoft Entra-konfiguráció megköveteli az ügyféltől a Microsoft Entra összevonási szolgáltatások végpontjának hitelesítését, a hitelesítés sikertelen lehet. Az illesztőprogram 17.6-os verziójától ez a korlátozás el lett távolítva.

Új és/vagy módosított DSN- és kapcsolati sztringszavak

A Authentication kulcsszó használható DSN-hez vagy kapcsolati sztringhez való csatlakozáskor a hitelesítési mód szabályozásához. A kapcsolati sztringben megadott érték felülbírálja a DSN-ben megadott értéket, ha meg van adva. A beállítás előattribútum-értékeAuthentication a kapcsolati sztringből és a DSN-értékekből kiszámított érték.

Név Értékek/Alapértelmezett Description
Authentication (not set)(alapértelmezett), (empty string), SqlPassword, ActiveDirectoryIntegrated, ActiveDirectoryInteractive, ActiveDirectoryMsiActiveDirectoryServicePrincipalActiveDirectoryPassword , [ELAVULT] Szabályozza a hitelesítési módot.

(not set) - Más kulcsszavak által meghatározott hitelesítési mód (meglévő régi kapcsolati lehetőségek).)

(empty string) - (Csak kapcsolati sztring.) Felülbírálhatja és feloldhatja a Authentication DSN-ben beállított értékeket.

SqlPassword – Közvetlenül hitelesíthet az SQL-ben felhasználónévvel és jelszóval.

ActiveDirectoryIntegrated - Windows és Linux/Mac 17.6+, csak illesztőprogram. Hitelesítés a Microsoft Entra-azonosítón keresztül összevont Windows-hitelesítő adatok használatával, integrált hitelesítéssel.

ActiveDirectoryInteractive - Csak Windows-illesztőprogram. Hitelesítés Microsoft Entra-identitással interaktív hitelesítéssel.

ActiveDirectoryMsi – Hitelesítés felügyelt Microsoft Entra-identitással. Felhasználó által hozzárendelt identitás esetén állítsa a UID-t az identitás ügyfél-azonosítójára az Azure App Service vagy az Azure Container Instance esetében; ellenkező esetben használja az objektumazonosítót. A rendszer által hozzárendelt identitáshoz nincs szükség UID azonosítóra.

ActiveDirectoryServicePrincipal - (17.7+) Hitelesítse Microsoft Entra szolgáltatás-főnévvel. Az UID a szolgáltatásentitás ügyfél-azonosítójára van állítva. A PWD az ügyfél titkos kódjára van állítva.

ActiveDirectoryPassword - [DEPRECATED] Hitelesítés Microsoft Entra-identitással felhasználónévvel és jelszóval.

ActiveDirectoryPassword már nem ajánlott. További információ: Az ActiveDirectoryPassword elavult.
Encrypt (not set)(alapértelmezett), Yes/Mandatory(18,0+),No/Optional (18,0+), Strict(18,0+) A kapcsolat titkosítását szabályozza. Ha a beállítás előattribútum-értéke Authentication nem none szerepel a DSN-ben vagy a kapcsolati sztringben, az alapértelmezett érték.Yes Az alapértelmezett a 18.0.1+-os verziókban is ugyanúgy Yes. Ellenkező esetben az alapértelmezett érték a következő No. Ha az attribútum SQL_COPT_SS_AUTHENTICATION felülírja az előattribútum értékét Authentication, explicit módon állítsa be a Titkosítás értékét a DSN-ben, a kapcsolati sztringben vagy a kapcsolati attribútumban. A Titkosítás előattribútum-értéke az, Yes ha az érték a DSN-ben vagy a kapcsolati sztringben van beállítva Yes .

Új és/vagy módosított kapcsolatattribútumok

A microsoft entra-hitelesítés támogatásához a következő kapcsolati attribútumok lettek bevezetve vagy módosítva. Ha a kapcsolatattribútum megfelelő kapcsolati sztringet vagy DSN-kulcsszót tartalmaz, és be van állítva, a kapcsolati attribútum elsőbbséget élvez.

Attribute Típus Értékek Alapértelmezett Description
SQL_COPT_SS_AUTHENTICATION SQL_IS_INTEGER SQL_AU_NONE, SQL_AU_PASSWORD, SQL_AU_AD_INTEGRATED, SQL_AU_AD_PASSWORDSQL_AU_AD_INTERACTIVE, SQL_AU_AD_MSI, SQL_AU_AD_SPASQL_AU_RESET (nincs beállítva) Lásd a Authentication fenti kulcsszó leírását. SQL_AU_NONE A rendszer kifejezetten felülbírál egy beállított Authentication értéket a DSN-ben és/vagy a kapcsolati sztringben, míg SQL_AU_RESET visszaállítja az attribútumot, ha be volt állítva, lehetővé téve, hogy a DSN vagy a kapcsolati sztring értéke élvezzen elsőbbséget.
SQL_COPT_SS_ACCESS_TOKEN SQL_IS_POINTER Mutatópont ACCESSTOKEN vagy NULL NULLA Ha nem null értékű, a használni kívánt Microsoft Entra hozzáférési jogkivonatot adja meg. Hiba hozzáférési jogkivonatot és UID, PWD, Trusted_Connection vagy Authentication kapcsolati karakterlánc kulcsszavakat vagy azokkal egyenértékű attribútumokat megadni.
MEGJEGYZÉS: Az ODBC Driver 13.1-es verziója csak Windows rendszeren támogatja ezt a beállítást.
SQL_COPT_SS_ENCRYPT SQL_IS_INTEGER SQL_EN_OFF, SQL_EN_ON (lásd a leírást) A kapcsolat titkosítását szabályozza. SQL_EN_OFF és SQL_EN_ON tiltsa le és engedélyezze a titkosítást. Ha a beállítás előattribútum-értéke nem Authentication, illetve none be van állítva, és SQL_COPT_SS_ACCESS_TOKEN nincs megadva sem a DSN-ben, sem a kapcsolati sztringben, akkor az alapértelmezett érték a Encrypt lesz. Ellenkező esetben az alapértelmezett érték a következő SQL_EN_OFF. Ha a kapcsolatattribútum SQL_COPT_SS_AUTHENTICATION nincs nonebeállítva, explicit módon állítsa be SQL_COPT_SS_ENCRYPT a kívánt értéket, ha Encrypt a DSN-ben vagy a kapcsolati sztringben nincs megadva. Az attribútum érvényes értéke határozza meg, hogy a rendszer titkosítást használ-e a kapcsolathoz.
SQL_COPT_SS_OLDPWD - - - A Microsoft Entra-azonosító nem támogatott, mivel a Microsoft Entra-tagok jelszómódosításai nem hajthatóak végre ODBC-kapcsolaton keresztül.

Az SQL Server-hitelesítés jelszavas lejárata az SQL Server 2005-ben jelent meg. Az SQL_COPT_SS_OLDPWD attribútum hozzá lett adva, hogy az ügyfél a régi és az új jelszót is megadja a kapcsolathoz. Ha ez a tulajdonság be van állítva, a szolgáltató nem fogja használni a kapcsolatkészletet az első kapcsolathoz vagy a jövőbeli kapcsolatokhoz, mivel a kapcsolati sztring tartalmazza a "régi jelszót", amely most megváltozott.
SQL_COPT_SS_INTEGRATED_SECURITY SQL_IS_INTEGER SQL_IS_OFF,SQL_IS_ON SQL_IS_OFF Elavult; használja inkább a SQL_COPT_SS_AUTHENTICATION beállítást SQL_AU_AD_INTEGRATED .

Kényszeríti a Windows-hitelesítés használatát (Kerberos Linuxon és macOS rendszeren) a hozzáférés-ellenőrzéshez a kiszolgálói bejelentkezéskor. Windows-hitelesítés használatakor az illesztőprogram figyelmen kívül hagyja a felhasználói azonosító és jelszó értékeket, amelyeket SQLConnect, SQLDriverConnect vagy SQLBrowseConnect feldolgozás részeként adtak meg.

Az ActiveDirectoryPassword már nem támogatott

Megjegyzés:

Az ActiveDirectoryPassword hitelesítési lehetőség (Microsoft Entra ID Password authentication) elavult.

A Microsoft Entra ID jelszó az OAuth 2.0-erőforrás-tulajdonos jelszó-hitelesítési adatok (ROPC) támogatásán alapul, amely lehetővé teszi, hogy az alkalmazás közvetlenül kezelve a felhasználó jelszavát jelentkezzen be.

A Microsoft azt javasolja, hogy ne használja a ROPC-folyamatot; nem kompatibilis a többtényezős hitelesítéssel (MFA). A legtöbb forgatókönyvben biztonságosabb alternatívák érhetők el és ajánlottak. Ez a folyamat nagy fokú bizalmat igényel az alkalmazásban, és olyan kockázatokat hordoz, amelyek más folyamatokban nem jelennek meg. Ezt a folyamatot csak akkor érdemes használni, ha a biztonságosabb folyamatok nem életképesek. A Microsoft távolodik ettől a magas kockázatú hitelesítési folyamattól, hogy megvédje a felhasználókat a rosszindulatú támadásoktól. További információ: Kötelező többtényezős hitelesítés tervezése az Azure-ban.

Ha a felhasználói környezet elérhető, használja az ActiveDirectoryInteractive hitelesítést.

Ha a felhasználói környezet nem érhető el, és az alkalmazás az Azure-infrastruktúrában fut, használja az ActiveDirectoryMSI -t (vagy egyes illesztőprogramokban az ActiveDirectoryManagedIdentitást). A felügyelt identitás kiküszöböli a titkos kódok és tanúsítványok karbantartásának és elforgatásának többletterhelését. Ha nem tudja használni a felügyelt identitást, használja az ActiveDirectoryServicePrincipal hitelesítést.

Figyelmeztetés

Ne használjon Service Principal hitelesítést, ha rendelkezésre áll egy felhasználói kontextus. A csak alkalmazáshoz való hozzáférés eredendően magas jogosultsági szintű, gyakran bérlőszintű hozzáférést biztosít, és potenciálisan lehetővé teszi egy rossz szereplő számára az ügyféladatok elérését bármely felhasználó számára.

Felhasználói felületi kiegészítések a Microsoft Entra ID-hoz (csak Windows-illesztőprogram esetén)

Az illesztőprogram DSN-beállítását és kapcsolati felhasználói felületét továbbfejlesztettük a Microsoft Entra-azonosítóval való hitelesítéshez szükséges további lehetőségekkel.

DSN-k létrehozása és szerkesztése a felhasználói felületen

Meglévő DSN létrehozásakor vagy szerkesztésekor használhatja a Microsoft Entra hitelesítési beállításait az illesztőprogram beállítási felhasználói felületén:

Authentication=ActiveDirectoryIntegrated Az Azure SQL-be integrált Microsoft Entra-hitelesítéshez

A DSN létrehozási és szerkesztési képernyője, amelyen a Microsoft Entra integrált hitelesítés van kiválasztva.

Authentication=ActiveDirectoryPassword Microsoft Entra felhasználónév/jelszó hitelesítéshez az Azure SQL-re

Megjegyzés:

Az ActiveDirectoryPassword elavultnak számít. További információ: Az ActiveDirectoryPassword elavult.

A DSN létrehozási és szerkesztési képernyője, amelyen a Microsoft Entra Password hitelesítés van kiválasztva.

Authentication=ActiveDirectoryInteractive Microsoft Entra interaktív hitelesítés Azure SQL számára

A DSN létrehozási és szerkesztési képernyője, amelyen a Microsoft Entra Interaktív hitelesítés van kiválasztva.

Megjegyzés:

Az illesztőprogram 17.9-es verziójától az interaktív hitelesítési viselkedés megváltozott. A rendszer mindig hitelesítő adatokat kér a felhasználóktól, kivéve, ha az illesztőprogram rendelkezik érvényes hozzáférési jogkivonattal. Ez a módosítás megakadályozza, hogy a Microsoft Entra-hoz csatlakoztatott eszközök felhasználói kihagyják a kérést, és a hitelesítés használatakor ActiveDirectoryInteractive automatikusan jelentkezzenek be gyorsítótárazott hitelesítő adatokkal.

Authentication=SqlPassword felhasználónév/jelszó hitelesítése az SQL Serveren és az Azure SQL-en

A DSN létrehozási és szerkesztési képernyője, amelyen az SQL Server-hitelesítés van kiválasztva.

Trusted_Connection=Yes a Windows hagyományos SSPI-integrációs hitelesítéshez

A DSN létrehozási és szerkesztési képernyője, amelyen az integrált Windows-hitelesítés van kiválasztva.

Authentication=ActiveDirectoryMsi a Microsoft Entra által felügyelt identitáshitelesítéshez

A DSN létrehozási és szerkesztési képernyője, amelyen a felügyeltszolgáltatás-identitás hitelesítése van kiválasztva.

Authentication=ActiveDirectoryServicePrincipal a Microsoft Entra szolgáltatásnév-hitelesítéshez

A DSN létrehozási és szerkesztési képernyő, ahol a Microsoft Entra szolgáltatásfő hitelesítése van kiválasztva.

A hét lehetőség a következőkre vonatkozik: Trusted_Connection=Yes (a meglévő, csak Windows SSPI-t használó integrált hitelesítés) és Authentication=, ActiveDirectoryIntegrated, SqlPassword, ActiveDirectoryPassword, ActiveDirectoryInteractive, ActiveDirectoryMsi, ActiveDirectoryServicePrincipal.

SQLDriverConnect-parancssor (csak Windows-illesztőprogram esetén)

Az SQLDriverConnect által a kapcsolat befejezéséhez szükséges információk kérésekor megjelenő parancssori párbeszédpanel négy új lehetőséget tartalmaz a Microsoft Entra-hitelesítéshez:

Az SQLDriverConnect által megjelenített SQL Server Bejelentkezési párbeszédpanel.

Ezek a lehetőségek megegyeznek a fenti DSN beállítási felhasználói felületén elérhető hat lehetőséggel.

Példa kapcsolati sztringekre

  1. SQL Server-hitelesítés – örökölt szintaxis. A kiszolgálótanúsítvány nincs érvényesítve, és a titkosítást csak akkor használja a rendszer, ha a kiszolgáló kényszeríti. A felhasználónév/jelszó a kapcsolati sztringben lesz átadva.

    server=Server;database=Database;UID=UserName;PWD=<password>;Encrypt=no;TrustServerCertificate=yes;

  2. SQL-hitelesítés – új szintaxis. Az ügyfél titkosítást kér (az alapértelmezett érték Encrypttrue) és a kiszolgálótanúsítvány érvényesítve lesz, függetlenül a titkosítási beállítástól (hacsak nincs TrustServerCertificate beállítva true). A felhasználónév/jelszó a kapcsolati sztringben lesz átadva.

    server=Server;database=Database;UID=UserName;PWD=<password>;Authentication=SqlPassword;

  3. Integrált Windows-hitelesítés (Kerberos Linuxon és macOS rendszeren) SSPI használatával (SQL Server vagy SQL IaaS) – aktuális szintaxis. A kiszolgálótanúsítvány nincs érvényesítve, kivéve, ha a kiszolgáló titkosítást igényel.

    server=Server;database=Database;Trusted_Connection=yes;Encrypt=no;

  4. (Csak Windows-illesztőprogram.) Integrált Windows-hitelesítés SSPI használatával (ha a céladatbázis SQL Serveren vagy Azure-beli virtuális gépeken futó SQL Serveren található) – új szintaxis. Az ügyfél titkosítást kér (az alapértelmezett érték Encrypttrue) és a kiszolgálótanúsítvány érvényesítve lesz, függetlenül a titkosítási beállítástól (hacsak nincs TrustServerCertificate beállítva true).

    server=Server;database=Database;Authentication=ActiveDirectoryIntegrated;

  5. Microsoft Entra felhasználónév/jelszó hitelesítés (ha a céladatbázis az Azure SQL Database-ben vagy az Azure SQL Managed Instance-ben található). A kiszolgálótanúsítvány a titkosítási beállítástól függetlenül érvényesítve lesz (hacsak nincs TrustServerCertificate beállítva true). A felhasználónév/jelszó a kapcsolati sztringben lesz átadva.

    Megjegyzés:

    Az ActiveDirectoryPassword elavultnak számít. További információ: Az ActiveDirectoryPassword elavult.

    server=Server;database=Database;UID=UserName;PWD=<password>;Authentication=ActiveDirectoryPassword;Encrypt=yes;

  6. (Windows és Linux/macOS 17.6+, csak illesztőprogram.) Integrált Windows-hitelesítés ADAL vagy Kerberos használatával, amely magában foglalja a Windows-fiók hitelesítő adatainak beváltását egy Microsoft Entra hozzáférési jogkivonathoz, feltéve, hogy a céladatbázis az Azure SQL-ben található. A kiszolgálótanúsítvány a titkosítási beállítástól függetlenül érvényesítve lesz (hacsak nincs TrustServerCertificate beállítva true). Linux/macOS rendszeren megfelelő Kerberos-jegynek kell rendelkezésre állnia. További információkért tekintse meg az összevont fiókokról és az integrált hitelesítés használatáról szóló alábbi szakaszt.

    server=Server;database=Database;Authentication=ActiveDirectoryIntegrated;Encrypt=yes;

  7. (Csak Windows-illesztőprogram.) A Microsoft Entra Interactive Authentication a Microsoft Entra többtényezős hitelesítési technológiával állítja be a kapcsolatot. Ebben a módban a bejelentkezési azonosító megadásával egy Azure-hitelesítési párbeszédpanel aktiválódik, és lehetővé teszi a felhasználó számára, hogy további ellenőrzést adjon meg a kapcsolat befejezéséhez. A felhasználónév a kapcsolati sztringben lesz átadva.

    server=Server;database=Database;UID=UserName;Authentication=ActiveDirectoryInteractive;Encrypt=yes;

    Windows Azure Authentication felhasználói felület az Active Directory interaktív hitelesítés használatakor.

  8. A Microsoft Entra felügyelt identitáshitelesítés rendszer által hozzárendelt vagy felhasználó által hozzárendelt felügyelt identitást használhat. Felhasználó által hozzárendelt identitás esetén állítsa a UID-t az identitás ügyfél-azonosítójára az Azure App Service vagy az Azure Container Instance esetében; ellenkező esetben használja az objektumazonosítót. A rendszer által hozzárendelt identitáshoz nincs szükség UID azonosítóra.

    Rendszer által hozzárendelt identitás esetén:

    server=Server;database=Database;Authentication=ActiveDirectoryMsi;Encrypt=yes;

    Felhasználó által hozzárendelt identitás esetén az objektumazonosító értéke a következő myObjectId:

    server=Server;database=Database;UID=myObjectId;Authentication=ActiveDirectoryMsi;Encrypt=yes;

  9. Microsoft Entra szolgáltatói név hitelesítése

    server=Server;database=Database;UID=clientId;PWD=<password>;Authentication=ActiveDirectoryServicePrincipal;Encrypt=yes;

Megjegyzések

  • Ha a 17.4.2-es verzió előtti Windows ODBC-illesztővel használja a Microsoft Entra-beállításokat, győződjön meg arról, hogy az SQL Server Active Directory hitelesítési kódtára telepítve van. Linux- és macOS-illesztőprogramok használatakor győződjön meg arról, hogy libcurl telepítve van. A 17.2-es és újabb verziójú illesztőprogramok esetében ez nem explicit függőség, mivel a többi hitelesítési módszerhez vagy ODBC-művelethez nem szükséges.

  • Ha a Microsoft Entra-konfiguráció feltételes hozzáférési szabályzatokat tartalmaz, és az ügyfél Windows 10 vagy Server 2016 vagy újabb, az integrált vagy felhasználónév/jelszó használatával történő hitelesítés sikertelen lehet. A feltételes hozzáférési szabályzatok használatához a Web Account Manager (WAM) szükséges, amelyet a Windows illesztőprogramjának 17.6-os vagy újabb verziója támogat. A WAM használatához hozzon létre egy új sztringértéket a ADALuseWAM, HKLM\Software\ODBC\ODBCINST.INI\ODBC Driver 17 for SQL Server vagy HKCU\Software\ODBC\ODBC.INI\<your-user-DSN-name> számára, amely globális, felhasználói DSN- vagy rendszerDSN-hatókörű konfigurációt jelöl, és állítsa ennek értékét 1-re. Vegye figyelembe, hogy a WAM-hitelesítés nem támogatja az alkalmazás más felhasználóként való futtatását runas. A feltételes hozzáférési szabályzatokat igénylő forgatókönyvek linuxos vagy macOS rendszeren nem támogatottak.

  • Ha SQL Server-fiók felhasználónevével és jelszavával szeretne csatlakozni, használhatja az új SqlPassword lehetőséget, amely különösen az Azure SQL-hez ajánlott, mivel ez a beállítás biztonságosabb kapcsolati alapértelmezett beállításokat tesz lehetővé.

  • Ha Microsoft Entra-fiók felhasználónevével és jelszavával szeretne csatlakozni, adja meg Authentication=ActiveDirectoryPassword a kapcsolati sztringet, valamint a UIDPWD felhasználónevet és a jelszót tartalmazó kulcsszavakat.

    Megjegyzés:

    Az ActiveDirectoryPassword elavultnak számít. További információ: Az ActiveDirectoryPassword elavult.

  • Ha Windowsos integrált vagy Microsoft Entra Integrated (Windows és Linux/macOS 17.6+, csak illesztőprogram) hitelesítéssel szeretne csatlakozni, adja meg Authentication=ActiveDirectoryIntegrated a kapcsolati sztringben. Az illesztőprogram automatikusan kiválasztja a megfelelő hitelesítési módot. A 17.7-s vagy korábbi UIDPWD illesztőprogram-verziók esetében nem szabad megadni. Az illesztőprogram 17.8-es verziójától kezdve a UID és a PWD figyelmen kívül marad.

  • Interaktív hitelesítéssel való csatlakozáshoz a Microsoft Entra szolgáltatással (csak Windows-illesztőprogram esetén) meg kell adni a UID értéket. A 17.7-s és korábbi PWD illesztőprogram-verziók esetében nem szabad megadni. Az illesztőprogram 17.8-es PWD verziójától kezdve a rendszer figyelmen kívül hagyja.

  • A 18.1-es verziótól kezdve már nem használja alapértelmezés szerint a Microsoft Entra ID összevont hitelesítést, Trusted_Connection=Yes és helyette SSPI-integrációt használ. Ha ehhez a beállításhoz Microsoft Entra-azonosítót szeretne használni, TrustedConnection_UseAAD=Yes konfigurálnia kell.

  • Az ODBC-illesztőprogram 17.7-s és újabb verziói ismert problémát tapasztalnak a kapcsolat időtúllépésével kapcsolatban, ha a Microsoft Entra-hitelesítés és a kényszerített titkosítás engedélyezve van egy SQL Server-példányon. Az SQL Server hibanaplója a következő hibaüzeneteket tartalmazhatja: "Hiba: 33155, Súlyosság: 20, Állapot: 1. Megszakadási esemény történt, amikor a kiszolgáló összevont hitelesítési jogkivonatra vár. Ennek oka lehet az ügyfél bezárása vagy a kiszolgáló időtúllépése." Ha magas rendelkezésre állású megoldásokat használ, mint például az Always On rendelkezésre állási csoportok vagy a feladatátvevő fürtpéldányok, az SQL Server belső fürtkommunikációjára ez a viselkedés hatással lehet, ami befolyásolhatja az erőforrások hozzáférhetőségét. A fürtnaplóban a következőhöz hasonló hibaüzenetek jelenhetnek meg: [hadrag] Connect to SQL Server ...ODBC Error: [HY000] [Microsoft][ODBC Driver 17 for SQL Server]An unknown error has occurred. Detailed error information is not available. (0). Az ODBC-illesztő 17.10-s és újabb verziói kijavítják ezt a problémát, és az SQL Server 2022 GDR KB5021522 /CU1 KB5022375, a javítást tartalmazó legújabb illesztőprogram az SQL Server telepítésével van telepítve. Az ODBC-illesztőprogram telepített verzióját az ODBC adatforrás-rendszergazdájára hivatkozva ellenőrizheti.

  • Az ODBC-illesztőprogram 18.3-s verziójától kezdve a felügyelt identitás (ActiveDirectoryMSI) hitelesítése támogatott az Azure Arc és az Azure Cloud Shell esetében.

Hitelesítés hozzáférési jogkivonattal

A SQL_COPT_SS_ACCESS_TOKEN kapcsolat előtti attribútum lehetővé teszi, hogy a Microsoft Entra ID-ból beszerzett hozzáférési jogkivonatot használjuk a felhasználónév és jelszó helyett a hitelesítéshez, emellett pedig kiküszöböli, hogy az illesztőprogram egyeztesse és beszerezze a hozzáférési jogkivonatot. Hozzáférési jogkivonat használatához állítsa a kapcsolati SQL_COPT_SS_ACCESS_TOKEN attribútumot egy szerkezetre mutató mutatóra ACCESSTOKEN :

typedef struct AccessToken
{
    DWORD dataSize;
    BYTE data[];
} ACCESSTOKEN;

Ez ACCESSTOKEN egy 4 bájt hosszúságú változó hosszúságú struktúra, amelyet a hozzáférési jogkivonatot alkotó átlátszatlan adatok bájtjainak hossza követ. Az SQL Server hozzáférési jogkivonatok kezelésének módja miatt az OAuth 2.0 JSON-válaszból származó jogkivonatot ki kell bővíteni úgy, hogy minden bájt után egy nulla bekerülő bájt legyen, hasonlóan egy kizárólag ASCII karaktereket tartalmazó UCS-2 karakterlánchoz. A token átlátszatlan érték, és a megadott hossz bájtban nem tartalmazhat null lezáró karaktert. A jelentős hossz- és formátumkorlátozások miatt ez a hitelesítési módszer csak programozott módon érhető el a SQL_COPT_SS_ACCESS_TOKEN kapcsolati attribútumon keresztül.

A ACCESSTOKEN kapcsolatfoglalást annyi ideig kell megőrizni, ameddig a kapcsolatfoglalás is érvényben van. Ellenkező esetben hozzáférés-szabálysértések léphetnek fel. A mutató a kapcsolatkészlet kulcsának része, így egy új mutató új készletet és új kapcsolatokat eredményez. Ha egy jogkivonat lejár, megújíthatja a hozzáférési jogkivonatot úgy, hogy közvetlenül frissíti az adatpuffert a meglévő kapcsolatok használatának folytatásához.

Nincs megfelelő DSN vagy kapcsolati sztring kulcsszó. A kapcsolati sztring nem tartalmazhat UID, PWDvagy AuthenticationTrusted_Connectionkulcsszavakat.

Megjegyzés:

Az ODBC-illesztőprogram 13.1-es verziója csak Windows rendszeren támogatja ezt a hitelesítést. A későbbi verziók minden platformon támogatják ezt a hitelesítést.

Microsoft Entra hitelesítési mintakód

Az alábbi minta az SQL Serverhez való csatlakozáshoz szükséges kódot mutatja be a Microsoft Entra ID-val a kapcsolati kulcsszavakkal. Nincs szükség az alkalmazás kódjának módosítására. A kapcsolati sztring vagy a DSN az egyetlen módosítás, amely a Microsoft Entra-azonosító hitelesítéshez való használatához szükséges:

    ...
    SQLCHAR connString[] = "Driver={ODBC Driver 18 for SQL Server};Server={server};UID=myuser;PWD=<password>;Authentication=ActiveDirectoryInteractive;Encrypt=yes;"
    ...
    SQLDriverConnect(hDbc, NULL, connString, SQL_NTS, NULL, 0, NULL, SQL_DRIVER_NOPROMPT);
    ...

Az alábbi minta a Microsoft Entra hozzáférési jogkivonat-hitelesítéssel történő SQL Serverhez való csatlakozáshoz szükséges kódot mutatja be. Ebben az esetben módosítani kell az alkalmazás kódját a hozzáférési jogkivonat feldolgozásához és a társított kapcsolati attribútum beállításához.

    SQLCHAR connString[] = "Driver={ODBC Driver 18 for SQL Server};Server={server};Encrypt=yes;"
    SQLCHAR accessToken[] = "eyJ0eXAiOi..."; // In the format extracted from an OAuth JSON response
    ...
    DWORD dataSize = 2 * strlen(accessToken);
    ACCESSTOKEN *pAccToken = malloc(sizeof(ACCESSTOKEN) + dataSize);
    pAccToken->dataSize = dataSize;
    // Expand access token with padding bytes
    for(int i = 0, j = 0; i < dataSize; i += 2, j++) {
        pAccToken->data[i] = accessToken[j];
        pAccToken->data[i+1] = 0;
    }
    ...
    SQLSetConnectAttr(hDbc, SQL_COPT_SS_ACCESS_TOKEN, (SQLPOINTER)pAccToken, SQL_IS_POINTER);
    SQLDriverConnect(hDbc, NULL, connString, SQL_NTS, NULL, 0, NULL, SQL_DRIVER_NOPROMPT);
    ...
    free(pAccToken);

Az alábbi kapcsolati sztring minta a Microsoft Entra interaktív hitelesítéshez használható. Nem tartalmaz PWD-mezőt, mivel a jelszó be lesz írva az Azure Authentication képernyőn.

SQLCHAR connString[] = "Driver={ODBC Driver 18 for SQL Server};Server={server};UID=myuser;Authentication=ActiveDirectoryInteractive;Encrypt=yes;"

Az alábbi kapcsolati sztring minta a Microsoft Entra által felügyelt identitáshitelesítéshez használható. A UID a felhasználó által hozzárendelt identitás használatakor a felhasználói identitás objektum-/ügyfélazonosítójára van állítva.

// For system-assigned identity,
SQLCHAR connString[] = "Driver={ODBC Driver 18 for SQL Server};Server={server};Authentication=ActiveDirectoryMsi;Encrypt=yes;"
...
// For user-assigned identity with object ID equals to myObjectId
SQLCHAR connString[] = "Driver={ODBC Driver 18 for SQL Server};Server={server};UID=myObjectId;Authentication=ActiveDirectoryMsi;Encrypt=yes;"

Megfontolandó szempontok az ADFS összevont fiókok Linux/macOS rendszeren való használatához

A 17.6-os verziótól kezdve a Linux és a macOS illesztőprogramjai támogatják a Microsoft Entra ADFS által összevont fiókokkal történő hitelesítést felhasználónév/jelszó (ActiveDirectoryPassword) vagy Kerberos (ActiveDirectoryIntegrated) használatával. Az integrált mód használata esetén a platform bizonyos korlátozásoktól függ.

Ha olyan felhasználóval hitelesít, akinek az UPN-utótagja eltér a Kerberos-tartománytól, vagyis egy alternatív UPN-utótag van használatban, a Kerberos-jegyek beszerzésekor az Enterprise Principal lehetőséget kell használnia (használja a -E opciót a kinit-vel, és adja meg a főnév formában a user@federated-domain-t). Így az illesztő megfelelően meghatározhatja az összevont tartományt és a Kerberos tartományt is.

A parancs kimenetének klist vizsgálatával ellenőrizheti, hogy elérhető-e megfelelő Kerberos-jegy. Ha az összevont tartomány megegyezik a Kerberos-tartománnyal és az UPN utótagjával, az elsődleges név az alábbi formában szerepel: user@realm. Ha más, a névnek ebben a formában kell lennie: user@federated-domain@realm.

Linux

A SUSE 11-ben az 1.6.x alapértelmezett Kerberos-kódtár-verziója nem támogatja a másodlagos UPN-utótagok használatához szükséges Enterprise Principal beállítást. Ha alternatív UPN-utótagokat szeretne használni a Microsoft Entra integrált hitelesítésével, frissítse a Kerberos-kódtárat 1.7-re vagy újabbra.

Alpine Linuxon az alapértelmezett beállítás libcurl nem támogatja a Microsoft Entra integrált hitelesítéséhez szükséges SPNEGO-/Kerberos-hitelesítést.

macOS

A rendszer Kerberos könyvtára kinit támogatja az Enterprise Principal-t a --enterprise opcióval, de implicit módon névkanonizálást is végez, ami megakadályozza alternatív UPN-utótagok használatát. Ha alternatív UPN-utótagokat szeretne használni a Microsoft Entra integrált hitelesítésével, telepítsen egy újabb Kerberos-kódtárat , és használja annak parancsát a opcióval, amint azt fent leírtuk.