单点登录介绍

单点登录是WSO2身份服务的主要特色之一。通过单点登录,可以让用户只提供一次身份凭证就可以访问多个应用。在会话结束前,用户不需要再次输入凭证。用户也不需要分别登录每个应用。例如,用户登录了应用A,那么在会话结束前他不需要输入凭证即可访问应用B。
SSO的优点:

  • 用户只需要一套用户名和密码即可访问多个应用。不需要记住对组凭证
  • 用户只在身份管理服务登录,之后便可自动登录受信任域名。相比与在每个服务输入用户名和密码,更方便。
  • 应用服务不需要维护用户的身份数据
  • 用户身份由中心服务管理。更加安全、降低了复杂性也易于管理

单点登录流程

先看非单点登录的认证流程:

用户使用同一个浏览器分别访问应用1和应用2。用户首先访问应用1,认证后在访问应用2,这时他必须重新输入登录凭证。因为应用2不能使用应用1缓存在浏览器中的cookie来认证用户。
下图是SSO流程:

用户使用同样的浏览器首先访问应用1,接着访问应用2。用户首先被重定向到身份服务器。如果用户已经登录,那么通过身份服务发给应用1的认证令牌了就可以通过应用1的登录,当访问应用2时,也会同样被重定向到身份服务以完成认证。

SSO实例

sso已经被广泛的应用。Google是最好的例子。
1.访问www.google.com
2.点击页面右上角SIGN IN
3.登录后会被重定向到https://accounts.google.com/ServiceLogin。在该页面输入用户名和密码
4.输入后会被重定向回www.google.com
5.再访问www.gamil.com
6.此时你已经自动登录,不需要再输入用户名和密码
7.再访问www.youtube.com
8.你也会自动登录
如果注意观察浏览器,会发现每次访问上述应用时,你都会被定向到https://accounts.google.com/ServiceLogin再立刻重定向会应用的网页。
SSO就是让你登录一次即可访问不同资源的技术。

支持SSO的协议

以下协议支持基于代理的SSO:

  • SAML 2.0
  • WS-Federation
  • OpenID Connect
  • WS-Trust

下面会详细展开这些协议。

SAML 2.0 SSO

SAML指Security Assertion Markup Language,是一种基于XML的数据格式,用于在身份管理服务和应用服务之间交换认证与授权信息。SAML所满足的最重要的需求是web浏览器单点登录(SSO)。SAML规范中有三种主要角色:

  • The Principal: 这通常是需要服务提供者实体提供服务的用户

  • The Identity Provider:SAML授权服务,校验身份以认证Principal

  • The Service Provider:给Principal提供服务的应用
    常见的SAML应用情景是Principal(用户)请求访问Service Provider的资源或服务;service provider通过SAML和Identity Provider通信获取身份断言。基于身份断言,Service Provider判断是否相应用户的请求。
    SAML2.0是最新的SAML协议,使用安全令牌了在身份服务和应用服务之间传递用户信息。
    SAML2.0提供了五项主要规范:

  • Core

  • Bindings

  • Profile

  • Metadata

  • Conformances

基于网络浏览器的SAML2.0概述

基于网络浏览器的SAML2.0概述实在SAML 2.0概述规范下定义的。
在浏览器单点登录场景中,整个流程可能由用户访问应用服务出发,也可能由用户直接访问身份服务出发。

如果用户访问应用服务
  • 服务判断使用哪一种身份服务(当配置了多个身份服务的情况,需要使用SAML identity provider discovery profile)
  • 身份服务生成SAML信息,并携带该信息重定向浏览器到身份服务
  • 身份服务认证用户
  • 身份服务生成SAML信息,并重定向浏览器回到应用服务
  • 应用服务解析身份信息,判断是否响应用户请求
    如果用户直接访问身份服务,则只会出打步骤3、4、5。

    SAML信息中必须包含唯一的身份信息,用于标识创建信息的应用。
由身份服务发起的SSO

