oauth2

微服务鉴权

匿名 (未验证) 提交于 2019-12-03 00:15:02
oAuth2流程: 应用请求oAuth2服务器获取token(提供凭证) 应用携带token请求服务(header) 服务读取token并请求oAuth2服务器验证token,并获取用户信息 应用验证用户权限 JWT (Json Web Token) 自包含(不用请求oAuth2服务器就可以验证token) 可扩展(token可以包含扩展信息) OAuth2授权类型: 密码授权 客户端凭据授权 授权码授权 隐式授权 授权码授权流程(第三方登陆,用户使用B登陆A): 用户访问A,被A重定向至B的登录页 用户在B登陆,B请求oAuth服务器获取授权码 B重定向用户至A的回调地址(携带授权码) A请求oAuth服务器验证授权码 oAuth服务器返回给A token 来源:博客园 作者: jieyuefeng 链接:https://www.cnblogs.com/jieyuefeng/p/11762464.html

OIDC-Open ID Connect

匿名 (未验证) 提交于 2019-12-03 00:14:01
OpenID Connect的简称,OIDC=(Identity, Authentication) + OAuth 2.0。它在OAuth2上构建了一个身份层,是一个基于OAuth2协议的身份认证标准协议。我们都知道OAuth2是一个授权协议, EU:End User:一个人类用户。 RP:Relying Party ,用来代指OAuth2中的受信任的客户端,身份认证和授权信息的消费方; OP:OpenID Provider,有能力提供EU认证的服务(比如OAuth2中的授权服务),用来为RP提供EU的身份认证信息; ID Token:JWT格式的数据,包含EU身份认证的信息。 UserInfo Endpoint:用户信息接口(受OAuth2保护),当RP使用Access Token访问时,返回授权用户的信息,此接口必须使用HTTPS。 RP发送一个认证请求给OP; OP对EU进行身份认证,然后提供授权; OP把ID Token和Access Token(需要的话)返回给RP; RP使用Access Token发送一个请求UserInfo EndPoint; UserInfo EndPoint返回EU的Claims。 IDToken 授权服务器提供的包含用户信息(由一组Cliams构成以及其他辅助的Cliams)的JWT格式的数据结构 iss = Issuer Identifier

微服务开放平台接口设计

匿名 (未验证) 提交于 2019-12-02 23:43:01
什么是开放平台接口 在一些大型互联网公司,随着公司的业务发展逐渐庞大,需要和外部合伙伙伴进行合作,需要将公司的接口开放给外部其他合伙伙伴进行调用。 QQ互联网 、 微信开放平台 、 蚂蚁金服开放平台 钉钉开放平台 、 微博开放平台 ,比如实现功能QQ联合登陆、微信扫码登陆比如腾讯开放平台,比如实现功能QQ联合登陆、微信扫码登陆。 还有就是在大型集团公司中,分为总公司,和旗下多个分公司,总公司与分公司相互通讯也可以采用开放平台形式对接口进行授权。 ʲô 是Oauth2.0 OAuth : OAuth( 开放授权 )是一个开放标准,允许用户授权第三方网站访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方网站或分享他们数据的所有内容。 QQ登录OAuth2.0 :对于用户相关的OpenAPI(例如获取用户信息,动态同步,照片,日志,分享等),为了保护用户数据的安全和隐私,第三方网站访问用户数据前都需要显式的向用户征求 授权。 QQ登录OAuth2.0采用OAuth2.0标准协议来进行用户身份验证和获取用户授权,相对于之 ,其认证流程更简单和安全。 在开放平台接口设计中,遵循Oauth2.0认证授权协议 JWT。 QQ授权用到的字段属性介绍: appKey:商户密钥、这个可以进行修改,但是应该注意修改过之后进行同步的问题。 授权码Code:获取accessToken

微服务架构之「 访问安全 」(转载)

