联合身份标识:使用WIF实现ASP.NET被动身份验证
aims.Add(new Claim( "urn:ClaimsAwareWebSite/2010/01/claims/permission", "Read")); } claimsIds.Add(newClaimsId); cp = new ClaimsPrincipal(claimsIds); } return cp; } } 为实现 IsInRole 检查(如前所述),您必须提供权限声明类型作为角色声明类型。在图 9 中,这是在构造 ClaimsIdentity 时指定的,因为 RP 要创建 ClaimsIdentity。 如果传入 SAML 令牌是声明的源,则可以向 SecurityTokenHandler 提供角色声明类型。下面的代码说明如何以声明方式配置 Saml11SecurityTokenHandler,从而将权限声明类型用作角色声明类型:
SAML 令牌处理程序包含 samlSecurityTokenRequirement 节,在该节中可以提供名称和角色声明类型的设置,以及与证书验证和 Windows 令牌相关的其他设置。 本地域识别 在前文中,我已重点介绍了包含单个 IP-STS 的简单联合方案。假设 RP 始终重定向到特定 IP-STS 对用户进行身份验证。 不过,在联合技术领域,RP 可以信任来自多个域的多个令牌颁发机构。这种情况下,出现了新的挑战,因为 RP 必须确定应由哪个 IP-STS 对请求访问资源的用户进行身份验证。通过身份验证确定的用户所属的域是用户的主域,因此,这一过程称为主域识别。 应用程序可以使用很多机制进行主域识别: 在本示例中,主域是事先已知的,因此,请求始终重定向到特定 IP-STS。 用户可以从其他入口浏览至 RP,这样可以提供一个查询字符串,从该入口指示用户的主域。 RP 可以要求用户登录针对每个主域的特定入口页。登录页面可以假设一个特定的主域。 RP 可以根据请求的 IP 地址或其他某种试探法确定主域。 如果 RP 无法通过上述方法确定主域,则可以显示一个 UI,供用户选择主域或提供信息帮助 RP 确定主域。 如果 RP 支持信息卡,则所选卡可使用主动联合将身份验证驱动至相应的主域。 WS-Federation 简要规定了如何实现主域识别服务,但没有对此定义完备的规范。 无论如何识别主域,目标都是重定向用户,从而使用正确的 IP-STS 进行身份验证。有几种可能的方案。一个方案是,RP 需要动态设置颁发机构 URI,以便将登录请求发送到正确的 IP-STS。这种情况下,RP 必须在 trustedIssuers 节中列出所有受信任的 IP-STS,如:
另外,您也可以重写由 FAM 公 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |