Active-Directory

使用 Apache / Kerberos / Keytab 針對 Active Directory 對 Redmine 使用者進行身份驗證

  • September 28, 2019

我們有一個 Debian (squeeze) 伺服器,我有 root 訪問權限。它執行 Apache,Redmine 部署到伺服器(目前使用本地 MySQL 數據庫進行身份驗證)。

Apache 配置為使用 Kerberos 和 keytab 文件根據 Active Directory 對使用者進行身份驗證。使用目前配置,只要使用者嘗試通過 https 訪問任何內容,就會提示使用者輸入使用者名/密碼,該使用者名/密碼已成功通過 Active Directory 身份驗證。

我了解(有點)Redmine 有自己的 LDAP 配置,可用於根據現有的 Active Directory 對使用者進行身份驗證,但這將要求使用者為 Apache 輸入他們的憑據一次,然後為 Redmine 輸入第二次憑據。

我可以以某種方式將 Redmine 配置為共享 Apache 身份驗證方法,而不是要求使用者再次輸入他們的憑據嗎? (使用 Apache 對 Active Directory 進行身份驗證是伺服器上單獨應用程序的要求)

我不確定 Redmine 中是否有對此功能的內置支持,因為我能找到的所有連結都很舊。但是,似乎添加起來應該不會太難。

基本上,大多數 Apache 身份驗證模組會在請求中設置一個名為 的環境變數REMOTE_USER,它們會填充請求者已經證明自己的使用者名。如果您將 Redmine 修改為接受REMOTE_USER代替內部身份驗證提供程序,如本錯誤報告中所述,那麼您將只能使用 Apache 和 Kerberos 來驗證使用者身份。

似乎有人已經實現了一個做類似事情的外掛該論壇文章還詳細介紹了這種解決方案。

注意:此方法只提供身份驗證,不提供授權;您將能夠相信使用者就是他們所說的那樣,但如果您關心使用者所在的組或任何其他類型的分級訪問控制,您可能仍需要使用與 Active Directory 的直接 LDAP 連接。

引用自:https://serverfault.com/questions/441559