使用Apache和Linux MIT Kerberos单点loginIntranet

编辑:解决! 看到我的答案在下面。

问候,我正在寻找一种方法来以下列方式对Intranet进行单一login

  1. Linux用户通过graphics前端(例如GNOME)login。
  2. 他自动向MIT Kerberos KDC请求一个TGT作为他的用户名。
  3. 通过某种方式,Apache服务器(我们将假设它与KDC在同一台服务器上)通知该用户已经login。
  4. 当用户访问内部网时,他自动被授予访问他的Web应用程序的权限。

我不认为我在searchnetworking时看到过这种function。 我知道存在以下可能性:

  • 使用诸如mod_auth_kerb之类的authentication模块,向用户呈现login提示以input他的用户名和密码,然后对MIT Kerberos服务器进行authentication。 (我想这是自动的。)
  • 当用户是Active Directory的一部分时,IIS支持通过ASP.Net进行集成的Windowslogin。 (我正在寻找Linux / Apache的等价物。)

任何build议,批评和想法,高度赞赏。 这是一个学校项目展示的概念certificate,所以每一个方便的信息是比欢迎。 🙂

我find了!

我遵循https://help.ubuntu.com/community/SingleSignOn (请参阅:“应用程序安装”)上的说明来configurationApache Web服务器。

这是我的httpd.conf [IMAGE] :

ServerName http://www.eindwerk.lan

<Directory / var / www />选项索引FollowSymLinks MultiViews

AllowOverride None Order allow,deny allow from all AuthType Kerberos 

KrbMethod在谈判

KrbMethodK5Passwd

  AuthName "Kerberos Login" KrbAuthRealm EINDWERK.LAN Krb5Keytab /etc/apache2/auth/apache2.keytab require valid-user 

</ Directory>

  1. 然后,我configurationMozilla Firefox来信任我的内部网站(www.eindwerk.lan) [IMAGE] :

    network.negotiate-auth.delegation-uris:eindwerk.lan

    network.negotiate-auth.trusted-uris:eindwerk.lan

  2. 在terminal上做一个kinit 。 [图片]

  3. 浏览到内部网站: 您现在已经自动login!

    这个怎么用?

    • Mozilla Firefox执行常规的HTTP / GET请求。
    • Apache以HTTP / 401授权要求回复。
    • Mozilla Firefox用我们刚刚用kinit得到的Kerberos令牌回复。 [WIRESHARK CAPTURE]
    • 发生Kerberos身份validation,并且Apache使用HTTP / 200 OK进行回复。
  4. 在terminal上做一个klist 。 你应该看到networking服务器的票! [图片]

  5. 在terminal做一个kdestroy 。 [图片]

  6. 硬刷新(CTRL + F5)内部网站。 现在您将看到一个login提示! [图片]