共用方式為


Microsoft Entra 驗證搭配適用於 PostgreSQL 的 Azure 資料庫

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

使用 Microsoft Entra ID 的優點包括:

  • 以一致的方式跨 Azure 服務來驗證使用者。
  • 在單一位置管理密碼原則和密碼輪替。
  • 支援多種形式的驗證,讓您不需要儲存密碼。
  • 客戶使用外部 (Microsoft Entra ID) 群組來管理資料庫權限的能力。
  • 使用 PostgreSQL 資料庫角色在資料庫層級驗證身分識別。
  • 針對連線到適用於 PostgreSQL 的 Azure 資料庫彈性伺服器執行個體的應用程式支援權杖型驗證。

Microsoft Entra ID 如何在適用於 PostgreSQL 的 Azure 資料庫中運作

下列高階圖表摘要說明使用 Microsoft Entra 驗證搭配適用於 PostgreSQL 的 Azure 資料庫的驗證運作方式。 箭頭表示通訊路徑。

Microsoft Entra ID、使用者的電腦與伺服器之間的驗證流程圖。

  1. 您的應用程式可以向 Azure 彈性伺服器執行個體中繼資料服務識別端點要求權杖。
  2. 使用用戶端識別碼和憑證時,會呼叫 Microsoft Entra ID 以要求存取權杖。
  3. Microsoft Entra ID 會傳回 JSON Web 權杖 (JWT) 存取權杖。 您的應用程式會在呼叫時將存取權杖傳送至彈性伺服器執行個體。
  4. 彈性伺服器執行個體會使用 Microsoft Entra ID 來驗證該權杖。

如需使用 Azure Database for PostgreSQL 設定 Microsoft Entra ID 的步驟,請參閱 使用 Microsoft Entra ID 進行適用於 PostgreSQL 的 Azure 資料庫驗證

PostgreSQL 管理員與 Microsoft Entra 管理員之間的差異

當您為 Microsoft Entra 主體開啟 Microsoft Entra 驗證,並將其新增為 Microsoft Entra 管理員時,帳戶:

  • 取得與原始 PostgreSQL 管理員相同的權限。
  • 可以管理伺服器上的其他 Microsoft Entra 角色。

PostgreSQL 管理員只能建立本機密碼型使用者。 但是,Microsoft Entra 管理員有權管理 Microsoft Entra 使用者和本機密碼型使用者。

Microsoft Entra 管理員可以是 Microsoft Entra 使用者、Microsoft Entra 群組、服務主體或受控識別。 以系統管理員身分使用群組帳戶可增強管理性。 它允許在 Microsoft Entra ID 中集中新增和移除群組成員,而不需變更適用於 PostgreSQL 的 Azure 資料庫彈性伺服器執行個體內的使用者或權限。

您可以同時設定多個 Microsoft Entra 管理員。 您可以停用適用於 PostgreSQL 的 Azure 資料庫彈性伺服器執行個體的密碼驗證,以增強稽核和合規性需求。

Entra ID 的系統管理員結構螢幕擷取畫面。

透過 Azure 入口網站、API 或 SQL 建立的 Microsoft Entra 管理員,擁有與您在伺服器佈建期間建立的一般系統管理員使用者相同的權限。 您管理非系統管理員 Microsoft Entra 角色的資料庫權限的方式與一般角色類似。

透過 Microsoft Entra 身分識別進行連線

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

  • Microsoft Entra 密碼驗證
  • Microsoft Entra 整合式驗證
  • Microsoft Entra 通用搭配多重要素驗證
  • Active Directory 應用程式的憑證或用戶端密碼
  • 受控身分識別

針對 Active Directory 進行驗證後,您會擷取權杖。 此令牌是您登入的密碼。

如需使用 Azure Database for PostgreSQL 設定 Microsoft Entra ID 的步驟,請參閱 使用 Microsoft Entra ID 進行適用於 PostgreSQL 的 Azure 資料庫驗證

限制與考量

