单一登录: Active Directory联合身份验证服务开发简介
abrikam 联合身份验证服务所独有的标识符,以便经销商能够知道是哪一个合作伙伴 在请求登录。当 Alice 的浏览器最终回到自己公司的联合身份验证服务时,该服务将要求她进行身份验 证。由于这家经销商使用的是集成的 Windows 身份验证,所以 Alice 的浏览器将自动做出响应,使用她 的联合身份验证服务建立一个登录。登录成功之后,她的联合身份验证服务就会发布一个安全声明标记语 言 (SAML) 令牌并对 Alice 做出描述,然后将 Alice 的浏览器重定向回到 Fabrikam 的联合身份验证服 务。这个 SAML 令牌会与请求一起作为投递 (POST) 的主体内容来发送(返回的页面拥有能够自动提交包 含隐藏输入元素表单的 JavaScript)。Fabrikam 读取该令牌的内容后,会发布另一个 SAML 令牌。这个 新的令牌包含着应用程序将最终看到的声明组(我将在下面的内容中解释,为什么在声明转换环节上需要 分别使用两个不同的 SAML 令牌)。第二个令牌将通过 POST 方法发送,并写入到从 fabrikam.com 发送 的一个 Cookie 中,这就使得 Alice 能够使用采购应用程序,直到她的 Cookie 过期为止。在默认设定 情况下,Cookie 的有效期是 10 个小时。
还记得采购应用程序中需要寻找登录 Cookie 的那个 Web 代理吗?这一系列事件就是由它引起的。现 在 Cookie 已存在,这个 Web 代理就会对 Cookie 进行拆分,读取其中由 Fabrikam 的联合身份验证服 务所发布的 SAML 令牌中的声明。然后,Web 代理就会允许执行采购应用程序中的网页。如果应用程序需 要知道已登录的用户名,那么通过一个众所皆知的方法就可以实现:HttpContext.User.Identity.Name。 用于传送这些信息的 IIdentity 是通过 SingleSignOnIdentity 类实现的, SingleSignOnIdentity 还提供了很多其他实用的属性,包括帐户合作伙伴在其本地域内对用户进行身份 验证时所使用的身份验证方法。通过这个类别,应用程序还可以找到由其联合身份验证服务所发送的整个 声明组。 您应该注意的是,合作伙伴的联合身份验证服务彼此之间绝不会直接产生对话。服务之 间的通信完全是通过浏览器的重定向、关联的查询字符串以及 POST 主体内容来实现的。 确保联 合身份验证登录的安全性 接下来,我们对一些细节进行更深入的分析,帮助您了解如何保证这种 登录的安全性。尝试在通信过程中读取 SAML 令牌,然后在方便的时候重放这些令牌从而模仿合法用户, 这是一种很常见的攻击手段。为了预防这种攻击,所有的通信都通过 HTTPS 来实现。这一点极为重要; 如果您的 IIS 默认设定网站还没有安装 SSL 证书,那么,当您试着安装 ADFS 时,ADFS 安装程序就会 向您发出警告并自动退出,安装过程甚至不会开始。 那么,包含声明的登录 Cookie 的安全性又 如何呢?如果用户想提升自己对某个应用程序的使用特权,很简单,她只要在 Cookie 中的 SAML 令牌上 添加一些声明就可以了!但是,这种小伎俩是可以被检测出来的,因为每一个 SAML 令牌都签注着一个密 钥,而这个密钥只有发布它的联合身份验证服务才知道。这也给您部署 ADFS 提供了一些暗示。如果您的 角色是资源合作伙伴,那么您的每一个帐户合作伙伴都必须为其帐户联合身份验证服务提供证书。您的资 源联合身份验证服务将使用帐户合作伙伴提供的这些证书来验证其发布的 SAML 令牌上的签名。同时, Web 代理也必须执行类似的操作,对通过登录 Cookie 接收到的每个 SAML 令牌进行验证,确保这些令牌 已经过资源联合身份验证服务的签名。 ADFS 发布的 Cookie 总是会用安全位做出标记,这就要求 浏览器只能通过 HTTPS(而不能通过 HTTP)来发送 Cookie。因此,如果您的应用程序有任何部分是通过 HTTP 运行的,则登录 Cookie 就不会被发送,您也无法使用该用户的身份标识信息。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |