基于WS-Federation的Web服务跨域单点登陆认证分析

合集下载

单点登录协议技术解析

单点登录协议技术解析

单点登录协议技术解析在单点登录实现中,系统之间的协议对接是⾮常重要的⼀环,⼀般涉及的标准协议类型有 CAS、OAuth、OpenID Connect、SAML,本⽂将对四种主流 SSO协议进⾏概述性的介绍,并⽐较其异同,读者亦可按图索骥、厘清关键概念。

⼀、认证与授权的区别在介绍具体协议之前,有必要先说明“认证(Authentication)”和“授权(Authorization)”的区别。

认证(Authentication)即确认该⽤户的⾝份是他所声明的那个⼈;授权(Authorization)即根据⽤户⾝份授予他访问特定资源的权限。

也就是说,当⽤户登录应⽤系统时,系统需要先认证⽤户⾝份,然后依据⽤户⾝份再进⾏授权。

认证与授权需要联合使⽤,才能让⽤户真正登⼊并使⽤应⽤系统。

⼆、CASCentral Authentication Service简称CAS,是⼀种常见的B/S架构的SSO协议。

和其他任何SSO协议⼀样,⽤户仅需登陆⼀次,访问其他应⽤则⽆需再次登陆。

顾名思义,CAS是⼀种仅⽤于Authentication的服务,它和OAuth/OIDC协议不⼀样,并不能作为⼀种Authorization的协议。

当前CAS协议包括CAS 1.0、CAS2.0、CAS3.0版本,这三个版本的认证流程基本类似。

CAS的认证流程通过包括⼏部分参与者:Client: 通常为使⽤浏览器的⽤户CAS Client: 实现CAS协议的Web应⽤CAS Server: 作为统⼀认证的CAS服务器认证流程⼤致为:1. Client(终端⽤户)在浏览器⾥请求访问Web应⽤example;2. 浏览器发起⼀个GET请求访问example应⽤的主页https://;3. 应⽤example发现当前⽤户处于未登陆状态,Redirect⽤户⾄CAS服务器进⾏认证;4. ⽤户请求CAS服务器;5. CAS发现当前⽤户在CAS服务器中处于未登陆状态, 要求⽤户必须得先登陆;6. CAS服务器返回登陆页⾯⾄浏览器;7. ⽤户在登陆界⾯中输⼊⽤户名和密码(或者其他认证⽅式);8. ⽤户把⽤户名和密码通过POST,提交⾄CAS服务器;9. CAS对⽤户⾝份进⾏认证,若⽤户名和密码正确,则⽣成SSO会话, 且把会话ID通过Cookie的⽅式返回⾄⽤户的浏览器端(此时,⽤户在CAS服务端处于登陆状态);10. CAS服务器同时也会把⽤户重定向⾄CAS Client, 且同时发送⼀个Service Ticket;11. CAS Client的服务端收到这个Service Ticket以后,请求CAS Server对该ticket进⾏校验;12. CAS Server把校验结果返回给CAS Client, 校验结果包括该ticket是否合法,以及该ticket中包含对⽤户信息;13. ⾄此,CAS Client根据Service Ticket得知当前登陆⽤户的⾝份,CAS Client处于登陆态。

统一认证单点登录系统SSO解决方案

统一认证单点登录系统SSO解决方案

统一认证单点登录系统SSO解决方案单点登录(SSO)是一种身份认证技术,允许用户通过一次登录,获得访问多个相关系统的权限,而无需重新输入登录凭证。

统一认证单点登录系统(SSO)解决方案是一种集成和授权机制,为用户提供单一的身份验证机制,使其能够快速、方便地访问各种不同的应用程序和系统。

在传统的登录方式中,用户通常需要为每个应用程序和系统拥有一个独立的账号,并需要输入每个应用程序或系统的登录凭证。

这对于用户来说非常繁琐,也容易导致账号和密码的管理困难。

单点登录解决方案通过集成和授权机制,解决了这个问题,并为用户提供了一种更便捷和高效的身份验证方式。

1. 身份提供者(Identity Provider,IdP):身份提供者是SSO系统的核心组件,负责用户身份的认证和授权。

用户通过身份提供者进行登录,并获得生成和管理身份凭证的权限。

2. 服务提供者(Service Provider,SP):服务提供者是SSO系统中的应用程序或系统,它依赖于身份提供者来验证和授权用户的身份。

用户只需在身份提供者处登录一次,即可无需重新输入登录凭证,访问多个服务提供者。

3. 身份凭证(Credentials):身份凭证是由身份提供者生成,以验证用户身份的信息。

它可以是用户名和密码的组合,也可以是使用其他身份验证方式生成的令牌或证书。

