Sdílet prostřednictvím


Použití Microsoft Entra ID s ovladačem ODBC

Stáhnout ovladač ODBC

Poznámka:

I když je ID Microsoft Entra novým názvem služby Azure Active Directory (Azure AD), aby se zabránilo narušení existujících prostředí, Azure AD stále zůstává v některých pevně zakódovaných prvcích, jako jsou pole uživatelského rozhraní, poskytovatelé připojení, kódy chyb a rutiny. V tomto článku jsou tyto dva názvy zaměnitelné.

Účel

Ovladač Microsoft ODBC pro SQL Server verze 13.1 a vyšší umožňuje aplikacím ODBC připojit se k Azure SQL Database nebo Azure SQL Managed Instance pomocí identit v Microsoft Entra ID. Ověřování je možné provést pomocí uživatelského jména a hesla, přístupového tokenu Microsoft Entra, spravované identity Microsoft Entra (17.3+) nebo integrovaného ověřování systému Windows v federovaném prostředí připojeném k doméně (17.6+ v Linuxu/macOS). Pro ovladač ODBC verze 13.1 je ověření přístupového tokenu služby Microsoft Entra pouze Windows. Ovladač ODBC verze 17 a vyšší podporuje toto ověřování na všech platformách (Windows, Linux a macOS). Nová metoda interaktivního ověřování Microsoft Entra, která podporuje vícefaktorové ověřování, je zavedena v ovladači ODBC verze 17.1 pro Windows. V ovladači ODBC verze 17.3.1.1 byla přidána nová metoda ověřování spravované identity Microsoft Entra pro spravované identity přiřazené systémem i spravované identity přiřazené uživatelem. Všechny tyto možnosti se provádějí pomocí nových klíčových slov DSN a připojovacího řetězce a atributů připojení.

Pokud chcete použít ověřování Microsoft Entra, musíte nakonfigurovat zdroj dat Azure SQL. Další informace najdete v tématu Konfigurace a správa ověřování Microsoft Entra pro Azure SQL.

Poznámka:

Ovladač ODBC pro Linux a macOS, používaný před verzí 17.6, podporuje pouze ověřování Microsoft Entra přímo vůči Microsoft Entra ID. Pokud používáte ověřování pomocí uživatelského jména a hesla Microsoft Entra z klienta linuxu nebo macOS a vaše konfigurace Microsoft Entra vyžaduje, aby se klient ověřil vůči koncovému bodu služby Microsoft Entra Federation Services, může ověření selhat. Od verze ovladače 17.6 bylo toto omezení odebráno.

Nová a/nebo upravená klíčová slova DSN a připojovacího řetězce

Klíčové Authentication slovo lze použít při připojování k dsN nebo připojovacímu řetězci pro řízení režimu ověřování. Hodnota nastavená v připojovacím řetězci přepíše hodnotu v dsN, pokud je k dispozici. Přednastavená hodnota atributuAuthentication pro nastavení je hodnota vypočítaná z připojovacího řetězce a hodnot DSN.

