快速业务通道

联合身份标识:使用WIF实现ASP.NET被动身份验证

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-22
被动联合方案都适用的其他功能)。通过在 Visual Studio 中右键单击 RP 项目,然后选择“添加 STS 引用”,或者通过命令行,都可以调用 FedUtil。

您将使用 FedUtil 向导完成以下简单步骤:

在向导的第一页上,确认向导要修改的配置文件和 RP 应用程序 URI。

在第二页上,指定将与 RP 建立信任关系的 STS 的联合元数据 XML 文档路径。

在第三页上,提供用于解密令牌的证书。

最后一页是 STS 提供的声明的列表,举例来说,利用这个列表,您可以规划访问控制决策。

完成上述向导步骤后,FedUtil 会修改项目,以便添加一个对 Microsoft.IdentityModel 程序集的引用。它还会修改 web.config,以便安装 FAM 和 SAM 模块,并为这些模块提供身份标识模型配置设置。现在,应用程序就支持被动联合了,会将未经授权的请求重定向到受信任的 STS。

这里存在一个假设,即 STS 事先知道 RP(因此会为尝试访问 RP 的经过身份验证的用户颁发令牌),并且具有 RP 要求 STS 在加密令牌时使用的公钥。这是对 ASP.NET 应用程序进行初步联合设置的简便方法。当然,这有助于理解如何在需要调整时从头开始进行设置,以及如何更改向导启用的基本设置。从现在起,我将重点介绍“从头开始设置”方法。

如果不使用 FedUtil,您需要手动添加一个对 Microsoft.IdentityModel 程序集的引用,然后手动配置 FAM 和 SAM 模块以及必要的身份标识模型设置。HTTP 模块应添加到两个部分:Internet Information Services (IIS) 6 的 system.web 和 IIS 7 的 system.webServer。假设应用程序承载于 IIS 7 中,WIF 模块的配置如下:

<modules>
  <!--other modules-->
  <add name="SessionAuthenticationModule"
   type="Microsoft.IdentityModel.Web.SessionAuthenticationModule, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
   preCondition="managedHandler" />
  <add name="WSFederationAuthenticationModule"
   type="Microsoft.IdentityModel.Web.WSFederationAuthenticationModule, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
   preCondition="managedHandler" />
</modules>

默认情况下,此配置仅保护扩展名进行了显式映射,以便由 ASP.NET 管道处理的资源(.aspx、.asax 等等)。为了保护联合身份验证的其他资源,应将这些扩展名映射到 IIS 中的 ASP.NET 管道,或在模块设置中,将 runAllManagedModulesForAllRequests 设置为 true(只适用于 IIS 7),如下所示:

<modules runAllManagedModulesForAllRequests="true">

为启动 FAM,您还必须将 ASP.NET 身份验证模式设置为 None,拒绝匿名用户访问应用程序资源:

<authentication mode="None" />

<authorization>
  <deny users="?" />
</authorization>

两种模块都使用图 4 所示的身份标识模型配置设置,典型示例如图 5 所示。这些设置大多数是由 FedUtil 生成的,但 certificateValidation 设置和 federatedAuthentication 中的某些设置除外。我通常推荐使用 PeerTrust 证书验证模式,该模式需要将所有受信任证书(包括受信任颁发机构的证书)显式添加到本地计算机的 TrustedPeople 存储。

图 5 被动联合的身份标识模型配置

<microsoft.identityModel>
  <service>
   <issuerNameRegistry type="Microsoft.IdentityModel.Tokens.ConfigurationBased

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号