联合身份标识:使用WIF实现ASP.NET被动身份验证
RP 应用程序或从中注销,并且支持联合注销。
图 3 演示采用 FederatedPassiveSignIn 控件时通信流程是如何变化的。应用程序使用窗体身份验证来保护资源,并重定向到承载该控件的登录页面 (1)。用户单击 FederatedPassiveSignIn 控件(或自动重定向到该控件),会触发到 STS 的重定向 (2)。控件页面从 STS 接收响应,通过 FAM 和 SAM 处理登录响应 (3),创建 ClaimsPrincipal,然后写入会话 Cookie (4)。当用户重定向到最初请求的页面时 (5),SAM 验证会话 Cookie,并为登录请求创建 ClaimsPrincipal。此时,ClaimsAuthorizationModule 和该页面可以执行授权检查,如图 2 所示。 图 3 使用 FederatedPassive-SignIn 控件的被动联合 FAM 和 SAM 都通过适当的 SecurityTokenHandler 类型处理传入令牌。登录响应到达时,FAM 循环访问 SecurityTokenHandlerCollection,查找正确的令牌处理程序来读取 XML 令牌。在联合方案中,这个令牌处理程序通常是 Saml11SecurityTokenHandler 或 Saml2SecurityTokenHandler,通过添加自定义令牌处理程序,您也可以采用其他令牌格式。SAM 使用 SessionSecurityTokenHandler 处理与会话 Cookie 相关联的会话令牌。 对于被动联合流程而言,某些身份标识模型配置设置十分重要,这些设置用于初始化 FAM、SAM 和 FederatedPassiveSignIn 控件(当然,后者也会公开可在 Visual Studio 设计器中配置的属性)。您可以以编程方式提供 Microsoft.IdentityModel.Configuration 命名空间的 ServiceConfiguration 类型的实例,也可以在 <microsoft.identityModel> 节中提供声明性配置。图 4 总结了身份标识模型设置,本文后面几部分将对其中很多设置进行介绍。 图 4 基本 <microsoft.identityModel> 元素汇总 节 说明 <issuerNameRegistry> 指定受信任证书颁发机构的列表。此列表主要用于验证令牌签名,以便拒绝不受信任的证书所签名的令牌。 <audienceUris> 指定传入 SAML 令牌的有效访问者 URI 的列表。可通过禁用此项允许所有 URI,但不建议这样做。 <securityTokenHandlers> 自定义令牌处理程序的配置设置,或提供自定义令牌处理程序,用于控制对令牌进行验证、身份验证和序列化的方式。 <maximumClockSkew> 调整令牌和应用程序服务器之间的允许时间差,以进行令牌验证。默认偏差时间为 5 分钟。 <certificateValidation> 控制证书的验证方式。 <serviceCertificate> 提供一个服务证书,用于对传入令牌进行解密。 <claimsAuthenticationManager> 提供一个自定义 ClaimsAuthenticationManager 类型,用于自定义或替换要附加到请求线程的 IClaimsPrincipal 类型。 <claimsAuthorizationManager> 提供一个自定义 ClaimsAuthorizationManager 类型,用于从中心组件控制对功能的访问。 <federatedAuthentication> 提供特定于被动联合的设置。启用被动联合 WIF 简化了为 ASP.NET 应用程序配置被动联合的过程。STS 应提供联合元数据(按照 WS-Federation 规范中的说明),WIF 提供联合实用工具 (FedUtil.exe),该工具使用联合元数据建立 RP 和 STS 之间的信任(以及对主动和 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |