0

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

关键是,虽然使用 Apache 的 mod_auth_kerb 对一项服务(在本例中为 webmail 前端)进行身份验证很容易,但将票证转发到 IMAP/SMTP 服务器被证明更加棘手。从我读过的关于 Kerberos 的文档来看,似乎可以做到这一点——客户端将向 webmail 应用程序发送一个可转发的票证,然后该服务器将使用委托对 IMAP/SMTP 进行身份验证(作为用户)。然而,寻找任何关于现有实现的实际信息似乎是徒劳的。

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

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

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

我倾向于第二种方法,仅仅是因为安全问题看起来很严重,但是我想要更多的意见——也许有更好的方法吗?

编辑:我将面临的另一个挑战是让 GSSAPI 与 PHP IMAP 扩展一起工作。从我读过的材料来看,似乎可以通过以下两种方式之一来实现——要么使用 Cyrus IMAP,要么使用 PHP IMAP 中内置的 GSSAPI 机制。但是,几乎没有关于如何执行这两种方法的文档,因此将不胜感激。

4

0 回答 0