使用多重要素 Azure Active Directory 驗證

適用于:Azure SQL Database Azure SQL 受控執行個體 Azure Synapse Analytics

Azure SQL Database、Azure SQL 受控執行個體和 Azure Synapse Analytics 使用 Azure Active Directory - MFA 通用驗證支援來自 SQL Server Management Studio (SSMS) 的連線。 本文討論各種驗證選項之間的差異,以及將 Azure Active Directory (Azure AD) 中的通用驗證用於 Azure SQL 的相關聯限制。

下載最新的 SSMS - 在用戶端電腦上,從下載 SQL Server Management Studio (SSMS) 下載最新版的 SSMS。

注意

在 2021 年 12 月,18.6 以前的 SSMS 版本無法再透過 Azure Active Directory 進行 MFA 驗證。

若要繼續使用 Azure Active Directory 進行 MFA 驗證,您需要 SSMS 18.6 或更新版本

對於本文討論的所有功能,請至少使用 2017 年 7 月的 17.2 版。 最近的連線對話方塊看起來應該會類似下圖:

SQL Server Management Studio中 [連線到伺服器] 對話方塊的螢幕擷取畫面,其中顯示 [伺服器類型]、[伺服器名稱] 和 [驗證] 的設定。

驗證選項

Azure AD 有兩種非互動式驗證模型,可用於許多不同的應用程式 (ADO.NET、JDCB、ODC 等等)。 這兩種方法絕對不會產生快顯對話方塊:

  • Azure Active Directory - Password
  • Azure Active Directory - Integrated

同樣支援 Azure AD 多重要素驗證 (MFA) 的互動式方法是:

  • Azure Active Directory - Universal with MFA

Azure AD MFA 有助於保護資料和應用程式的存取,同時又滿足使用者對簡單登入程序的需求。 它利用各種簡單的驗證選項來提供強大的驗證 (包括電話、簡訊、含有 Pin 的智慧卡或行動應用程式通知),讓使用者能夠選擇自己喜歡的方式。 搭配 Azure AD 使用互動式 MFA 時,會出現快顯對話方塊以進行驗證。

如需 Azure AD 多重要素驗證的說明,請參閱多重要素驗證。 如需了解組態步驟,請參閱設定適用於 SQL Server Management Studio 的 Azure SQL Database 多重要素驗證

Azure AD 網域名稱或租用戶 ID 參數

SSMS 17 版開始,從其他 Azure Active Directory 匯入目前 Azure AD 的使用者 (如來賓使用者),可以在連線時提供 Azure AD 網域名稱或租用戶識別碼。 來賓使用者包括從其他 Azure AD、Microsoft 帳戶 (例如 outlook.com、hotmail.com、live.com) 或其他帳戶 (例如 gmail.com) 邀請的使用者。 此資訊可讓 Azure Active Directory - Universal with MFA 驗證識別正確的驗證授權單位。 支援 Microsoft 帳戶 (MSA) (如 outlook.com、hotmail.com、live.com) 或非 MSA 帳戶時也需要此選項。

所有想要使用通用驗證進行驗證的來賓使用者,都必須輸入其 Azure AD 網域名稱或租用戶識別碼。 此參數代表目前與 Azure SQL 邏輯伺服器相關聯的 Azure AD 網域名稱或租用戶識別碼。 例如,如果 SQL 邏輯伺服器與 Azure AD 網域 contosotest.onmicrosoft.com 相關聯,其中託管的使用者 joe@contosodev.onmicrosoft.com 是從 Azure AD 網域 contosodev.onmicrosoft.com 匯入,則用於驗證此使用者的必要網域名稱為 contosotest.onmicrosoft.com。 當使用者是與 SQL 邏輯伺服器相關聯的 Azure AD 原生使用者,且不是 MSA 帳戶時,不需要網域名稱或租用戶識別碼。 若要輸入參數 (從 SSMS 17.2 版開始):

  1. 在 SSMS 中開啟連線。 輸入您的伺服器名稱,然後選取 [Azure Active Directory - MFA 通用] 驗證。 新增您想要用來登入的 [使用者名稱]。

  2. 選取 [選項] 方塊,然後移至 [連線內容] 索引標籤。在 [連線到資料庫] 對話方塊中,針對您的資料庫完成對話方塊。 核取 [AD 網域名稱或租用戶 ID] 方塊並提供驗證授權單位,如網域名稱 (contosotest.onmicrosoft.com) 或租用戶 ID 的 GUID。

    [連線屬性] 索引標籤的螢幕擷取畫面,其中醒目提示 [連線到資料庫] 和 [AD 功能變數名稱] 或 [租使用者識別碼] 的設定。