Název Hodnoty Výchozí Description
Authentication (nenastaveno), (prázdný řetězec), SqlPassword, ActiveDirectoryPassword, ActiveDirectoryIntegrated, ActiveDirectoryInteractive, ActiveDirectoryMsi, ActiveDirectoryServicePrincipal (není nastaveno) Řídí režim ověřování.
HodnotaDescription
(není nastaveno)Režim ověřování určený jinými klíčovými slovy (existující starší možnosti připojení))
(prázdný řetězec)(Pouze připojovací řetězec.) Překonat a odstranit hodnota definovaná v DSN.
SqlPasswordPřímé ověření u SQL pomocí uživatelského jména a hesla
ActiveDirectoryPasswordOvěřte se pomocí identity Microsoft Entra pomocí uživatelského jména a hesla.
ActiveDirectoryIntegrated Windows a Linux/Mac 17.6+, pouze ovladač. Ověřte se pomocí přihlašovacích údajů Windows federovaných prostřednictvím ID Microsoft Entra s použitím integrovaného ověřování.
ActiveDirectoryInteractive Pouze ovladač systému Windows. Ověřte se pomocí účtu Microsoft Entra prostřednictvím interaktivního ověření
ActiveDirectoryMsiOvěřte se pomocí spravované identity Microsoft Entra. Pro identitu přiřazenou uživatelem nastavte UID na ID klienta identity pro Azure App Service nebo Azure Container Instance; v opačném případě použijte JEHO ID objektu. U identity přiřazené systémem není UID povinné.
ActiveDirectoryServicePrincipal(17.7+) Ověřte se pomocí služebního principálu Microsoft Entra. UID je nastaveno na ID klienta instančního objektu. PwD je nastaven na tajný klíč klienta.
Encrypt (není nastaveno), Yes/Mandatory(18.0+),No/Optional (18.0+), Strict(18.0+) (viz popis) Řídí šifrování připojení. Pokud hodnota atributu Authentication není none v DSN nebo připojovacím řetězci, výchozí je Yes. Výchozí hodnota je také Yes ve verzích 18.0.1 nebo novější. V opačném případě je Novýchozí hodnota . Pokud atribut SQL_COPT_SS_AUTHENTICATION přepíše předchozí hodnotu atributu Authentication, explicitně nastavte hodnotu Šifrování v DSN, připojovacím řetězci nebo připojovacím atributu. Hodnota atributu šifrování je Yes, pokud je hodnota nastavena na Yes v DSN nebo připojovacím řetězci.

Nové a/nebo změněné atributy připojení

Následující atributy připojení před připojením byly zavedeny nebo upraveny tak, aby podporovaly ověřování Microsoft Entra. Pokud má atribut připojení odpovídající připojovací řetězec nebo klíčové slovo DSN a je nastaven, má atribut připojení přednost.

Vlastnost Typ Hodnoty Výchozí 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 (není nastaveno) Viz popis klíčového Authentication slova výše. SQL_AU_NONE je poskytována k explicitnímu přepsání hodnoty Authentication v DSN a/nebo připojovacím řetězci, zatímco SQL_AU_RESET zruší atribut, pokud byl nastaven, umožňující, aby hodnota DSN nebo připojovacího řetězce měla přednost.
SQL_COPT_SS_ACCESS_TOKEN SQL_IS_POINTER Ukazatel na ACCESSTOKEN nebo NULL NULA Pokud není null, určuje přístupový token Microsoft Entra, který se má použít. Jedná se o chybu při zadávání přístupového tokenu a také UID klíčového slova, PWD, Trusted_Connection, nebo Authentication klíčových slov připojovacího řetězce, nebo jejich ekvivalentních atributů.
POZNÁMKA: Ovladač ODBC verze 13.1 podporuje pouze toto nastavení ve Windows.
SQL_COPT_SS_ENCRYPT SQL_IS_INTEGER SQL_EN_OFF, SQL_EN_ON (viz popis) Řídí šifrování připojení. SQL_EN_OFF a SQL_EN_ON zakažte a povolte šifrování. Pokud hodnota atributu před nastavením Authentication není none nebo je SQL_COPT_SS_ACCESS_TOKEN nastaveno, a Encrypt nebylo zadáno ani v DSN, ani v připojovacím řetězci, je výchozí hodnota SQL_EN_ON. V opačném případě je SQL_EN_OFFvýchozí hodnota . Pokud je atribut SQL_COPT_SS_AUTHENTICATION připojení nastaven na hodnotu odlišnou od none, nastavte explicitně SQL_COPT_SS_ENCRYPT na požadovanou hodnotu, v případě, že Encrypt nebyl zadán v DSN nebo připojovacím řetězci. Platná hodnota tohoto atributu určuje , zda se pro připojení používá šifrování.
SQL_COPT_SS_OLDPWD - - - U ID Microsoft Entra není podporováno, protože změny hesel v instančních objektech Microsoft Entra nelze provést prostřednictvím připojení ODBC.

V SYSTÉMU SQL Server 2005 bylo zavedeno vypršení platnosti hesla pro ověřování SQL Serveru. Byl SQL_COPT_SS_OLDPWD přidán atribut, který klientovi umožní zadat staré i nové heslo pro připojení. Pokud je tato vlastnost nastavena, zprostředkovatel nebude používat fond připojení pro první a budoucí připojení, protože připojovací řetězec obsahuje "staré heslo", které se nyní změnilo.
SQL_COPT_SS_INTEGRATED_SECURITY SQL_IS_INTEGER SQL_IS_OFF,SQL_IS_ON SQL_IS_OFF Zastaralé; použijte SQL_COPT_SS_AUTHENTICATION hodnotu nastavenou na SQL_AU_AD_INTEGRATED místo toho.