您需要使用GET和POST访问一下URL来通过身份服务发起SSO(假设注册的应用服务issuer ID是foo.com)。SAML信息可以使用Base64编码。
https://localhost:9443/samlsso?spEntityID=foo.com
请求认证后会被重定向回注册的Assertion Consumer URL。您可以在请求中使用acs请求参数制定Assertion Consumer URL,这样认证通过后可以把浏览器重定向到该地址。

  • 未提供asc参数时,重定向到默认地址
  • 如果提供了asc参数且可以匹配应用服务注册的ACS URL中任一条,则重定向到匹配的URL
    https://localhost:9443/samlsso?spEntityID=foo.com&acs=http://localhost:8080/foo.com/my-home.jsp
    您也可以选择提供RelayState参数:
    https://localhost:9443/samlsso?spEntityID=foo.com&RelayState=http://localhost:8080/foo.com/my-home.jsp
    RelayState参数必须是URL编码的,用户认证通过后会被重定向回RelayState参数的值。

WS-Federation

Web Services Federation / 网络服务联合描述了跨Web服务和组织边界的信任关系与安全令牌交换的管理和代理。WS-Federation是一项大型网络安全框架的一部分。比如,WS-Federation可以为Security Token Service (STS)提供便利的交互的机制。在WS-Federation中,身份服务是Security Token Service (STS)。

OpenID Connect

OpenID Connect是基于OAuth2.0协议的构建的身份管理层。它允许客户端根据授权服务器执行的身份验证来验证终端用户的身份,包括通过可交互的、REST形式的方式获取终端用户信息。
OpenID Connect支持多种类型的客户端,包括基于web的客户端、移动端、JavaScript客户端。这些客户端可以请求认证会话和终端用户的信息。规范套件是可扩展的,允许参与者使用可选功能,如身份数据加密、OpenID提供者的发现和会话管理,只要这些功能对他们有意义。

WS-Trust

WSO2的Security Token Service(STS)组件允许您配置STS颁发基于申明的安全令牌。基于申明的安全令牌是一种常见的方式,用于应用请求他们组织内、组织外或网络中用户的认证和身份信息常用的方式。
服务的WSDL可以通过点击https://(hostname):(port)/services/wso2carbon-sts?wsdl访问。比如,默认配置的URL是https://localhost:9443/services/wso2carbon-sts?wsdl
默认同时支持SAML1.0和SAML2.0的令牌。

Identity federation and a comparison with SSO

身份与访问管理的需求这些年快速增长。单一的认证和授权机制无法满足组织生存需求。所以组织会提供和定制跨信任边界的服务。其中可能包括合作伙伴、子公司、客户或供应商,可能跨越多个建筑物、城市、州、国家甚至大陆。身份联合和单点登录用于解决这些需求。
身份联合和SSO既有相似之处,也有关键区别。身份联合让用户可以用相同的访问凭证访问多个应用。因为用户不需要为每个应用记住不同的凭证,所以简化了访问。但是,用户必须分别向每个应用程序提供其凭据,尽管使用的凭据是相同的。而SSO让用户只需要提供一次凭证就可以访问多个应用。使用SSO,用户在会话结束前都不需要提供凭证。

