• 云计算设计模式(九)——联合身份模式


    云计算设计模式(九)——联合身份模式

    验证托付给外部身份提供者。这样的模式能够简化开发最大限度地降低用户管理的要求并提高应用程序的用户体验


    背景和问题


    用户通常须要使用提供,并通过与它们商业关系的不同组织主持的多个应用程序一起工作可是。这些用户可能被迫使用特定的(不同的的凭证,每个能够:
    原因脱节的用户体验用户常常忘记登录凭据时,他们有非常多不同的的。
    暴露安全漏洞当用户离开公司帐户,必须马上取消设置

    这是非常easy忽略这在大型组织中


    复杂的用户管理

    管理员必须管理凭据的全部用户。以及运行等方面提供password提示的其它任务。

    用户会相反,通常期望使用同样的凭证用于这些应用

    解决方式


    实现了能够使用联合身份的认证机制。

    从应用程序代码中分离的用户身份验证和身份验证委派到受信任的身份提供者能够大大简化开发。让用户使用更广泛的身份提供者国内流离失所者),同一时候最大限度地降低管理开销进行身份验证。它也能够让你清楚地分离的授权认证



    可信身份提供者可能包含公司文件夹内部部署联合身份验证服务其它安全令牌服务STS的业务合作伙伴提供的社会身份提供者能够验证谁拥有用户比如。微软,谷歌雅虎Facebook帐户



    图1示出了当client应用程序须要訪问要求身份验证的服务联合身份模式的原理。认证是通过身份提供者(IDP)。在演唱其工作安全令牌服务(STS)的运行。境内流离失所者问题主张有关身份验证的用户的信息安全令牌

    该信息被称为权利要求中,包含用户的身份而且还能够包含其它信息,比如角色成员细粒度的訪问权限。

     

     

    图1  - 联合身份验证概述


    该模型通常被称为基于声明的訪问控制。应用程序和服务授权訪问基于包括在令牌中的权利要求的特征和功能。

    要求身份验证必须相信国内流离失所者服务

    client应用程序的联系人运行身份验证境内流离失所者

    假设认证成功,则的IdP返回包括用于识别用户于STS权利要求书的令牌(注意的IdP和STS能够是同样的服务)。

    在STS能够改变和增大依据提前定义的规则。令牌中的权利要求书。将其返回到client之前

    然后,client应用程序能够将此令牌传递给服务作为其身份证明



    注意:

    某些情况下可能会有额外的STS的信任比如微软Azure的场景描写叙述后,内部部署STS信任STS还有一个负责訪问身份提供者对用户进行认证这样的方法企业的情况普遍。当中有一个本地STS和文件夹





    联合身份验证提供了一个基于标准的解决方式。在不同信任身份的问题而且能够支持单点登录它正在成为在全部类型的应用特别是云托管的应用越来越普遍。由于它支持,而不须要直接网络连接身份提供单点登录用户不必输入凭据为每一种应用这添加了安全性。由于它阻止訪问很多不同的应用程序所需的凭据的扩散,同一时候也隐藏了用户的凭据全部,但原来的身份提供者

    应用程序仅仅看到包括的令牌中的身份验证信息

    联合身份也具有重大的长处。即人的身份凭证管理身份提供者的责任。应用程序或服务并不须要提供身份管理功能。另外,在企业环境中企业文件夹不须要知道关于用户提供它信任身份提供者。它去除了管理该文件夹中的用户身份全部的管理开销。


    问题和注意事项


    设计实现联合身份验证的应用程序时考虑下面因素:
    •身份验证能够是一个单点故障假设您将应用程序部署到多个数据中心考虑部署身份管理机制,以同样的数据中心,以保持应用程序的可靠性和可用性
    •身份验证机制,能够提供工具来配置基于包括在认证令牌的作用索赔的訪问控制这通常被称为基于角色的訪问控制(RBAC)。而且它能够同意控制权訪问的功能和资源的更精细的水平
    •与企业文件夹,利用社会身份提供者通常不提供有关身份验证的用户以外的电子邮件地址,或许名称的信息基于声明的身份一些社会身份提供者Microsoft帐户仅仅提供一个唯一的标识符应用程序通常将须要保持注冊用户的一些信息,而且可以匹配该信息,包括在令牌中的权利要求书的标识符。典型地。这是通过一个注冊过程完毕的用户第一次訪问该应用程序,信息然后被注入到令牌作为每一个认证附加的权利要求
    •假设配置为STS多个身份提供者必须检測身份提供者,用户应该被重定向到身份验证这个过程被称为主领域发现。在STS可能可以基于电子邮件地址或用户,该用户提供该用户被訪问时,用户的IP地址范围。该应用程序的一个子域上的cookie中存储的用户的内容自己主动地运行此浏览器。比如。假设用户微软user@live.com输入一个电子邮件地址在STS用户重定向到Microsoft帐户登录页面随后的訪问中。STS可以使用cookie来表示最后登录的Microsoft帐户

    假设自己主动发现无法确定主领域时。STS将显示一个家庭领域发现HRD)。当中列出了受信任的身份提供者。用户必须选择他们想要使用的人。

    何时使用这个模式


    模式是很适合的范围内情况下。如:
    在企业单点登录在这样的情况下,您须要验证员工托管在云中企业安全边界以外的企业应用程序而不须要他们每次訪问应用程序时签署用户体验是一样的使用本地应用程序,他们签约到公司网络时,最初通过身份验证的时候从此获得全部相关的应用程序,而无需再次登录
    与多个合作伙伴联合身份在这样的情况下,您须要验证这两个企业的员工和业务合作伙伴谁没有公司文件夹帐户。这是企业对企业(B2B的应用程序集成与第三方服务,并在那里不同的IT系统公司合并或共享资源的应用普遍。
    SaaS应用联合身份在这样的情况下独立软件供应商(ISV提供了一个即用型服务,为多个客户租户每一个租户将要使用适当的身份提供者进行身份验证。比如企业用户会希望我们自己的企业资格证书,租户消费者和客户可能希望使用自己的社会身份凭证。

    这样的模式可能不适合下列情况
    应用程序的全部用户都能够通过一个标识提供者进行身份验证并没有要求使用不论什么其它身份提供者进行身份验证。这是典型仅仅使用企业文件夹进行身份验证业务应用并获得该文件夹在应用程序中直接使用VPN或(在云中托管的情况下),通过导通之间的虚拟网络连接本地文件夹和应用程序


    •应用程序最初建使用不同的认证机制,也许与自己定义用户存储或者不具有处理所用的权利要求为基础的技术协商标准的能力。

    改造基于声明的身份验证和訪问控制到现有的应用程序可能非常复杂,可能不符合成本效益。


    样例


    组织举办了多租户软件即Azure中的服务(SaaS)应用程序

    该应用程序incudes一个站点,租户能够用它来管理应用程序为自己的用户该应用程序同意租户使用由活动文件夹联合服务ADFS产生的。当用户通过该组织自己的Active Directory身份验证的联合身份訪问租户的站点

    图2示出了该过程的概述

     

    图2 - 用户怎样大型企业用户訪问应用程序


    在图2所看到的的场景中商户验证自己的身份提供者步骤1)这样的情况下ADFS

    在成功验证租客ADFS发出的令牌。

    client浏览器转发令牌至SaaS应用联合提供者。其信任租户的ADFS发出令牌,以便取回的令牌是有效的SaaS的联合提供者步骤2)。假设有必要在SaaS联合会提供商上运行令牌中的权利要求书的权利要求应用程序识别新令牌返回给客户机浏览器之前步骤3)的变换。应用程序信任SaaS的联合提供者发出的令牌。并使用令牌中的权利要求书申请授权规则步骤4)。

    租户将不再须要记住不同的凭据来訪问应用程序以及管理员租户的公司将可以在自己的ADFS配置可以訪问应用程序的用户的列表

    本文翻译自MSDN:http://msdn.microsoft.com/en-us/library/dn589790.aspx

  • 相关阅读:
    【web性能优化】DNS解析与ip
    【web性能优化】雅虎军规
    【web性能优化】优化提纲及图片优化(慕课网笔记)
    【web性能优化】常用缓存方式(慕课网学习笔记)
    【前端】企业微信客户端调试
    【es6】es6使用集锦
    【前端】遇到的各种报错
    【前端】安装wampserver提示丢失MSVCR100.dll的解决方法
    【es6】将2个数组合并为一个数组
    【web】使用ionic搭建移动端项目 icon-radio 标签在ios下全部选中的问题
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/5155709.html
Copyright © 2020-2023  润新知