4. 单点登录协议:单点登录解决方案使用不同的协议来实现身份验证和授权。

常见的协议包括SAML(Security Assertion MarkupLanguage)、OpenID Connect、OAuth等。

这些协议定义了身份提供者和服务提供者之间的通信规范,以确保安全可靠地传输身份凭证和用户信息。

单点登录解决方案的具体实现步骤如下:1.用户访问服务提供者(SP)应用程序,并被要求进行身份验证。

2.SP应用程序将用户重定向到身份提供者(IdP)登录页面。

3.用户在IdP登录页面上输入其凭据(用户名和密码)。

单点登录解决方案

单点登录解决方案

单点登录解决方案背景 (1)CAS简介 (1)基于CAS的单点登录解决方案 (5)一.CAS单点登录环境的搭建 (5)二.CAS与UniEAP的集成 (7)三.在配置CAS和使用CAS可能出现的问题 (11)背景随着互联网络应用的普及,越来越多的人开始使用互联网上提供的服务。

然而目前提供服务的网站大多采用用户名、口令的方式来识别用户身份,这使得用户需要经常性的输入自己的用户名、口令。

显然这种认证方式存在着弊端:随着用户网络身份的增多,用户相应的需要记忆多组用户名、口令,这给用户造成记忆上的负担;另外频繁的输入用户名、口令,会相应的增大用户的口令密码被破解的机率。

为了改变这一现状,单点登录技术应运而生。

单点登录技术的核心思想是通过一定的方式使得各提供服务的网站之间建立某种联系,用户只需要在其中一个认证网站进行登录后,即可实现全局登录,当用户再访问其他网站时,不需要再次登录,其身份就可以被验证。

我们可以看到采用单点登录技术后,用户只需要记忆一组用户名、口令,并且在登录多个网站时只需要输入一次用户名、口令,这就使得用户可以更加安全快捷的使用互联网上的各种服务。

UniEAP在支持行业事业部时,发现“单点登录”的需求还是非常多的,因此提供了一个以CAS为基础的单点登录解决方案。

CAS简介CAS(Central Authentication Service),是耶鲁大学开发的单点登录系统(SSO,single sign-on),应用广泛,具有独立于平台的,易于理解,支持代理功能。

CAS系统在各个大学如耶鲁大学、加州大学、剑桥大学、香港科技大学等得到应用。

Spring Framework的Acegi安全系统支持CAS,并提供了易于使用的方案。

Acegi安全系统,是一个用于Spring Framework的安全框架,能够和目前流行的Web容器无缝集成。

它使用了Spring的方式提供了安全和认证安全服务,包括使用Bean Context,拦截器和面向接口的编程方式。

SAML协议的单点登录

SAML协议的单点登录

SAML协议的单点登录SAML(Security Assertion Markup Language)是一种用于基于Web 的身份验证和授权的开放标准。

它允许用户在不同的Web应用程序之间进行单点登录(Single Sign-On),从而提供了更便捷和安全的用户体验。

本文将介绍SAML协议的单点登录原理和应用。

一、SAML协议概述SAML协议是由OASIS(Organization for the Advancement of Structured Information Standards)制定的,旨在解决不同域之间的用户认证和授权问题。

它基于XML(eXtensible Markup Language)格式,使用面向消息的方式进行通信,实现了身份提供方(Identity Provider)和服务提供方(Service Provider)之间的信任关系建立和信息交换。

二、单点登录原理单点登录是指用户只需进行一次身份验证即可访问多个关联系统,而无需再次输入用户名和密码。

SAML协议通过三个主要组件实现单点登录:身份提供方、服务提供方和元数据。

1. 身份提供方(Identity Provider,简称IdP):负责用户的身份验证和生成SAML断言,用于向服务提供方提供用户的身份凭证。

2. 服务提供方(Service Provider,简称SP):提供服务的Web应用程序,依赖于身份提供方验证用户的身份。

3. 元数据(Metadata):包含了身份提供方和服务提供方的配置信息。

身份提供方和服务提供方通过交换元数据来建立信任关系。

单点登录的流程如下:(1)用户访问服务提供方的Web应用程序。

(2)服务提供方检测到用户未登录,重定向用户到身份提供方。

(3)用户在身份提供方进行身份验证。

(4)身份提供方生成SAML断言(Assertion),包含用户的身份信息和相关认证信息。

(5)身份提供方将SAML断言发送给服务提供方。

单点登录的应用与原理

单点登录的应用与原理

单点登录的应用与原理1. 概述单点登录(Single Sign-On,简称SSO)是一种用于简化用户登录流程的身份验证机制。