WSO2身份服务中的关键概念一: 单点登录与身份联合相关推荐

  1. 【身份认证及权限控制一】单点登录

    官方介绍:单点登录,简称为 SSO,是目前比较流行的企业业务整合的解决方案之一. SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统.是指在多系统应用群中登录一个系统, ...

  2. 互联网分布式微服务云平台规划分析--SSO单点登录系统

    介绍 鸿鹄云架构[SSO单点登录系统]为所有微服务提供统一的用户认证服务,系统本身属于微服务模式,使用JWT+Redis分布式存储方案,确保不同微服务.系统之间的安全通讯和统一用户校验.认证.在整个服 ...

  3. Java单点登录在校园身份管理系统中的实现

    java单点登录在校园身份管理系统中的实现 摘要: 一个学校或企业的内部有很多信息系统,用户登录这些系统时需要进行身份认证.传统的认证机制是基于用户名和密码的,每一个系统都建立有自己的用户信息数据库, ...

  4. [ITIL]-ITIL4的服务管理关键概念

    ITIL4的服务管理关键概念 ITIL4的服务管理关键概念 服务管理概念 服务管理的关键概念及解释 服务管理关键概念有:价值的本质和价值的共同创造,服务关系,价值:结果.成本.风险,组织:服务提供者. ...

  5. 编写你自己的单点登录(SSO)服务(转)

    编写你自己的单点登录(SSO)服务 分类: 文章 2006-05-24 10:48 48305人阅读 评论(87) 收藏 举报 王昱 yuwang881@gmail.com   博客地址http:// ...

  6. 单点登录(SSO)服务

    摘要:单点登录(SSO)的技术被越来越广泛地运用到各个领域的软件系统当中.本文从业务的角度分析了单点登录的需求和应用领域:从技术本身的角度分析了单点登录技术的内部机制和实现手段,并且给出Web-SSO ...

  7. SSO单点登录简析 身份认证 安当加密

    本文介绍SSO概念和简略方案原理,不拆解协议细节. 一.身份认证 身份是一切信任的基础.基于身份的信任思维就是不信任企业内部和外部的任何人.任何系统,需要基于身份认证和授权,执行以身份为中心的访问控制 ...

  8. trs ids身份服务器系统实现统一身份认证与单点登录平台技术,统一身份认证和单点登录系统建设方案.pdf...

    福建省公安公众服务平台 统一身份认证及单点登录系统建设方案 福建公安公众服务平台建设是我省公安机关 "三大战役"社会管 理创新的重点项目之一: 目前平台目前已经涵盖了公安厅公安门户 ...

  9. list python 转tensor_TensorFlow 中的几个关键概念:Tensor,Operation,Graph,Session

    前言:TensorFlow是一种符号式编程框架,首先要构造一个图(graph),然后在这个图上做运算.打个比方,graph就像一条生产线,session就像生产者.生产线具有一系列的加工步骤(加减乘除 ...

  10. 用WSE在Web服务中验证用户身份

    一.Web服务安全与WS-Security 毫无疑问,SOAP和XML Web服务在交互操作和标准上已经完全改变了电子商务领域的格局. 然而直到最近,在Web服务技术领域仍然存在着一些缺陷,那就是处理 ...

最新文章

  1. BZOJ2055 80人环游世界
  2. golang打包HTML为Android,使用Go开发Web服务,并打包html/js/css等静态资源文件
  3. flex组合流动布局实例---利用css的order属性改变盒子排列顺序
  4. linux内核与设备驱动,第二章 Linux内核与设备驱动程序
  5. Linux多线程之线程同步(条件变量)
  6. Angularjs切换网站配色模式简单示例2(切换body元素的class)
  7. arp协议、arp应答出现的原因、arp应答过程、豁免ARP详细解答附图(建议电脑观看)
  8. 【BZOJ3616】War,KD树+bitset压位
  9. JQuery选择器中含有冒号的ID处理差异的分析
  10. java幻灯片效果_java实现多种幻灯片切换特效(经典,附源码)
  11. 数据集成-3-数据集成框架
  12. 腾讯开放平台 应用认领命令行
  13. java 递归算法N的乘阶
  14. java文字云_在线文字云制作工具
  15. CATT在SAP系统中的应用
  16. via ladder
  17. 数字孪生平台技术方案
  18. 织梦dedecms在网站底部添加备案号链接到工信部的办法
  19. 华为诺亚方舟实验室(智能工业视觉组)招聘实习生
  20. 公司电话系统是什么,有什么用?

热门文章

  1. linux检测扩容卡,怎么检测SD卡是否被扩容过?对SD卡进行扩容检测的方法
  2. html项目答辩ppt范文,论文答辩ppt 论文ppt答辩模板|论文答辩ppt范文6页
  3. web案例-3D旋转魔方和太极
  4. windows聚焦失效的解决办法
  5. php hprose扩展1.5.5,Laravel框架RPC解决方案--Hprose
  6. AE怎么切换中英文版本?1分钟学会切换AE版本语言
  7. python用函数判断一个数是否为素数,python分享是否为素数 python输入并判断一个数是否为素数...
  8. 开学必备宿舍神器,续航好的蓝牙耳机推荐
  9. 高通蓝牙耳机开发方法-周康
  10. java通过SMTP发送QQ邮件(参考自龙果学院)