用ASP.Net Web应用程序单点登录

时间:2009-09-02 08:49:59

标签: c# asp.net iis single-sign-on

客户端要求主要应用程序根据企业解决方案(Active Directory)为用户提供“单点登录”身份验证功能。 这意味着业务应用程序信任浏览器提供的凭据,并且不会请求用户提供标准登录/密码对。服务器/浏览器信任基于Windows集成身份验证机制构建。

我们是在IIS 5上托管的dot net framework 2.0上的ASP.Net Web应用程序。我们需要实现SSO功能。我们如何做?

3 个答案:

答案 0 :(得分:4)

我很确定这与几乎所有内联网应用程序都遵循的要求相同。

如果您刚刚在IIS中启用了Windows集成登录,那么您将被设置为#1项目。

我不知道#2是否可行,因为它与您的其他要求相冲突。浏览器仅传递本地登录用户的凭据(按#1的要求)。如果您构建了一个通过AD进行身份验证的Web表单,那么您将违反叙述/段落中列出的要求。

您的客户认为#2真正意味着什么?他们想要什么?以不同用户身份登录的方法?他们只需注销计算机并以其他用户身份登录。

答案 1 :(得分:1)

通常,SSO要求最好通过基于声明的协议(如WS-Federation或SAML 2.0)来解决。原则上,您可以自己实施这些协议,因为它们是开放标准,但它需要大量的专业知识。

新的Windows Identity Foundation(以前称为Geneva框架)包含可以启用SSO方案的协议实现,但它需要您升级平台。

答案 2 :(得分:1)

使用自定义表单身份验证而不会要求用户输入ID和密码。

先决条件: 1 GT;数据库表具有用户详细信息,如电子邮件,角色等 2 - ;存储用户配置文件的企业活动目录 3 GT;编写VBCOM或ActiveX或其他可以通过浏览器从Windows机器读取用户域名和名称的组件。

步骤: 在所有表单的页面加载上调用组件< 3>连接到Active Directory< 2>。该方法应该从Windows系统读取当前用户的名称,域。 使用这些详细信息搜索AD。如果存在,则查询并提取电子邮件地址或AD用户配置文件中的唯一键。 使用该密钥查询数据库< 1>您存储应用程序特定用户详细信息的位置,例如电子邮 如果来自AD的用户电子邮件与表中的电子邮件匹配,则授予用户适当的权限,否则拒绝访问,如果用户不存在或角色为空/受限制。 如果有效用户然后创建一个加密的cookie,其他应用程序可以读取它以真正实现任何类型的SSO。