2

在工作中,我们刚刚实现了一个 Apple Open Directory 服务器。它存储每个人的用户名和密码,并实现 LDAP 和 Kerberos。我的任务是配置我们所有的 ASP.Net Web 应用程序以对其进行身份验证——因此用户可以使用他们的 Open Directory 用户名和密码登录到我们的 ASP.Net 应用程序。

我需要 mod_auth_kerb 之类的东西,但 IIS 和 ASP.Net 除外——而且我想使用基于表单的身份验证。

这可能吗?

4

2 回答 2

0

据我所知,IIS 仅支持用于 NTLM 身份验证的 kerberos。我从未见过支持 kerberos 的辅助库或软件。(我的意思是真正的 kerberos)现在您可以使用 .Net 中的 LDAP 库以 kerberos 方式在服务器之间进行通信,但是用户客户端和 asp.net 服务器之间的连接仍然是 SSL 纯/文本连接。

我也从未见过它完成,但它应该能够完成......如果 asp.net 服务器与 Apple Open Directory 服务器具有信任关系,并且两者之间建立了 LDAP 连接,则可能有可能在 IIS 级别启用 NTLM 身份验证,这将(理论上)通过信任将 kerberos 连接扩展到 AOD。同样,我什至从未考虑过它,所以我不知道尝试它会有什么陷阱。

我已经成功地使用 DirectoryServices 通过 LDAP 协议连接到其他 Active Directory,但我仍然没有找到在没有 NTLM 的情况下在客户端和身份验证服务器之间嵌入 kerberos 连接的方法。

于 2010-01-20T01:40:30.023 回答
0

要在 IIS 中使用 Kerberos 身份验证,受保护资源的身份验证类型应为“Windows 身份验证”。这将使 IIS 使用协商 (spnego) 身份验证。服务器必须是域的成员,Kerberos 才能工作。如果可能的话,我建议使用 Server 2008 或 Server 2008 R2 机器,因为它可以更优雅地处理 Kerberos 身份验证。

我有一段时间没有机会使用 Mac 服务器了,但据我了解,Open Directory 能够为 Windows 域成员提供服务。对于授权,您必须从 ASP 查询 LDAP 目录或使用您自己的内部授权机制。

编辑:这篇 Microsoft 知识库文章可能对您有用:http: //msdn.microsoft.com/en-us/library/aa480475.aspx

于 2010-01-23T19:43:00.433 回答