Vynutí použití ověřování systému Windows (Kerberos na Linuxu a macOS) pro ověření přístupu při přihlašování k serveru. Při použití ověřování systému Windows ovladač ignoruje identifikátor uživatele a hodnoty hesla zadané jako součást SQLConnect, SQLDriverConnectnebo SQLBrowseConnect zpracování.

Doplňky uživatelského rozhraní pro Microsoft Entra ID (pouze ovladač Systému Windows)

Nastavení dsN a uživatelská rozhraní pro připojení ovladače byly vylepšeny o další možnosti potřebné k ověření pomocí Microsoft Entra ID.

Vytváření a úpravy sítí DSN v uživatelském rozhraní

Při vytváření nebo úpravě existujícího dsN pomocí uživatelského rozhraní pro nastavení ovladače je možné použít možnosti ověřování Microsoft Entra:

Authentication=ActiveDirectoryIntegrated pro integrované ověřování Microsoft Entra do Azure SQL

Obrazovka pro vytvoření a úpravu DSN s vybraným integrovaným ověřováním pomocí Microsoft Entra.

Authentication=ActiveDirectoryPassword pro ověřování uživatelského jména a hesla pomocí Microsoft Entra pro Azure SQL

Obrazovka pro vytváření a úpravy DSN s vybraným ověřováním hesla Microsoft Entra

Authentication=ActiveDirectoryInteractive pro interaktivní ověřování Microsoft Entra do Azure SQL

Obrazovka pro vytváření a úpravy DSN s vybraným ověřováním Microsoft Entra Interactive

Poznámka:

Od verze 17.9 se změnilo chování interaktivního ověřování. Uživatelé budou vždy vyzváni k zadání přihlašovacích údajů, pokud ovladač nemá platný přístupový token uložený v mezipaměti. Tato změna zabrání uživatelům na zařízeních připojených k Microsoft Entra přeskočit výzvu a automaticky se přihlásit pomocí přihlašovacích údajů uložených v mezipaměti při ověřování ActiveDirectoryInteractive .

Authentication=SqlPassword pro ověřování pomocí uživatelského jména a hesla pro SQL Server a Azure SQL

Obrazovka pro vytváření a úpravy DSN s vybraným ověřováním SQL Serveru.

Trusted_Connection=Yes pro integrovací ověřování SSPI starších verzí systému Windows

Obrazovka pro vytváření a úpravy DSN s vybraným integrovaným ověřováním systému Windows.

Authentication=ActiveDirectoryMsi pro ověřování identit spravovaných službou Microsoft Entra

Obrazovka pro vytváření a úpravy DSN s vybraným ověřováním identit spravované služby

Authentication=ActiveDirectoryServicePrincipal pro ověřování služebního principálu Microsoft Entra

Obrazovka pro vytváření a úpravy DSN s vybraným ověřováním instančního objektu Microsoft Entra.

Sedm možností odpovídá Trusted_Connection=Yes (existující starší verzi integrovaného ověřování Windows SSPI) a Authentication=ActiveDirectoryIntegrated, SqlPassword, ActiveDirectoryPassword, ActiveDirectoryInteractive, ActiveDirectoryMsi a ActiveDirectoryServicePrincipal v odpovídajícím pořadí.

SqlDriverConnect Prompt (pouze ovladač Systému Windows)

Dialogové okno výzvy zobrazené službou SQLDriverConnect, když požaduje informace potřebné k dokončení připojení, obsahuje čtyři nové možnosti ověřování Microsoft Entra:

Dialogové okno pro přihlášení k SQL Serveru zobrazené službou SQLDriverConnect

Tyto možnosti odpovídají stejným šesti dostupným v uživatelském rozhraní pro nastavení DSN výše.

