您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > sso单点登录ppt
SSO单点登录系统许光富2019-04-11目录概述1实现机制&原理2基于CAS验证的框架3casssooauthopenidsaml的关系45安全论证1.1什么是SSOSSO单点登录(Singlesign-on)是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。SSO它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是目前比较流行的企业业务整合的解决方案之一。相反的SSO也可也以理解为SingleSignOff,单点登出,也就是一处登出动作,就可以结束对多个系统的存取权限一处登录、全网漫游1.2SSO的优势减少用户在不同系统中登录耗费的时间,减少用户登录出错的可能性实现安全的同时避免了处理和保存多套系统用户的认证信息减少了系统管理员增加、删除用户和修改用户权限的时间增加了安全性:系统管理员有了更好的方法管理用户,包括可以通过直接禁止和删除用户来取消该用户对所有系统资源的访问权限2.1SSO实现机制SSO的实现机制不尽相同,大体分为Cookie(客户端)验证机制和Session(服务器端)验证机制两大类Cookie认证是大众使用的用户验证方案(通过接口对每个域名下写cookie)-广播机制demo(ucenter):iframewidth=0height=0src==xxxxxxxxxxxx&sfkey=xxxxxxxxxxx/iframeiframewidth=0height=0src==xxxxxxxxxxxx&sfkey=xxxxxxxxxxx/iframe共享Session(db,nosql等)验证。-共享机制2.1.1单系统登录机制1.Web采用B/S架构,http作为通信协议。2.http是无状态协议3.每一次请求之间无关联4.任何用户均可访问2.1.2会话机制1.浏览器第一次请求服务器,服务器创建会话2.服务器把会话ID返回3.浏览器通过cookie保存一个会话ID4.再次发送http请求时浏览器自动发送会话id5.服务器校验会话ID,判断是否为同一个用户tomcat会话机制的示例2.1.3登录状态1.览器第一次请求服务器需要输入用户名与密码验证身份2.服务器拿到用户名密码进行身份校验3.校验成功,会话标记为“已授权”或者“已登录”4.再次访问时,服务起根据会话ID,去判断会话的标记的状态2.1.4单点登录随着互联网的发展,单系统已经发展成为了多系统组成的应用群,为了让用户更便捷的管理自己的账户,用户只需单点登录一次或者注销一次便能完成所有系统的统一操作。这就是单点登录的出现,所要解决的问题2.1.4.1sso的实现交互机制1.用户访问系统1的受保护资源,系统1发现用户未登录,跳转至sso认证中心,并将自己的地址作为参数2.sso认证中心发现用户未登录,将用户引导至登录页面3.用户输入用户名密码提交登录申请4.sso认证中心校验用户信息,创建用户与sso认证中心之间的会话,称为全局会话,同时创建授权令牌5.sso认证中心带着令牌跳转会最初的请求地址(系统1)6.系统1拿到令牌,去sso认证中心校验令牌是否有效7.sso认证中心校验令牌,返回有效,注册系统18.系统1使用该令牌创建与用户的会话,称为局部会话,返回受保护资源9.用户访问系统2的受保护资源10.系统2发现用户未登录,跳转至sso认证中心,并将自己的地址作为参数11.sso认证中心发现用户已登录,跳转回系统2的地址,并附上令牌12.系统2拿到令牌,去sso认证中心校验令牌是否有效13.sso认证中心校验令牌,返回有效,注册系统2系统2使用该令牌创建与用户的局部会话,返回受保护资源2.1.4.2sso的实现思路1.用户浏览器访问系统A需登录受限资源。2.系统A发现该请求需要登录,将请求重定向到认证中心,进行登录。3.认证中心呈现登录页面,用户登录,登录成功后,认证中心重定向请求到系统A,并附上认证通过令牌。4.系统A与认证中心通信,验证令牌有效,证明用户已登录。5.系统A将受限资源返给用户。已登录用户首次访问应用群中系统B时1.用户浏览器访问系统A需登录受限资源。2.系统A发现该请求需要登录,将请求重定向到认证中心,进行登录。3.认证中心呈现登录页面,用户登录,登录成功后,认证中心重定向请求到系统A,并附上认证通过令牌。4.系统A与认证中心通信,验证令牌有效,证明用户已登录。5.系统A将受限资源返给用户。单点登出1.客户端向应用A发送登出Logout请求。2.应用A取消本地会话,同时通知认证中心,用户已登出。3.应用A返回客户端登出请求。4.认证中心通知所有用户登录访问的应用,用户已登出。登录状态判断全局会话--用户到认证中心登录后,用户和认证中心之间建立起了会话局部会话--应用和用户浏览器之间建立起局部会话3.1什么是CASCAS是中央认证服务CentralAuthenticationService的简称。最初由耶鲁大学的ShawnBayern开发,后由Jasig社区维护,经过十多年发展,目前已成为影响最大、广泛使用的、基于Java实现的、开源SSO解决方案。CAS是一种针对Web的企业多语言单点登录解决方案,并试图成为您的认证和授权需求的综合平台。()CAS是一个企业级的开放源代码单点登录解决方案,包含Java服务器组件和各种用PHP,PL/SQL,Java等多种语言编写的客户端库。SSO仅仅是一种架构,一种设计,而CAS则是实现SSO的一种手段。两者是抽象与具体的关系。当然,除了CAS之外,实现SSO还有其他手段,比如简单的cookie。3.2CAS中央验证架构3.3CAS1.0术语:Client:用户。Server:中心服务器,也是SSO中负责单点登录的服务器。Service:需要使用单点登录的各个服务,相当于上文中的产品a/b。接口:/login:登录接口,用于登录到中心服务器。/logout:登出接口,用于从中心服务器登出。/validate:用于验证用户是否登录中心服务器。/serviceValidate:用于让各个service验证用户是否登录中心服务器3.3CAS1.0票据:TGT:TicketGrangtingTicketTGT是CAS为用户签发的登录票据,拥有了TGT,用户就可以证明自己在CAS成功登录过。TGT封装了Cookie值以及此Cookie值对应的用户信息。当HTTP请求到来时,CAS以此Cookie值(TGC)为key查询缓存中有无TGT,如果有的话,则相信用户已登录过。TGC:TicketGrantingCookieCASServer生成TGT放入自己的Session中,而TGC就是这个Session的唯一标识(SessionId),以Cookie形式放到浏览器端,是CASServer用来明确用户身份的凭证。ST:ServiceTicketST是CAS为用户签发的访问某一service的票据。用户访问service时,service发现用户没有ST,则要求用户去CAS获取ST。用户向CAS发出获取ST的请求,CAS发现用户有TGT,则签发一个ST,返回给用户。用户拿着ST去访问service,service拿ST去CAS验证,验证通过后,允许用户访问资源。3.4CAS验证流程参考链接:的关系CAS系统解决单点登录问题,对身份认证的具体方法不做要求。Oauth、openID、SAML是身份身份认证授权的规范和标准,是解决认证授权问题的。AuthenticationVSAuthorisationAuthentication:身份鉴别,以下简称认证;Authorisation:资源访问授权。AuthorizationServer/IdentityProvider(IdP)把负责认证的服务称为AuthorizationServer或者IdentityProvider,以下简称IDP。ServiceProvider(SP)/ResourceServer把负责提供资源(API调用)的服务称为ResourceServer或者ServiceProvider,以下简称SP。OAuth2.0的流程用户通过客户端(可以是浏览器也可以是手机应用)想要访问SP上的资源,但是SP告诉用户需要进行认证,将用户重定向至IDP。IDP向用户询问SP是否可以访问用户信息。如果用户同意,IDP向客户端返回authorizationcode。客户端拿到authorizationcode向IDP交换accesstoken,并拿着accesstoken向SP请求资源。SP接受到请求之后,拿着附带的token向IDP验证用户的身份。确认身份无误后,SP向客户端发放相关资源。SAML2.0image还未登陆的用户打开浏览器访问你的网站(SP),网站提供服务但是并不负责用户认证。于是SP向IDP发送了一个SAML认证请求,同时SP将用户浏览器重定向到IDP。IDP在验证完来自SP的请求无误之后,在浏览器中呈现登陆表单让用户填写用户名和密码进行登陆。一旦用户登陆成功,IDP会生成一个包含用户信息(用户名或者密码)的SAMLtoken(SAMLtoken又称为SAMLAssertion,本质上是XML节点)。IDP向SP返回token,并且将用户重定向到SP(token的返回是在重定向步骤中实现的,下面会详细说明)。SP对拿到的token进行验证,并从中解析出用户信息,例如用户是谁以及用户的权限有哪些。此时就能够根据这些信息允许用户访问我们网站的内容。OpenID与OAuthOpenID:只用于身份认证(Authentication),允许你以同一个账户在多个网站登陆。它仅仅是为你的合法身份背书,当你以Facebook账号登陆某个站点之后,该站点无权访问你的在Facebook上的数据。OAuth:用于授权(Authorisation),允许被授权方访问授权方的用户数据。OpenID与Oauth协议的区别Oauth协议的使用场景:用户通过第三方照片打印应用打印在某个网站存储的照片,而不希望泄露照片网站的用户名、密码等信息给第三方的照片打印应用。OpenID协议的使用场景,用户在多个网站注册,需要注册并记住多个用户名密码,openid希望帮用户提供一个身份ID,可以在多个网站用来登录。登录网站时,用户选择用其身份ID登录,跳转到身份ID颁发的网站输入用户名、密码进行身份认证,然后跳转会网站实现登录。Oauth协议的认证凭证必须是资源拥有者发放的;而OpenID的认证凭证可以是你需要登录的网站支持的其它任何正规OpenidProvier网站均可。OpenID只是身份的象征,可以看作是身份证;而Oauth认证凭证,一定是资源拥有者发放的,不仅是用户在资源拥有者系统身份的凭证,还是其某些授权资源访问的凭证,可以看作是钥匙。5.1安全论证SSO是所有应用的入口,所以SSO的安全性比所有应用安全性都重要一切不以SSL方式登录的系统都是耍流氓。CAS的安全性是一个非常重要的Topic。CAS从v1到v3,都很依赖于SSL,它假定了这样一个事实,用户在一个非常不安全的网络环境中使用SSO,Hacker的Sniffer会很容易抓住所有的HttpTraffic,包括通过Http传送的密码甚至Ticket票据。一旦ticket被第三方获取,所有的权限都会被攻破CAS的传输安全性紧紧依赖SSL(CAS认证中心必须使用https)ServiceTicket只能使用一次S
三七文档所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
本文标题:sso单点登录ppt
链接地址:https://www.777doc.com/doc-7196802 .html