如果您執行的是 SSMS 18.x 或更新版本,則來賓使用者已不再需要 AD 網域名稱或租用戶識別碼,因為 18.x 或更新版本會自動辨識。

[連線到資料庫] 欄位中已選取 [連線到伺服器] 對話方塊中 [連線到伺服器] 索引標籤的螢幕擷取畫面。

Azure AD 企業對企業支援

在 Azure AD B2B 案例中,以來賓使用者身分支援的 Azure AD 使用者 (請參閱什麼是 Azure B2B 共同作業),可以 Azure AD 群組中的個別使用者或成員身分連線至 SQL Database 和 Azure Synapse;這些個別使用者或成員是在相關聯 Azure AD 中建立,然後使用 CREATE USER (Transact-SQL) 陳述式在指定資料庫中手動對應。

例如,假設 steve@gmail.com 受邀加入 Azure AD contosotest (Azure AD 網域為 contosotest.onmicrosoft.com),則 Azure AD SQL 管理員或 Azure AD DBO 必須執行 Transact-SQL create user [steve@gmail.com] FROM EXTERNAL PROVIDER 陳述式,針對特定資料庫 (例如 MyDatabase) 建立使用者 steve@gmail.com。 假設 steve@gmail.com 屬於 Azure AD 群組,例如 usergroup,則 Azure AD SQL 管理員或 Azure AD DBO 必須執行 Transact-SQL create user [usergroup] FROM EXTERNAL PROVIDER 陳述式,針對特定資料庫 (例如 MyDatabase) 建立此群組。

建立資料庫使用者或群組後,使用者 steve@gmail.com 接著就可以使用 SSMS 驗證選項 Azure Active Directory – Universal with MFA 登入 MyDatabase。 依預設,使用者或群組只有連線權限。 任何進一步的資料存取都必須由具有足夠權限的使用者在資料庫中授與

注意

若是 SSMS 17.x,使用 steve@gmail.com 做為來賓使用者,您必須檢查 [AD 網域名稱或租用戶識別碼] 方塊,然後在 [連線內容] 對話方塊中新增 AD 網域名稱 contosotest.onmicrosoft.com。 [AD 網域名稱和租用戶識別碼] 選項僅支援 [Azure Active Directory - MFA 通用] 驗證。 否則,核取方塊會呈現灰色。

通用驗證限制

  • SSMS 和 SqlPackage.exe 是目前唯一透過 Active Directory 通用驗證,針對 MFA 啟用的工具。
  • SSMS 17.2 版支援使用通用驗證搭配 MFA 的多使用者同時存取。 若是 SSMS 17.0 和 17.1 版,則針對使用通用驗證的 SSMS 執行個體,此工具會將其登入限制為單一 Azure Active Directory 帳戶。 若要以另一個 Azure AD 帳戶登入,您必須使用另一個 SSMS 執行個體。 這項限制僅限於 Active Directory 通用驗證;您可以使用 Azure Active Directory - Password 驗證、 Azure Active Directory - Integrated 驗證或 SQL Server Authentication 登入不同的伺服器。
  • SSMS 支援 Active Directory 通用驗證,可使用物件總管、查詢編輯器及查詢存放區視覺效果。
  • SSMS 17.2 版針對匯出/擷取/部署資料資料庫提供 DacFx 精靈支援。 特定使用者使用通用驗證透過初始驗證對話方塊進行驗證後,DacFx 精靈的運作方式與所有其他驗證方法相同。
  • SSMS 資料表設計工具不支援通用驗證。
  • 除了您必須使用支援的 SSMS 版本之外,Active Directory 通用驗證並沒有其他軟體需求。
  • 請參閱下列連結以取得適用於通用驗證的最新版 Microsoft 驗證程式庫 (MSAL): Microsoft 驗證程式庫 (MSAL) 概觀

後續步驟