Příklady připojovacích řetězců

  1. Ověřování SQL Serveru – starší syntaxe Certifikát serveru se neověřuje a šifrování se používá jenom v případě, že ho server vynucuje. Uživatelské jméno a heslo se předává v připojovacím řetězci.

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

  2. Ověřování SQL – nová syntaxe Klient požaduje šifrování (výchozí hodnota Encrypt je true) a certifikát serveru se ověří bez ohledu na nastavení šifrování (pokud není TrustServerCertificate nastaveno na true). Uživatelské jméno a heslo se předává v připojovacím řetězci.

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

  3. Integrované ověřování systému Windows (Kerberos v Linuxu a macOS) pomocí SSPI (na SQL Server nebo SQL IaaS) – aktuální syntaxe. Certifikát serveru se neověřuje, pokud server nevyžaduje šifrování.

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

  4. (Pouze ovladač systému Windows.) Integrované ověřování systému Windows pomocí SSPI (pokud je cílová databáze na SQL Serveru nebo SQL Serveru na virtuálních počítačích Azure) – nová syntaxe. Klient požaduje šifrování (výchozí hodnota Encrypt je true) a certifikát serveru se ověří bez ohledu na nastavení šifrování (pokud není TrustServerCertificate nastaveno na true).

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

  5. Ověřování uživatelským jménem a heslem Microsoft Entra (pokud je cílová databáze ve službě Azure SQL Database nebo ve službě Azure SQL Managed Instance). Certifikát serveru se ověří bez ohledu na nastavení šifrování (pokud TrustServerCertificate není nastavený na true). Uživatelské jméno a heslo se předává v připojovacím řetězci.

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

  6. (Windows a Linux/macOS 17.6+, pouze ovladač.) Integrované ověřování systému Windows pomocí ADAL nebo Kerberos, které zahrnuje použití přihlašovacích údajů účtu Windows k získání přístupového tokenu Microsoft Entra, pokud je cílová databáze v Azure SQL. Certifikát serveru se ověří bez ohledu na nastavení šifrování (pokud TrustServerCertificate není nastavený na true). V Linuxu nebo macOS musí být k dispozici vhodný lístek Kerberos. Další informace najdete v následující části o federovaných účtech a použití integrovaného ověřování.

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

  7. (Pouze ovladač systému Windows.) Microsoft Entra Interactive Authentication používá vícefaktorové ověřovací technologie Microsoft Entra k nastavení připojení. V tomto režimu se aktivuje dialogové okno ověřování Azure zadáním přihlašovacího ID a umožní uživateli zadat další ověření, aby připojení dokončil. Uživatelské jméno se předává v připojovacím řetězci.

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

    Uživatelské rozhraní ověřování Windows Azure při použití interaktivního ověřování Služby Active Directory

  8. Ověřování spravované identity Microsoft Entra může používat spravovanou identitu přiřazenou systémem nebo přiřazenou uživatelem. Pro identitu přiřazenou uživatelem nastavte UID na ID klienta identity pro Azure App Service nebo Azure Container Instance; v opačném případě použijte JEHO ID objektu. U identity přiřazené systémem není UID povinné.

    Pro identitu přiřazenou systémem:

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

    Pro identitu přiřazenou uživatelem s ID objektu rovná se myObjectId.

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

  9. Ověřování instančního objektu Microsoft Entra

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