匿名 (未验证) 提交于 2019-12-02 23:42:01
文章来源:https://www.cnblogs.com/jsjwk/p/11015666.html 应用程序的访问安全又是我们每一个研发团队都必须关注的重点问题。尤其是在我们采用了微服务架构之后,项目的复杂度提升了N个级别,相应的,微服务的安全工作也就更难更复杂了。并且我们以往擅长的单体应用的安全方案对于微服务来说已经不再适用了。我们必须有一套新的方案来保障微服务架构的安全。 在探索微服务访问安全之前,我们还是先来回顾一下单体应用的安全是如何实现的。 一、传统单体应用如何实现「访问安全」? 下图就是一个传统单体应用的访问示意图: (图片来自WillTran在slideshare分享) 在应用服务器里面,我们有一个auth模块(一般采用过滤来实现),当有客户端请求进来时,所有的请求都必须首先经过这个auth来做身份验证,验证通过后,才将请求发到后面的业务逻辑。 通常客户端在第一次请求的时候会带上身份校验信息(用户名和密码),auth模块在验证信息无误后,就会返回Cookie存到客户端,之后每次客户端只需要在请求中携带Cookie来访问,而auth模块也只需要校验Cookie的合法性后决定是否放行。 可见,在传统单体应用中的安全架构还是蛮简单的,对外也只有一个入口,通过auth校验后,内部的用户信息都是内存/线程传递,逻辑并不是复杂,所以风险也在可控范围内。 那么

Spring Cloud 开放接口平台

匿名 (未验证) 提交于 2019-12-02 23:05:13
1、什么是微服务开放平台 2、Oauth2.0开放授权协议 3、常用开放平台接口 4、QQ互联网授权平台 5、演示QQ互联网接口 6、基于SpringCloudOauth2 搭建微服务开放平台 https://github.com/spring-cloud/spring-cloud-security 什么是开放平台接口 在一些大型互联网公司,随着公司的业务发展逐渐庞大,需要和外部合伙伙伴进行合作,需要将公司的接口开放给外部其他合伙伙伴进行调用。 比如腾讯的QQ互联网、微信开放平台、蚂蚁金服开放平台 、微博开放平台,比如实现功能QQ联合登陆、微信扫码登陆。 还有就是在大型集团公司中,分为总公司,和旗下多个分公司,总公司与分公司相互通讯也可以采用开放平台形式对接口进行授权。 什么是Oauth2 OAuth: OAuth(开放授权)是一个开放标准,允许用户授权第三方网站访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方网站或分享他们数据的所有内容。 QQ登录OAuth2.0:对于用户相关的OpenAPI(例如获取用户信息,动态同步,照片,日志,分享等),为了保护用户数据的安全和隐私,第三方网站访问用户数据前都需要显式的向用户征求授权。 QQ登录OAuth2.0采用OAuth2.0标准协议来进行用户身份验证和获取用户授权,相对于之前的OAuth1.0协议

LINE 项目总结

限于喜欢 提交于 2019-12-02 22:50:51
  前段时间做了一个“国外的公众号”,为什么说是国外的公众号呢,因为他和微信的公众号有很多共通之处。当然了也有很多不同的地方,第一个要说的就是,我在打印信息的时候,使用的alert()弹窗,但是后台才发现,LINE中的弹窗中的内容是 不能用逗号分隔 的。请看下面的代码: 1 alert(1,2,3); 在LINE中就只能打印个1,然后后面的2,3是不能显示的,这个是最初做的时候很疑惑的东西。解决办法也是很简单,就是使用字符串拼接上就可以了。   然后是LINE的登录,这个就是为什么我说是国外的公众号的原因了,因为他的登录基本上和微信的登录是一样的。具体过程就是前端需要率先访问一个LINE的网址,访问这个网址的时候,需要带上我们参数,其中会有一个参数是回调地址url,访问LINE的地址,会按照那个参数跳回来,然后在url后面添加上code参数。请看下面的代码: 1 /** 2 * line网页版登录,通讯验证给予oauth2.0 3 * @param client_id line后台配置的id,请联系相关人员索要 就是line当中的Channel ID 1601124*** 4 * @param gameUrl 游戏地址,登录后会跳转到此地址并携带可使用一次的code 5 * state 是咱们自定义的参数 6 */ 7 //client_id: string, gameUrl:

python编程之API入门: (二)python3中使用新浪微博API

