如何在ASP.Net中对Kerberos(Apple Open Directory)服务器进行身份验证

时间:2010-01-20 01:31:04

标签: asp.net kerberos

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

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

这可能吗?

2 个答案:

答案 0 :(得分:0)

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

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

我已成功使用DirectoryServices通过LDAP协议连接到其他活动目录,但我还没有找到一种在没有NTLM的情况下在客户端和身份验证服务器之间嵌入kerberos连接的方法。

答案 1 :(得分:0)

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

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

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

相关问题