通过SSO,用户只需要登录一次,便可在多个关联应用系统中进行访问,避免了多次输入账号和密码的繁琐操作。

2. SSO的应用场景SSO适用于以下场景: - 企业内部系统:在企业内部,部署多个应用系统,如人力资源管理系统、OA系统、CRM系统等,通过SSO可以方便员工在这些系统间进行无缝切换,提高工作效率。

- 教育机构:学校内部的各个应用系统,如教务管理系统、图书馆管理系统等,通过SSO可以方便学生和教职工在不同系统间进行登录。

- 云服务提供商:提供各种云服务的供应商,如云存储、云计算等,通过SSO可以简化用户在不同云服务间切换的登录流程。

3. SSO的原理SSO的实现原理主要基于以下两种方式:3.1 基于令牌的SSO基于令牌的SSO采用了中央验证服务器的方式。

其工作原理如下: 1. 用户登录时,客户端向认证服务器发起请求。

2. 认证服务器验证用户的身份,通过后签发一个令牌(Token)。

3. 客户端将令牌保存在本地。

4. 客户端在访问其他关联应用系统时,将令牌发送给应用系统的认证服务器进行验证。

5. 应用系统的认证服务器接收到令牌后,向中央验证服务器请求验证。

6. 中央验证服务器验证令牌的有效性,并返回验证结果给应用系统的认证服务器。

7. 应用系统的认证服务器根据验证结果决定是否允许用户登录。

3.2 基于浏览器的SSO基于浏览器的SSO是利用浏览器的Cookie特性实现的。

其工作原理如下: 1. 用户登录时,客户端向认证服务器发起请求。

2. 认证服务器验证用户的身份,通过后在响应头中设置一个Cookie,包含用户的登录凭证信息。

3. 客户端的浏览器接收到Cookie后会自动保存。

4. 客户端在访问其他关联应用系统时,浏览器会自动将Cookie携带到请求中。

sso单点登录的几种实现方式

sso单点登录的几种实现方式

sso单点登录的几种实现方式
单点登录(SSO)是一种身份验证和授权的机制,允许用户仅需一次登录就可以访问多个应用程序。

以下是几种常见的SSO实现方式:
1. 基于共享 Cookie:在这种方式下,所有应用程序共享一个中心服务器,该服务器负责验证用户身份并颁发加密的Cookie。

用户登录后,Cookie会在不同的应用程序之间进行传递,以实现无需再次输入用户名和密码即可访问应用程序。

2. 基于令牌:这种方式下,用户成功登录后,认证服务器会颁发一个令牌给用户。

该令牌包含用户身份信息和权限验证。

用户在访问其他应用程序时,只需要将令牌发送给认证服务器验证即可。

3. 基于身份提供商(Identity Provider):也称为Federation SSO,这种方式下,企业或组织委托第三方身份提供商来管理用户身份验证。

用户登录时,会被重定向到身份提供商进行验证,验证成功后,身份提供商会向应用程序提供一个供其验证用户身份的令牌。

4. 基于OAuth协议:OAuth是一个开放标准的授权协议,被广泛应用于SSO。

它允许用户使用第三方应用程序(被称为客户端)代表用户请求访问受保护的资源,而无需提供第三方应用程序的用户名和密码。

用户登录成功后,授权服务器会颁发一个访问令牌给客户端,客户端可以使用该令牌来访问受保护的资源。

这些实现方式可以根据具体的需求和系统架构选择使用。

单点登录的流程

单点登录的流程
单点登录(SSO)是一种身份验证机制,它允许用户在多个应用
程序或网站上使用相同的登录凭据进行访问。

以下是单点登录的流程:
1. 用户打开应用程序或网站,需要进行身份验证才能使用。

2. 应用程序或网站将用户请求转发到单点登录系统。

3. 单点登录系统接收到请求后,检查用户是否已登录。

4. 如果用户已经登录,则单点登录系统将生成一个令牌,并将
其发送回应用程序或网站。

5. 应用程序或网站使用令牌来验证用户身份,并允许用户访问
所需的资源。

6. 如果用户尚未登录,则单点登录系统将要求用户提供凭据进
行身份验证。

7. 一旦用户成功进行身份验证,单点登录系统将生成一个令牌,并将其发送回应用程序或网站,以便用户访问所需的资源。

通过单点登录系统,用户可以使用相同的用户名和密码访问多个应用程序和网站,从而减少了登录的次数和时间。

此外,单点登录还提高了安全性,因为用户只需要进行一次身份验证,从而减少了风险。

- 1 -。

sso认证方法

sso认证方法
SSO(单点登录)是一种常见的认证方法,它允许用户在多个应用系统中只需登录一次,就可以访问其他相互信任的应用系统。

