ldap2pg 6.1:Postgres 16 非特權模式、hooks 及更多功能

發布於 2024-06-10,作者:Dalibo
相關開放原始碼

巴黎,2024 年 6 月 3 日。

自 2005 年以來,Dalibo 一直在法國為其客戶提供服務、培訓和支援。

自 2017 年以來,ldap2pg 為 PostgreSQL 提供最佳的自動角色和權限同步解決方案。在 pg_hba.conf 檔案中配置 PostgreSQL 與 LDAP 的身份驗證,然後使用 ldap2pg 從您的企業目錄建立和配置角色。

今天,Dalibo 宣布 ldap2pg 6.1 已正式發布。此版本支援 PostgreSQL 16 及其新的非特權管理或角色。 眾多相容性和可配置性的改進使此版本既實用又穩定。請按照文件安裝這個新版本。

非特權執行 & Postgres 16

在將角色管理委派給非特權使用者時,PostgreSQL 16 引入了一個重大的相容性變更。 此變更基於這樣一個觀察:以前的實作提供了一種安全性的錯覺,並且與 SQL 標準不一致。 實際上,具有 CREATEROLE 選項的使用者實際上可以授予自己他沒有的權限。

此外,ldap2pg 6.1 拒絕在 PostgreSQL 15 及更早版本上以非超級使用者的身分執行。 在 PostgreSQL 16 上,ldap2pg 6.1 可以使用 CREATEROLE 選項執行,而無需超級使用者權限。

可配置性

ldap2pg 6.1 提供了新的配置功能。 您現在可以將環境變數寫入 ldap2pg.yml 檔案旁邊的 .env 檔案中,或寫入 ldap2pg 的工作目錄中。

makegit 命令相同,ldap2pg 接受 -C 參數,該參數決定命令的工作目錄。 此參數決定搜尋 ldap2pg.ymlldaprc 配置檔案。

最後,ldap2pg 現在接受一個命令列引數:要同步的 PostgreSQL 實例的連接字串。 此連接字串可以是 URL 格式或 key=value 格式。

相容性

ldap2pg 在連接到 LDAP 目錄後不再執行 whoami LDAP 命令。 此操作是 LDAP 協議的擴展,並非所有地方都可用。 刪除此命令消除了對此擴展可用性的依賴。

LDAPURI 參數可以包含多個以空格分隔的 URI。 如果第一個 URI 失敗,則 LDAP 客戶端必須嘗試第二個。 ldap2pg 6.1 修正了 6.0 版本中的一個回歸錯誤,並恢復了此客戶端 HA 實作。

LDAP 是一個不區分大小寫的協議,僅適用於 ASCII 字元。 ldap2pg 6.1 現在對 DN 和屬性名稱不區分大小寫。

執行 hooks

一個非常古老的功能請求剛剛在 ldap2pg 中實現:定義一個任意 SQL 命令,在建立角色之前或之後執行。 例如,為新使用者建立一個特定的 schema。 現在,role 規則接受 before_createafter_create 參數。 這些請求可以從 LDAP 搜尋接收動態值。

發生錯誤時繼續

某些錯誤不應阻止同步繼續。 例如,如果 ldap2pg 無法刪除仍然擁有基礎物件的角色。 ldap2pg 6.1 容忍最多 8 個此類同步錯誤,然後才會放棄。

其他變更

請在更新日誌中查看更多變更、功能和修復。

文件、程序和社群支援可在以下地址找到


Étienne Bersac 和 Pierre-Louis Gonon 開發了 ldap2pg,這是 Dalibo Labs 的一個專案。 對於任何技術問題,團隊建議使用 GitHub 上的 ldap2pg 頁面