匿名 (未验证) 提交于 2019-12-02 22:11:45
通过百度地图API的使用,我理解API调用的一般流程为:生成API规定格式的url->通过urllib读取url中数据->对json格式的数据进行解析。下一步,开始研究新浪微博API的使用。 新浪微博开放平台 是新浪微博API的使用平台。用微博账号登录该平台后,申请成为开发者,创建一个新应用后会得到唯一的App Key和App Secret。(注:应用不需要提交审核,只要创建新应用系统就会分配Key和Secret)在"我的应用/应用信息/基本信息"中也可以查到这两个信息。在这一页面中还有”我的应用/应用信息/高级信息“一项,点击进入并设置OAuth2.0授权回调页相关信息,如果不知道填什么好,可以设置为默认回调页: https://api.weibo.com/oauth2/default.html 。 这三项信息都是后面需要用到的,请复制保存到文档。 与百度地图API相比,新浪微博API增加了OAuth2.0协议用于用户身份验证和授权。这里仅作简要说明(感兴趣的同学请查看网上文档示意图):通过该协议,第三方应用可以获得用户授权,然后用该许可从授权服务器获得令牌(Token),用于后续从API服务器查询数据时验证身份。 这一验证环节增加了url生成的复杂度,好在网站上已经有廖雪峰老师提供的SDK工具包: sinaweibopy (廖老师的github地址好像改过名字

Spring Cloud 微服务中搭建 OAuth2.0 认证授权服务

匿名 (未验证) 提交于 2019-12-02 21:53:52
在使用 Spring Cloud 体系来构建微服务的过程中,用户请求是通过网关(ZUUL 或 Spring APIGateway)以 HTTP 协议来传输信息,API 网关将自己注册为 Eureka 服务治理下的应用,同时也从 Eureka 服务中获取所有其他微服务的实例信息。搭建 OAuth2 认证授权服务,并不是给每个微服务调用,而是通过 API 网关进行统一调用来对网关后的微服务做前置过滤,所有的请求都必须先通过 API 网关,API 网关在进行路由转发之前对该请求进行前置校验,实现对微服务系统中的其他的服务接口的安全与权限校验。 一般解决用户认证与授权的方法,目前主流的解决方案有 OAuth2.0 、 OIDC(OpenID Connect) 、 HMAC 、 JWT 等。 备注 : 关于 RESTFUL API 安全认证方式的一些总结 OAuth2.0 授权模式 OAuth2.0 协议根据使用不同的适用场景,定义了用于四种授权模式。 Authorization code(授权码模式) 标准的 Server 授权模式,非常适合 Server 端的 Web 应用。一旦资源的拥有者授权访问他们的数据之后,他们将会被重定向到 Web 应用并在 URL 的查询参数中附带一个授权码(code)。在客户端里,该 code 用于请求访问令牌(access_token)

微信公众平台实现第三方授权登录(java版)

匿名 (未验证) 提交于 2019-12-02 21:52:03
微信三方登录实现原理准备工作 准备工作 网站应用微信登录是基于OAuth2.0协议标准构建的微信OAuth2.0授权登录系统。 在进行微信OAuth2.在进行微信OAuth2.0授权登录接入之前,在微信开放平台注册开发者帐号,并拥有一个已审核通过的网站应用,并获得相应的AppID和AppSecret,申请微信登录且通过审核后,可开始接入流程。 授权流程说明 微信OAuth2.0授权登录让微信用户使用微信身份安全登录第三方应用或网站,在微信用户授权登录已接入微信OAuth2.0的第三方应用后,第三方可以获取到用户的接口调用凭证(access_token),通过access_token可以进行微信开放平台授权关系接口调用,从而可实现获取微信用户基本开放信息和帮助用户实现基础开放功能等。 微信OAuth2.0授权登录目前支持authorization_code模式,适用于拥有server端的应用授权。该模式整体流程为: 第三方发起微信授权登录请求,微信用户允许授权第三方应用后,微信会拉起应用或重定向到第三方网站,并且带上授权临时票据code参数; 通过code参数加上AppID和AppSecret等,通过API换取access_token; 通过access_token进行接口调用,获取用户基本数据资源或帮助用户实现基本操作。 第一步:请求CODE

oauth2 + jwt 实现用户中心

匿名 (未验证) 提交于 2019-12-02 21:52:03
由于公司项目比较杂,以前都是各产品线自行完成注册和登入.随着产品迭代,需要一个用户中心统一用户的管理,写个博客做个记录. 用oauth2实现,jwt作为token生成. oauth2流程 来源:博客园 作者: 阿航啊 链接:https://www.cnblogs.com/zhuchenhang/p/11505518.html