以下是一些常见的SSO认证方法:
1. 基于Cookie的身份验证:当用户首次登录时,服务器会生成一个唯一的session ID,并将其存储在Cookie中发送给客户端。

在后续的请求中,客户端将此Cookie发送回服务器,以验证用户身份。

2. JWT(JSON Web Token):JWT是一种基于Token的身份验证方法,它使用JSON格式来封装用户的信息。

当用户首次登录时,服务器会生成一个JWT并将其返回给客户端。

在后续的请求中,客户端将此JWT发送回服务器以进行身份验证。

3. OAuth(Open Authorization):OAuth是一种基于令牌的身份验证协议,它允许第三方应用程序代表用户访问其帐户,而不暴露用户的密码。

用户授予第三方应用程序访问其帐户的权限后,该应用程序将获得一个访问令牌,可以使用该令牌代表用户访问其帐户。

4. SAML(Security Assertion Markup Language):SAML是一种基于XML的身份验证协议,它允许身份提供者(IdP)和服务提供者(SP)之间交换身份验证和授权信息。

当用户首次登录时,身份提供者将生成一个SAML断言并将其发送给服务提供者,以验证用户身份。

这些是常见的SSO认证方法,每种方法都有其优点和适用场景。

选择合适的认证方法取决于应用程序的需求和安全性要求。

Web认证_介绍Web开发中几种常用的认证机制

Web认证_介绍Web开发中⼏种常⽤的认证机制如今web服务随处可见,成千上万的web程序被部署到公⽹上供⽤户访问,有些系统只针对指定⽤户开放,属于安全级别较⾼的web应⽤,他们需要有⼀种认证机制以保护系统资源的安全,本⽂将探讨五种常⽤的认证机制及优缺点。

HTTP基本认证(HTTP Basic Auth)在HTTP中,HTTP基本认证是⼀种允许Web浏览器或者其他客户端在请求时提供⽤户名和⼝令形式的⾝份凭证的⼀种登录验证⽅式。

简单⽽⾔,HTTP基本认证就是我们平时在⽹站中最常⽤的通过⽤户名和密码登录来认证的机制。

优点:HTTP 基本认证是基本上所有流⾏的⽹页浏览器都⽀持。

但是基本认证很少在可公开访问的互联⽹⽹站上使⽤,有时候会在⼩的私有系统中使⽤。

缺点:HTTP 基本认证虽然⾜够简单,但是前提是在客户端和服务器主机之间的连接⾜够安全。

如果没有使⽤SSL/TLS这样的传输层安全的协议,那么以明⽂传输的密钥和⼝令很容易被拦截。

由于现存的浏览器保存认证信息直到标签页或浏览器关闭,或者⽤户清除历史记录。

导致了服务器端⽆法主动来当前⽤户登出或者认证失效。

OAuth(开放授权)OAuth(开放授权)是⼀个开放的授权标准,允许⽤户让第三⽅应⽤访问该⽤户在某⼀web服务上存储的私密的资源(如照⽚,视频,联系⼈列表),⽽⽆需将⽤户名和密码提供给第三⽅应⽤。

OAuth允许⽤户提供⼀个令牌,⽽不是⽤户名和密码来访问他们存放在特定服务提供者的数据。

每⼀个令牌授权⼀个特定的第三⽅系统(例如,视频编辑⽹站)在特定的时段(例如,接下来的2⼩时内)内访问特定的资源(例如仅仅是某⼀相册中的视频)。

这样,OAuth让⽤户可以授权第三⽅⽹站访问他们存储在另外服务提供者的某些特定信息,⽽⾮所有内容下⾯是OAuth2.0的流程:(1)客户端(Client)向资源拥有者(Resource Owner)发送授权请求(Authorization Request)(2)资源拥有者授权许可(Authorization Grant)(3)客户端向验证服务器(Authorization Server)发送通过(2)获取的授权许可(4)验证服务器验证授权许可,通过的话,则返回Access Token给客户端(5)客户端通过Access Token 访问资源服务器(Resource Server)(6)资源服务器返回受保护的资源(Protected Resource)这种基于OAuth的认证机制适⽤于个⼈消费者类的互联⽹产品,如社交类APP、⾖瓣、微信js-SDK等应⽤,但是不太适合拥有⾃有认证权限管理的企业应⽤;Cookie/SessionCookie 是由客户端保存的⼩型⽂本⽂件,其内容为⼀系列的键值对。

政务单点登录分析报告

单点登录分析报告------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------ Josso介绍特点JOSSO 是一个纯Java基于J2EE的单点登陆验证框架,主要用来提供集中式的平台无关的用户验证。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档