使用PHP的Kerberos票证缓存

时间:2013-02-10 20:42:47

标签: php apache single-sign-on kerberos webmail

我正在尝试配置完整的Kerberized域环境,其中一个障碍是webmail。我已经在互联网上搜索了有关如何通过Webmail使用Kerberos进行单点登录的信息,但没有明确的结果。所以现在我要尝试自己做。

关键是,虽然使用mod_auth_kerb for Apache很容易对一个服务(在这种情况下是webmail前端)进行身份验证,但将票证转发到IMAP / SMTP服务器更加棘手。从我读过的关于Kerberos的文档中,似乎可以实现这一点 - 客户端将向webmail应用程序发送可转发票证,然后该服务器将使用委托对IMAP / SMTP进行身份验证(作为用户)。但是,找到有关现有实施的任何实际信息似乎毫无结果。

在尝试自己实现时,我将面临的首要问题之一是获取针对IMAP / SMTP服务器使用的票证。我可以想到这样做的两种方式之一 - 可转发票证存储在对webmail的身份验证点,或者每当用户尝试发送电子邮件/刷新他们的邮箱时再次进行身份验证,但这次没有存储数据因为它全部发生在一个请求中(并且mod_auth_kerb支持在请求期间保存凭证)。

在记录凭证路由存储时,存在安全问题,可扩展性问题和实施问题。但是,身份验证只发生一次(无论会带来什么好处)。

刷新/发送时的重新认证会更加安全,因为凭据mod_auth_kerb只会在请求期间存储凭据,并且应该会有更少的可伸缩性问题,因为这个地方不会有很多凭据缓存当很多人登录时但是,身份验证会更频繁地发生,可能由于更高的网络负载而导致问题,或者在身份验证和尝试发送电子邮件之间在客户端上发生错误的可能性。

我倾向于第二种方法,仅仅是因为安全问题看起来非常激烈,但是我想要更多的意见 - 也许还有更好的方法呢?

编辑:我将面临的另一个挑战是让GSSAPI使用PHP IMAP扩展。从我读过的材料看来,似乎有可能采用以下两种方式之一 - 使用Cyrus IMAP或使用PHP IMAP中内置的GSSAPI机制。接下来没有关于如何使用这两种方法的文档,所以请帮助。

0 个答案:

没有答案