使用 Apache / Kerberos / Keytab 針對 Active Directory 對 Redmine 使用者進行身份驗證
我們有一個 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 連接。