Poznámky

  • Při použití možností Microsoft Entra s ovladačem ODBC systému Windows před verzí 17.4.2 se ujistěte, že je nainstalována knihovna Active Directory Authentication Library pro SQL Server. Pokud používáte ovladače pro Linux a macOS, ujistěte se, že libcurl jsou nainstalované. U ovladače verze 17.2 a novější není to explicitní závislost, protože není vyžadována pro jiné metody ověřování nebo operace ODBC.

  • Pokud konfigurace Microsoft Entra zahrnuje zásady podmíněného přístupu a klient je Windows 10 nebo Server 2016 nebo novější, může selhat ověřování prostřednictvím integrovaného uživatelského jména nebo hesla. Zásady podmíněného přístupu vyžadují použití Správce webových účtů (WAM), který je podporovaný v ovladači verze 17.6 nebo novější pro Windows. Pokud chcete použít WAM, vytvořte novou řetězcovou hodnotu pojmenovanou ADALuseWAM v HKLM\Software\ODBC\ODBCINST.INI\ODBC Driver 17 for SQL Server, HKCU\Software\ODBC\ODBC.INI\<your-user-DSN-name>nebo HKLM\Software\ODBC\ODBC.INI\<your-system-DSN-name> pro globální konfiguraci dsN s oborem uživatele nebo systémové dsN s oborem dsN a nastavte ji na hodnotu 1. Upozorňujeme, že ověřování pomocí WAM nepodporuje spuštění aplikace jako jiného uživatele.runas Scénáře, které vyžadují zásady podmíněného přístupu, nejsou podporované pro Linux nebo macOS.

  • Pokud se chcete připojit pomocí uživatelského jména a hesla účtu SQL Serveru, můžete teď použít novou SqlPassword možnost, která se doporučuje zejména pro Azure SQL, protože tato možnost umožňuje bezpečnější výchozí nastavení připojení.

  • Pokud se chcete připojit pomocí uživatelského jména a hesla účtu Microsoft Entra, zadejte Authentication=ActiveDirectoryPassword v připojovacím řetězci a UIDPWD klíčových slovech uživatelské jméno a heslo.

  • Pokud se chcete připojit pomocí integrovaného systému Windows nebo integrovaného systému Microsoft Entra (Windows a Linux/macOS 17.6+, pouze ovladač), zadejte Authentication=ActiveDirectoryIntegrated do připojovacího řetězce. Ovladač automaticky zvolí správný režim ověřování. Pro verze ovladače 17.7 nebo starší UID a PWD nesmí být zadán. Počínaje ovladačem verze 17.8 UID a PWD jsou ignorovány.

  • Chcete-li se připojit pomocí interaktivního ověřování Microsoft Entra (pouze ovladač systému Windows), UID je nutné zadat. Pro verze ovladače 17.7 a starší PWD nesmí být zadán. Počínaje ovladačem verze 17.8 PWD se ignoruje.

  • Počínaje verzí 18.1 Trusted_Connection=Yes už nepoužívá federované ověřování Microsoft Entra ID a místo toho používá integrované rozhraní SSPI. Pokud chcete pro tuto možnost použít MICROSOFT Entra ID, TrustedConnection_UseAAD=Yes měli byste ho nakonfigurovat.

  • Ovladače ODBC verze 17.7 a nižší mají známý problém s vypršením časového limitu připojení, pokud je v instanci SQL Serveru povolené ověřování Microsoft Entra a vynucení šifrování. Protokol chyb SQL Serveru může obsahovat chybové zprávy typu Chyba: 33155, Závažnost: 20, Stav: 1. Událost odpojení byla vyvolána, když server čeká na federovaný ověřovací token. Příčinou může být ukončení klienta nebo vypršení časového limitu serveru.". Pokud používáte řešení s vysokou dostupností, jako jsou skupiny dostupnosti AlwaysOn nebo instance clusteru s podporou převzetí služeb při selhání, může být interní komunikace clusteru pro SQL Server ovlivněna tímto chováním, které může ovlivnit dostupnost prostředků. V protokolu clusteru se můžou zobrazit chybové zprávy, například: [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). Tento problém je vyřešen v ODBC ovladači verze 17.10 a vyšší. Nejnovější ovladač, který tuto opravu obsahuje, je nainstalován s instalací SQL Serveru 2022 s GDR KB5021522 / CU1 KB5022375. Verzi ovladače ODBC, který jste nainstalovali, můžete ověřit pomocí správce zdroje dat ODBC.

  • Od ovladače ODBC verze 18.3 se v Azure Arc a Azure Cloud Shellu podporuje ověřování spravované identity (ActiveDirectoryMSI).

Ověřování pomocí přístupového tokenu

Atribut SQL_COPT_SS_ACCESS_TOKEN předběžného připojení umožňuje použití přístupového tokenu získaného z Microsoft Entra ID pro ověřování místo uživatelského jména a hesla a také obchází vyjednávání a získání přístupového tokenu ovladačem. Pokud chcete použít přístupový token, nastavte atribut připojení SQL_COPT_SS_ACCESS_TOKEN na ukazatel ke struktuře ACCESSTOKEN.

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

