微服务架构统一安全认证设计与实践.docx

上传人:lao****ou 文档编号:138269 上传时间:2023-04-11 格式:DOCX 页数:14 大小:242.62KB
下载 相关 举报
微服务架构统一安全认证设计与实践.docx_第1页
第1页 / 共14页
微服务架构统一安全认证设计与实践.docx_第2页
第2页 / 共14页
微服务架构统一安全认证设计与实践.docx_第3页
第3页 / 共14页
微服务架构统一安全认证设计与实践.docx_第4页
第4页 / 共14页
微服务架构统一安全认证设计与实践.docx_第5页
第5页 / 共14页
亲,该文档总共14页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《微服务架构统一安全认证设计与实践.docx》由会员分享,可在线阅读,更多相关《微服务架构统一安全认证设计与实践.docx(14页珍藏版)》请在第一文库网上搜索。

1、微服务架构统一安全认证设计与实践当企业应用系统逐渐增多后,每个系统单独管理各自的用户数据容易形成信息孤岛,分散的用户管理模式阻碍了企业应用向平台化演进。当企业的互联网业务发展到一定规模,构建统一的标准化账户管理体系将是必不可少的,因为它是企业互联网云平台的重要基础设施,能够为平台带来统一的帐号管理、身份认证、用户授权等基础能力,为企业带来诸如跨系统单点登录、第三方授权登录等基础能力,为构建开放平台和业务生态提供了必要条件。1 名词定义Third-party application:第三方应用程序,本文中又称“客户端(client) oHTTP service: HTTP服务提供商,本文中简称服

2、务提供商。Resource Owner:资源所有者,本文中又称用户(user),即登录用户。User Agent:用户代理,本文中就是指浏览器。Authorization server:认证服务器,即服务提供商专门用来处理认证的服务器。Resource server:资源服务器,即服务提供商存放用户生成的资源的服务器。它与认证服务器,可以是同一台服务器,也可以是不同的服务器。2 研发背景单体应用体系下,应用是一个整体,一般针对所有的请求都会进行权限校验。请求一般会通过一个权限的拦截器进行权限的校验,在登录时将用户信息缓存到session中,后续访问则从缓存中获取用户信息。随着Restful A

3、PI微服务的兴起,基于Token的认证现在已经越来越普遍。Token和Session TD不同,并非只是一个key。Token 一般会包含用户的相关信息,通过验证Token就可以完成身份校验。基于Token认证的优势如下:服务端无状态:Token机制在服务端不需要存储session信息,因为Token自身包含了所有用户的相关信息。性能较好,因为在验证Token时不用再去访问数据库或者远程服务进行权限校验,自然可以提升不少性能。支持移动设备,支持跨程序调用,Cookie是不允许垮域访问的,而Token则不存在这个问题。3 研发目标通过标准安全认证流程,异构系统或跨服务间能够灵活地实现指定功能部件

4、或服务的集成、统一的安全认证。基于Token认证的一个典型流程如下:用户输入登录信息(或者调用Token接口,传入用户信息),发送到身份认证服务进行认证(身份认证服务可以和服务端在一起,也可以分离,看微服务拆分情况了)。2.身份验证服务验证登录信息是否正确,返回接口(一般接口中会包含用户基础信息、权限范围、有效时间等信息),客户端存储接口,可以存储在Session或者数据库中。4.5.客户端将Token放在HTTP请求头中,发起相关API调用。6.7.被调用的微服务,验证Token权限。9.服务端返回相关资源和数据。10.安全认证功能点:系统授权客户端身份校验资源所有者身份校脸Tokon凭证信

5、息生成授权服务系统婆权Token合法性校验登录权限加载坊向资源权限校验凭证续约R8frgshTok&n合法性校脸客户端身份校验Token凭证信息生成获取凭证,第三方应用客户端使用客户端编码/安全码、资源所有者用户名/密码等证件信息从授权服务器上获取Access Token资源访问凭证。2.3.登录授权,客户端携带Access Token凭证访问服务器资源,资源服务器验证Token.第三方应用凭证信息、资源所有者User合法性,通过Token读取资源所有者身份信息(user)加载资源所有者的权限项执行登录。5.访问鉴权,第三方应用客户端访问服务端资源,系统验证访问者Access Token合法性

