2014-10-29 92 views
0

我们有一个使用Kerberos通过Active Directory进行网站身份验证的apache2服务器。 在网站上我使用Drupal框架和不支持的“Kerberos身份验证”模块(https://www.drupal.org/project/kerberos_authentication)。PHP Kerberos:检查有效票证/访问票证

当用户想要访问的网站,她/他必须做到以下几点:

  1. 打开浏览器&浏览网站
  2. 则会弹出询问的Kerberos/AD凭据。 (enter image description here
  3. 输入AD证书
  4. 被允许进入drupal网站。
  5. 访问的网站

的问题是在第5部分:用户仍然需要填写登录形式获得登录到Drupal的。 AD用户名和密码在这里工作得益于Drupal-Kerberos-Module。但是这首先放弃了Kerberos,因为用户不得不多次输入他们的凭证。

我如何访问用户被授予/存储在浏览器(或存储在任何地方)使用php的票证?或者如何检查用户是否为有效的Kerberos票证,以便用户不必两次输入其登录数据并使用php自动登录到drupal? (我知道这可能需要我编写我自己的drupal模块)

+0

您应该能够将浏览器配置为自动发送凭据,这将避免需要在弹出窗口中输入凭据。我不确定这会有助于您的问题中的第5点,但可能是开始的好地方。 – 2014-10-30 09:49:53

+0

我需要完成的是检查票证是否有效。使用mod_auth_kerb我在$ _SERVER []全局变量中获得了主体名称和密码,但是如果我现在再次将它们与KDC进行对比,那么它首先会破坏kerberos的用途,我想。 – Incubbus 2014-10-31 19:41:37

+0

我相信如果$ _SERVER ['REMOTE_USER']被填充,那么该票已经被mod_auth_kerb验证,并且是安全的信任。 Drupal然后可以从$ _SERVER ['REMOTE_USER']获取Kerberos认证用户名,并将其与自己的用户数据库进行匹配,然后将用户登录到Drupal。 – 2014-11-03 13:08:33

回答

1

与你的问题相切 - 虽然我从来没有设法正确配置你提到的模块,但我对LDAP模块非常幸运。它还包含一个SSO子模块,它完全符合你的要求,但使用Drupal登录表单作为后备,而不是你的示例中显示的(在我看来,很丑)弹出窗口。

我希望这对你有帮助。

+0

我已经通过LDAP完成了它,但可惜这不是一个选项。 – Incubbus 2014-10-31 19:40:12