作者回复: 嗯,理解了OAuth2的原理,还有spring security oauth2的基本用法,就能进行生产级研发和布署。企业生产做法很复杂,而且有些做法也不是通用标准做法,各家玩法五花八门,OAuth2则是业界沉淀下来的标准规范。课程后继有部分生产级微服安全架构和实践相关内容,还会介绍一些生产级的开源产品。另外后继作者还会推出一些授权认证相关的生产级实践的文章,会给你更新。谢谢你的反馈🌹
作者回复: 嗯,理解了OAuth2的原理,还有spring security oauth2的基本用法,就能进行生产级研发和布署。企业生产做法很复杂,而且有些做法也不是通用标准做法,各家玩法五花八门,OAuth2则是业界沉淀下来的标准规范。课程后继有部分生产级微服安全架构和实践相关内容,还会介绍一些生产级的开源产品。另外后继作者还会推出一些授权认证相关的生产级实践的文章,会给你更新。谢谢你的反馈🌹
作者回复: 嗯,本课是先基于spring cloud oauth,用简单实验讲解原理,课程后面会介绍一些生产级开源产品,有其它语言的。当然你的建议很好,我后面准备推出如何从零构建授权服务器的文章,会给你更新。
作者回复: 谢谢建议,问题1已经反馈极客时间,问题2中demo主要考虑一些入门级学习者,后继在综合案例部分还会增加实战内容,另外还会陆续推出实战文章。
作者回复: 在这个实验中,授权服务器和资源服务器住在一起,授权服务器使用内存模式,那么资源服务器也是使用内存去比对校验令牌的。如果两者不住在一起,使用数据库存储,那么资源服务器可以去数据库比对校验令牌,也可以通过授权服务器提供的校验端点比对校验令牌。
作者回复: 机器对机器,使用客户端凭证模式,不经过登陆验页,客户端直接通过提供clientid+secret获取令牌
作者回复: 这个错误是说:redirect_uri只适用于简化和授权码模式,如果你用用户名/密码模式,则不需要redirect_uri。
关于oauth2的协议参数需求,可以看官方RFC6749文档:https://tools.ietf.org/html/rfc6749#section-4
作者回复: 获取令牌操作需要带上正确的clientId/secret,使用http用户名密法方式认证,
curl -X POST --user clientapp:112233 ...
请确认,而且和服务器端设置匹配一致。
作者回复: 这个错误提示你请求传过去的redirect uri和服务器端配置的uri不一致,看看是否配置错了。
作者回复: 提示用户认证没有成功,获取授权码前必须经过用户认证的,你看看这步是否正确,用户名密码配置是否有误,输入是否正确。
作者回复: 谢谢你的好心支持!赞一个!
作者回复: 你好,第一次是optional可选,第二次是required必须,spring security oauth2只是RFC6749规范的实现,具体以RFC6749官方文档为准,参考4.1.1节:https://tools.ietf.org/html/rfc6749#section-4.1.1
作者回复: 因为这个授权码最终是要通过客户应用(一般是WebApp)去和授权服务器交互,才能最终获得令牌,注意这里不是通过浏览器直接和授权服务器交互,而是必须通过客户应用,因为只有客户应用它能存储clientid才有资格,浏览器只是中介实现一个302跳转
作者回复: 你好,谢谢你的建议!本次课程专注微服务八大核心组件,以模块化方式讲解,突出架构原理和实践。我后续还会推出微服务架构生产实践案例,不仅有微服务应用的架构和设计,同时结合k8s部署实践,敬请关注。
作者回复: zuul网关可以做集中令牌校验,可通过filter实现,具体可参考课程最后一个模块综合案例部分,网关集中验令牌之后,可向后传递用户信息(例如通过http header),下游服务可直接获取用户信息,不必再去集中验令牌
作者回复: 一般令牌需走https,且令牌可根据安全场景需求设定有效期,也可吊销,除普通令牌,另还有更安全的PoP(proof of possession)令牌,能验证拥有者身体,可用在安全严格场景。
作者回复: oauth有官方规范定义(rfc6749),规范中定义的端点是http(s)的,建议遵循规范保持互操作性。
作者回复: 不跳转的可考虑采用用户名密码模式,我课程的最后一个模块《综合案例分析》会讲这种模式实现(12月马上上线),可留意,如还有疑问,可加我微信(bulldog2015)沟通。
作者回复: spring security oauth2的确被封装过于复杂,很多学员反应无法完全理解这些oauth2流程,所以下个模块我会讲解如何实现一个oauth2授权认证服务器,包括代码剖析,帮助大家理清这些流程及实现方式,请关注下个第八模块视频课程。
作者回复: 这个是oauth2规范的获取授权码端点