6、、权限信息,验证凭证(Access Token)正确,此时资源服务器就会返回资源信息。6.7.凭证续约,Access token访问凭证过期需要进行凭证续约,刷新Token凭证有效期。另外,搜索公众号程序员小乐后台回复支付,获取一份惊喜礼包。4 技术选型分析系统授权采用OAuth2开放式授权标准密码模式。Token采用JWT标准。OAuth开放授权OAuth (Open Authorization,开放授权)是为用户资源的授权定义了一个安全、开放及简单的标准,第三方无需知道用户的账号及密码,就可获取到用户的授权信息O会的四种授权方式:授权码模式(authorization code )用在客户

7、端与服务端应用之间授权码。简化模式(implicit)用在移动app或者web app (这些app是在用户的设备上的,如在手机上调起微信来进行认证授权)。不通过第三方应用程序的服务器,直接在浏览器中向认证服务器申请令牌,跳过了 授权码这个步骤,因此得名。所有步骤在浏览器中完成,令牌对访问者是可见的,且客户端不需要认证。密码模式 (resource owner password credentials ) 应用直接都是受信任的(都是由一家公司开发的)密码模式中,用户向客户端提供自己的用户名和密码。客户端使用这些信息、,向“服务商提供商索要授权。在这种模式中,用户必须把自己的密码给客户端,但是客

8、户端不得储存密码。客户端模式(client credentials )用在应用API访问客户端模式(Client. Credentials Grant)指客户端以自己的名义,而不是以用户的名义,向“服务提供商进行认证。严格地说,客户端模式并不属于OAuth框架所要解决的问题。在这种模式中,用户直接向客户端注册,客户端以自己的名义要求“服务提供商”提供服务,其实不存在授权问题。Json Web Token (JWT)Json Web Token (JWT),是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准(RFC 7519)。该Token被设计为紧凑且安全的,特别适用于分布式站点

9、的单点登录(SS0)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该Token也可直接被用于认证,也可被加密。认证流程逻辑系统授权第三方应用客户端使用客户端编码/安全码、资源所有者用户名/密码等证件信息从授权服务器上获取Access Token资源访问凭证。色,色巧,色,色必牛逼啊!接私活必备的N个开源项目!赶快收藏吧Authorization RequestResource OwnerClientti Autnonzation GrantC AutTiorization Grant

10、D Access Token E Access TokenProtected ResourceAuthorization ServerResource Server系统授权颁发给客户应用Access Tokeno“是的我同意”客户应用”你是否同意将权限授予客户应用”.部分表示AccessToken的清求和响威授权服务器系统鉴权客户端携带Access Token凭证访问服务器资源,资源服务器验证Token.第三方应用、资源所有者User合法性,通过Token读取资源所有者身份信息(user)加载资源所有者的权限执行登录。名户应用资源服务器系统验证访问者Access Token合法性、权限信息,验

11、证凭证(Access Token)正确,此时资源服务器就会返回资源信息。扩展:接私,舌儿凭证续约Access Token访问凭证过期需要进行凭证续约,刷新Token凭证有效期。+|Resource|owner|II+I Resource owner(A) Passwor d Credent ials+Author izat ionServerClient|-(B)- Resource Owner Password Credentials-(:)-一 Access Token(w/ Optional Refresh Token)6 接口设计授权凭证获取授权凭证,校验客户端身份信息、校验资源所有者

12、身份信息,下发Token凭证。接口推述请求方式POST请求路径oauth token请求头请求体ciiemjddata-centercttea.secretdata.centergranctypepasswordusernametestpassword000006返回体access_token: weyJhbGciOiJIUzIlNiJ9.eyJqciSkiOilyMDAOMj IxNzQSMzAxNgortJL乙 XX CT11U UM ZU 5JUJL 81 WX 4/UlW XJ UJUMX yOlMX U4cxUL12 wDl E TTirWaWVlldFSzZhzGFzc3dvcnQ

13、iOiJQajJaS25pdyIsInRva2VuX3RScGUiOiJvZWZyZXNoX3Rva2VuIn0.cPX.expires_in: 7200皿I客户端编码/安全码需要第三方应用到系统注册审核通过后生成。参数名必填类型说明grant_type是String值固定为“password”client_id是String第二方应用客户端idclient_secret是String第三方应用客户端安全码username是String用户登陆名password是String用户登陆密码scope否String表示授权范围 WW字段名字段说明access_token资源访问凭证refresh_token凭证续约刷新accessjoken凭证,有效时间为expires_in*2expires_maccessjoken资源访问凭证有效时间(单位秒),默

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 汇报材料

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服