共用方式為


使用 Microsoft Entra ID 向 PostgreSQL 進行驗證

適用於:適用於 PostgreSQL 的 Azure 資料庫 - 單一伺服器

重要

適用於 PostgreSQL 的 Azure 資料庫 - 單一伺服器即將淘汰。 強烈建議您升級至 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器。 如需移轉至 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器的詳細資訊,請參閱單一伺服器 適用於 PostgreSQL 的 Azure 資料庫 發生什麼事?

Microsoft Entra 驗證是使用 Microsoft Entra ID 中所定義的身分識別來連線到適用於 PostgreSQL 的 Azure 資料庫的機制。 透過 Microsoft Entra 驗證,您可以在集中的位置管理資料庫使用者的身分識別和其他 Microsoft 服務,從而簡化權限管理。

使用 Microsoft Entra ID 的優點包括:

  • 以一致的方式跨 Azure 服務來驗證使用者
  • 在單一位置管理密碼原則和密碼輪替
  • Microsoft Entra ID 支援多種形式的驗證,從而避免儲存密碼的需要
  • 客戶可以使用外部 (Microsoft Entra ID) 群組來管理資料庫權限。
  • Microsoft Entra 驗證會使用 PostgreSQL 資料庫角色在資料庫層級驗證身分識別
  • 可針對連線到「適用於 PostgreSQL 的 Azure 資料庫」的應用程式支援權杖型驗證

若要設定及使用 Microsoft Entra 驗證,請使用下列程序:

  1. 視需要建立 Microsoft Entra ID 並填入使用者身分識別。
  2. (選擇性) 和目前與 Azure 訂用帳戶相關聯的 Active Directory 產生關聯或加以變更。
  3. 為適用於 PostgreSQL 的 Azure 資料庫伺服器建立 Microsoft Entra 系統管理員。
  4. 在對應至 Microsoft Entra 身分識別的資料庫中建立資料庫使用者。
  5. 藉由擷取 Microsoft Entra 身分識別的權杖並登入,連線到您的資料庫。

注意

若要了解如何建立及填入 Microsoft Entra ID,然後使用適用於 PostgreSQL 的 Azure 資料庫設定 Microsoft Entra ID,請參閱使用 Microsoft Entra ID 設定及登入適用於 PostgreSQL 的 Azure 資料庫

架構

下列高階圖表摘要說明如何使用 Microsoft Entra 驗證向「適用於 PostgreSQL 的 Azure 資料庫」進行驗證。 箭頭表示通訊路徑。

驗證流程

系統管理員結構

使用 Microsoft Entra 驗證時,PostgreSQL 伺服器會有兩個系統管理員帳戶:原始的 PostgreSQL 系統管理員和 Microsoft Entra 系統管理員。 只有以 Microsoft Entra 帳戶為基礎的管理員可以在使用者資料庫中建立第一個 Microsoft Entra ID 自主資料庫使用者。 Microsoft Entra 系統管理員登入可以是 Microsoft Entra 使用者或 Microsoft Entra 群組。 當系統管理員是群組帳戶時,其可以供任何群組成員使用,而讓 PostgreSQL 伺服器可以有多個 Microsoft Entra 系統管理員。 以系統管理員的身分使用群組帳戶,可讓您集中新增和移除 Microsoft Entra ID 中的群組成員,而不需要變更 PostgreSQL 伺服器中的使用者或權限,藉以增強管理性。 一律只能設定一個 Microsoft Entra 系統管理員 (使用者或群組)。

系統管理員結構

注意

服務主體或受控識別無法作為單一伺服器中完整運作的 Microsoft Entra 系統管理員,而我們的彈性伺服器中已修正這項限制

權限

若要建立可使用 Microsoft Entra ID 進行驗證的新使用者,您必須在資料庫中擁有 azure_ad_admin 角色。 若要指派這個角色,您可以為特定的「適用於 PostgreSQL 的 Azure 資料庫」伺服器設定 Microsoft Entra 系統管理員帳戶。