當您搭配適用於 PostgreSQL 的 Azure 資料庫使用 Microsoft Entra 驗證時,請記住下列幾點:

  • 若要讓 Microsoft Entra 主體在任何部署程式中取得使用者資料庫的擁有權,請在部署 (Terraform 或 Azure Resource Manager) 模組內新增明確相依性,以確保在建立任何使用者資料庫之前已開啟 Microsoft Entra 驗證。

  • 您可以隨時將多個 Microsoft Entra 主體(使用者、群組、服務主體或受控識別)設定為 Azure Database for PostgreSQL 彈性伺服器執行個體的 Microsoft Entra 管理員。

  • 只有 PostgreSQL 的 Microsoft Entra 管理員一開始可以使用 Microsoft Entra 帳戶連線到適用於 PostgreSQL 的 Azure 資料庫彈性伺服器執行個體。 Active Directory 系統管理員可以設定後續的 Microsoft Entra 資料庫使用者。

  • 如果您從 Microsoft Entra ID 刪除 Microsoft Entra 主體,主體會保留為 PostgreSQL 角色,但無法再取得新的存取權杖。 在此情況下,雖然相符的角色仍然存於資料庫中,它無法向伺服器進行驗證。 資料庫管理員必須手動轉移擁有權並卸除角色。

    備註

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

  • 適用於 PostgreSQL 的 Azure 資料庫會使用使用者的唯一 Microsoft Entra 使用者 ID 來比對資料庫角色的存取權仗,而不是使用使用者名稱。 如果您刪除 Microsoft Entra 使用者,並建立具有相同名稱的新使用者,適用於 PostgreSQL 的 Azure 資料庫會將該使用者視為不同的使用者。 因此,如果您從 Microsoft Entra ID 中刪除使用者,並且新增具有相同名稱的新使用者,新使用者將無法與現有的角色連線。

常見問題

  • 適用於 PostgreSQL 的 Azure 資料庫中有哪些可用的驗證模式?

    適用於 PostgreSQL 的 Azure 資料庫支援三種驗證模式:僅限 PostgreSQL 驗證、僅限 Microsoft Entra 驗證,以及 PostgreSQL 和 Microsoft Entra 驗證。

  • 我可以在彈性伺服器執行個體上設定多個 Microsoft Entra 系統管理員嗎?

    是的。 您可以在彈性伺服器執行個體上設定多個 Microsoft Entra 系統管理員。 在佈建期間,您只能設定單一 Microsoft Entra 管理員。 但建立伺服器之後,您可以移至 [驗證] 窗格,視需要設定任意數量的 Microsoft Entra 系統管理員。

  • Microsoft Entra 管理員是否只是Microsoft Entra 使用者?

    否。 Microsoft Entra 管理員可以是使用者、群組、服務主體或受控識別。

  • Microsoft Entra 管理員是否可以建立本機密碼型使用者?

    Microsoft Entra 系統管理員有權管理 Microsoft Entra 使用者和本機密碼型使用者。

  • 當我在適用於 PostgreSQL 的 Azure 資料庫彈性伺服器執行個體上啟用 Microsoft Entra 驗證時,會發生什麼事?

    當您在伺服器層級設定 Microsoft Entra 驗證時,會啟用 PGAadAuth 延伸模組,並重新啟動伺服器。

  • 如何使用 Microsoft Entra 驗證登入?

    您可以使用像 psqlpgAdmin 這樣的用戶端工具來登入彈性伺服器執行個體。 使用您的 Microsoft Entra 使用者識別碼作為使用者名稱,以及您的 Microsoft Entra 權杖作為密碼。

  • 如何產生權杖?

    您可以使用 az login 來產生權杖。 如需詳細資訊,請參閱擷取 Microsoft Entra 存取權杖

  • 群組登入和個人登入有什麼區別?

    以 Microsoft Entra 群組成員身分登入,以及以個別 Microsoft Entra 使用者身分登入的唯一差異在於使用者名稱。 以個別使用者身分登入需要個別 Microsoft Entra 使用者識別碼。 以群組成員身分登入需要群組名稱。 在這兩種情況下,您會使用與密碼相同的個別 Microsoft Entra 權杖。

  • 群組驗證和個別驗證有什麼區別?

    以 Microsoft Entra 群組成員身分登入,以及以個別 Microsoft Entra 使用者身分登入的唯一差異在於使用者名稱。 以個別使用者身分登入需要個別 Microsoft Entra 使用者識別碼。 以群組成員身分登入需要群組名稱。 在這兩種情況下,您會使用與密碼相同的個別 Microsoft Entra 權杖。

什麼是權杖存留期?

使用者權杖有效期最多為 1 小時。 系統指派的受控識別的權杖有效期最多為 24 小時。