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 資料庫的驗證運作方式。 箭頭表示通訊路徑。
- 您的應用程式可以向 Azure 彈性伺服器元資料服務身份端點請求憑證。
- 使用用戶端識別碼和憑證時,會呼叫 Microsoft Entra ID 以要求存取權杖。
- Microsoft Entra ID 會傳回 JSON Web 權杖 (JWT) 存取權杖。 你的應用程式會透過呼叫將存取權杖傳送到你的彈性伺服器。
- 這個彈性伺服器會用 Microsoft Entra ID 驗證權杖。
如需使用 適用於 PostgreSQL 的 Azure 資料庫 設定 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 資料庫 彈性伺服器的密碼驗證,以滿足更嚴格的稽核與合規需求。
透過 Azure 入口網站、API 或 SQL 建立的 Microsoft Entra 管理員,擁有與您在伺服器佈建期間建立的一般系統管理員使用者相同的權限。 您管理非系統管理員 Microsoft Entra 角色的資料庫權限的方式與一般角色類似。
透過 Microsoft Entra 身分識別進行連線
Microsoft Entra 驗證支援下列使用 Microsoft Entra 身分識別連線到資料庫的方法:
- Microsoft Entra 密碼驗證
- Microsoft Entra 整合式驗證
- Microsoft Entra 通用搭配多重要素驗證
- Active Directory 應用程式的憑證或用戶端密碼
- 受控識別
針對 Active Directory 進行驗證後,您會擷取權杖。 此令牌是您登入的密碼。
如需使用 適用於 PostgreSQL 的 Azure 資料庫 設定 Microsoft Entra ID 的步驟,請參閱 使用 Microsoft Entra ID 進行適用於 PostgreSQL 的 Azure 資料庫驗證。
限制與考量
當您搭配適用於 PostgreSQL 的 Azure 資料庫使用 Microsoft Entra 驗證時,請記住下列幾點:
要讓 Microsoft Entra 主體成為任何部署程序中使用者資料庫的擁有者,請在你的部署模組(Terraform 或 Azure Resource Manager)中加入明確相依,確保在建立任何使用者資料庫前先開啟 Microsoft Entra 認證。
你可以隨時為 Microsoft Entra 的 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器設定多個 Microsoft Entra 主體(使用者、群組、服務主體或管理身份)。
只有 Microsoft Entra PostgreSQL 管理員能透過使用 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 小時。