Jedná ACCESSTOKEN se o strukturu s proměnlivou délkou, která se skládá ze 4 bajtové délky následované bajty neprůhlených dat, které tvoří přístupový token. Vzhledem k tomu, jak SQL Server zpracovává přístupové tokeny, jeden získaný prostřednictvím odpovědi JSON OAuth 2.0 musí být rozšířen tak, aby každý bajt byl následovaný nulovým odsazením bajtů, podobně jako řetězec UCS-2 obsahující pouze znaky ASCII. Token je však neprůžná hodnota a délka zadaná v bajtech nesmí obsahovat žádný ukončovací znak null. Vzhledem k jejich značné délce a omezení formátu je tato metoda ověřování k dispozici pouze programově prostřednictvím atributu SQL_COPT_SS_ACCESS_TOKEN připojení. Neexistuje žádné odpovídající klíčové slovo pro DSN ani pro připojovací řetězec. Připojovací řetězec nesmí obsahovat UID, PWD, Authenticationani Trusted_Connection klíčová slova.

Poznámka:

Ovladač ODBC verze 13.1 podporuje pouze toto ověřování ve Windows. Následující verze podporují toto ověřování na všech platformách.

Ukázkový kód ověřování Microsoft Entra

Následující ukázka ukazuje kód potřebný pro připojení k SQL Serveru pomocí MICROSOFT Entra ID s klíčovými slovy připojení. Není nutné měnit samotný kód aplikace. Připojovací řetězec nebo DSN, pokud se používá, je jedinou nezbytnou úpravou pro využití Microsoft Entra ID k ověřování:

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

Následující ukázka ukazuje kód potřebný pro připojení k SQL Serveru pomocí ověřování přístupového tokenu Microsoft Entra. V tomto případě je nutné upravit kód aplikace pro zpracování přístupového tokenu a nastavit přidružený atribut připojení.

    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);

Následující ukázkový připojovací řetězec se používá s interaktivním ověřováním Microsoft Entra. Neobsahuje pole PWD, protože heslo by se zadalo na obrazovce ověřování Azure.

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

Následující ukázkový připojovací řetězec se používá s ověřováním spravované identity Microsoft Entra. UID je nastaveno na ID objektu nebo klienta identity uživatele, když se používá identita přiřazená uživatelem.

// 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;"

Důležité informace o používání federovaných účtů ADFS v Linuxu nebo macOS

Od verze 17.6 podporují ovladače pro Linux a macOS ověřování pomocí účtů federovaných službou Microsoft Entra ADFS pomocí uživatelského jména nebo hesla (ActiveDirectoryPassword) nebo Kerberos (ActiveDirectoryIntegrated). Při použití integrovaného režimu závisí na platformě určitá omezení.

Při ověřování uživatele, jehož přípona hlavního názvu uživatele (UPN) se liší od sféry Kerberos, tj. je používána alternativní přípona UPN, je nutné při získávání lístků Kerberos použít možnost Enterprise Principal (použít -E možnost s kinit a zadat hlavní název ve tvaru user@federated-domain). Tímto způsobem může ovladač správně určit federovanou doménu i sféru Kerberos.

Můžete ověřit, jestli je k dispozici vhodný lístek Kerberos, a to kontrolou výstupu klist příkazu. Pokud je federovaná doména stejná jako říše Kerberos a přípona hlavního názvu uživatele (UPN), je hlavní název ve formátu user@realm. Pokud je jiný, hlavní název by měl mít formát user@federated-domain@realm.

Operační systém Linux

Ve verzi SUSE 11 výchozí verze knihovny Kerberos 1.6.x nepodporuje možnost Hlavní název pro podnik, což je nezbytné pro použití alternativních přípon UPN. Pokud chcete použít alternativní přípony UPN s integrovaným ověřováním Microsoft Entra, upgradujte knihovnu Kerberos na verzi 1.7 nebo novější.

V Alpine Linuxu výchozí libcurl nastavení nepodporuje ověřování SPNEGO/Kerberos vyžadované pro integrované ověřování Microsoft Entra.

macOS

Systémová knihovna Kerberos kinit podporuje podnikový hlavní objekt pomocí volby --enterprise, ale také implicitně zajistí kanonizaci názvů, která brání použití alternativních přípon UPN. Pokud chcete použít alternativní přípony UPN s integrovaným ověřováním Microsoft Entra, nainstalujte novější knihovnu Kerberos pomocí brew install krb5 a její kinit použijte s volbou -E, jak je popsáno výše.