若要建立新的 Microsoft Entra 資料庫使用者,您必須以 Microsoft Entra 系統管理員身分連線。 使用 Microsoft Entra ID 設定及登入適用於 PostgreSQL 的 Azure 資料庫中會有相關示範。

只有在針對適用於 PostgreSQL 的 Azure 資料庫建立 Microsoft Entra 系統管理員,才能進行任何 Microsoft Entra 驗證。 如果 Microsoft Entra 系統管理員已從伺服器中移除,先前建立的現有 Microsoft Entra 使用者就無法再使用其 Microsoft Entra 認證連線到資料庫。

使用 Microsoft Entra 身分識別進行連線

Microsoft Entra 驗證支援使用 Microsoft Entra 身分識別連線到資料庫的下列方法:

  • Microsoft Entra 密碼
  • 已與 Microsoft Entra 整合
  • Microsoft Entra Universal 搭配 MFA
  • 使用 Active Directory 應用程式的憑證或用戶端密碼
  • 受控識別

針對 Active Directory 進行驗證後就可以擷取權杖。 此權杖是您用來登入的密碼。

請注意,目前只有 Microsoft Entra 使用者角色支援新增使用者之類的管理作業。

注意

如需如何使用 Active Directory 權杖連線的詳細資訊,請參閱 使用 Microsoft Entra ID 設定及登入適用於 PostgreSQL 的 Azure 資料庫

其他考量

  • 若要增強管理性,建議您以系統管理員身分佈建專用的 Microsoft Entra 群組。
  • 任何時候都只能為「適用於 PostgreSQL 的 Azure 資料庫」設定一個 Microsoft Entra 系統管理員 (使用者或群組)。
  • 只有適用於 PostgreSQL 的 Microsoft Entra 管理員可以一開始就使用 Microsoft Entra 帳戶連線到「適用於 PostgreSQL 的 Azure 資料庫」。 Active Directory 系統管理員可以設定後續的 Microsoft Entra 資料庫使用者。
  • 如果從 Microsoft Entra ID 中刪除某個使用者,該使用者就無法再使用 Microsoft Entra ID 進行驗證,因此將無法再取得該使用者的存取權杖。 在此情況下,雖然相符的角色仍然會在資料庫中,但已無法使用該角色來連線到伺服器。

注意

在權杖到期之前 (從權杖發出後最多 60 分鐘),仍可使用已刪除的 Microsoft Entra 使用者來登入。 如果您也從「適用於 PostgreSQL 的 Azure 資料庫」中移除該使用者,則會立即撤銷此存取權。

  • 如果 Microsoft Entra 系統管理員已從伺服器中移除,伺服器將不再與 Microsoft Entra 租用戶相關聯,因此會停用伺服器的所有 Microsoft Entra 登入。 從相同的租用戶新增新的 Microsoft Entra 系統管理員,將會重新啟用 Microsoft Entra 登入。
  • 「適用於 PostgreSQL 的 Azure 資料庫」會使用使用者的唯一 Microsoft Entra 使用者識別碼來比對「適用於 PostgreSQL 的 Azure 資料庫」角色的存取權杖,而不是使用使用者名稱。 這表示如果在 Microsoft Entra ID 中刪除 Microsoft Entra 使用者,並以相同的名稱建立新的使用者,則「適用於 PostgreSQL 的 Azure 資料庫」會將其視為是不同的使用者。 因此,如果從 Microsoft Entra ID 中刪除使用者,然後新增具有相同名稱的新使用者,則新使用者將無法與現有角色連接。 若要這樣做,「適用於 PostgreSQL 的 Azure 資料庫」Microsoft Entra 系統管理員必須先撤銷再授與角色「azure_ad_user」給使用者,以重新整理 Microsoft Entra 使用者識別碼。

下一步