使用Apache / Kerberos / Keytab对Active Directory进行Redmine用户身份validation

请和我一起裸照,因为我对这些技术还很新鲜。

我们有一个Debian(挤压)服务器,我有root权限。 它正在运行Apache,并将Redmine部署到服务器(当前使用本地MySQL数据库进行身份validation)。

Apache被configuration为使用Kerberos和keytab文件来针对Active Directory对用户进行身份validation。 使用当前configuration,只要用户尝试通过https访问任何内容,就会提示用户input用户名/密码,该用户名/密码已经通过Active Directory成功进行了身份validation。

我(有点)了解Redmine有自己的LDAPconfiguration,可以用来对照现有的Active Directory对用户进行身份validation,但是这需要用户input他们的凭证,一次inputApache,然后第二次inputRedmine。

我可以以某种方式将Redmineconfiguration为共享Apache身份validation方法,而不是要求用户第二次input凭据? (使用Apache对Active Directory进行身份validation是服务器上单独应用程序的要求)

我不确定Redmine中是否有内置的支持,因为我可以find的所有链接都很旧。 但是,似乎应该不难添加。

基本上,大多数Apacheauthentication模块将在请求中设置一个名为REMOTE_USER的环境variables,这个variables填充了请求者已经certificate自己的用户名。 如果您修改Redmine以接受REMOTE_USER而不是像本错误报告中那样使用内部身份validation提供程序,那么您将只能使用Apache和Kerberos来validation用户身份。

似乎有人已经实现了一个类似的插件 。 这个论坛post也详细介绍了这样的解决scheme

注意 :此方法只提供身份validation ,不授权 ; 您将能够相信用户是他们自己所说的人,但是如果您关心用户所在的组或其他任何types的分级访问控制,您仍然需要使用与Active Directory的直接LDAP连接。

事实上,如果Redmine支持Kerberos,那么你就完成了,而与Apache无关,因为一旦用户从Kerberos获得票据,它就可以访问支持Kerberos的服务并为其configuration。 我不熟悉Redmine自己,但我发现这个插件: https : //github.com/eckardt/redmine_kerberos_authentication

我只是使用single_auth插件和NTLM发布解决scheme: http : //blog.techutils.space/2016/02/redmine-ad-sso-setup.html

你可能能够适应它使用Kerberos而不是在Apache端的NTLM。

希望能帮助到你!