快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-22
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,从而将权限声明类型用作角色声明类型:

<microsoft.identityModel>
  <service>
   <!--other settings-->
   <securityTokenHandlers>
    <remove type="Microsoft.IdentityModel.Tokens.Saml11.Saml11SecurityTokenHandler, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    <add type="Microsoft.IdentityModel.Tokens.Saml11.Saml11SecurityTokenHandler, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
     <samlSecurityTokenRequirement >
      <roleClaimType
       value= "urn:ClaimsAwareWebSite/2010/01/claims/permission"/>
     </samlSecurityTokenRequirement>
    </add>
   </securityTokenHandlers>
  </service>
</microsoft.identityModel>

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,如:

<trustedIssuers>
  <add thumbprint="6b887123330ae8d26c3e2ea3bb7a489fd609a076"
   name="IP1" />
  <add thumbprint="d5bf17e2bf84cf2b35a86ea967ebab838d3d0747"
   name="IP2" />
</trustedIssuers>

另外,您也可以重写由 FAM 公

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号