作者回复: 谢谢支持🌹
作者回复: https://github.com/sqshq/PiggyMetrics,这个案例你可以参考下,它的内部服务调用使用客户端授权模式
作者回复: 开发一个功能完善的sso系统不简单,我的微信号:bulldog2015,加微信请说明来自极客时间。
作者回复: 用户名密码模式是针对有人参与场景,需要同时提供client_id/secret(标识客户应用身份)和username/password(标识端用户身份);客户端模式针对机器,没有端用户参与,只需要提供客户应用身份标识client_id/secret。
作者回复: 你好,OAuth2的客户端模式适用于机器对机器的调用授权场景,你讲的对请求payload进行签名和验签也可以认为是一种调用授权方式,通过密钥MD5/RSA等方式保证:1)请求是受信方发出的;2)请求没有被篡改过。OAuth2令牌的特点是具有有效期/时效性,过期重新申请可以换一个令牌,可以集中校验和吊销令牌,你的办法如果考虑有效期/时效性,集中校验/吊销会比较麻烦,另外Key管理有一定复杂性。现在也流程一种方法把OAuth2令牌和签名/验签结合起来,这个就是JWT(JSON Web Token),它是一种自包含令牌,有时效性,可以包含过期和其它信息,可签名和自校验,可以无状态校验也可以集中校验。
作者回复: 使用场景不同,客户端模式适用于机器对机器(无人参与),授权吗模式适用于Web服务端应用(有人参与)。授权码模式对比简化(implict)和用户名密码(username/password)模式更安全。
作者回复: client模式不是用username/password,而是clientid/secret,也就是说这不是代表用户,而是客户应用(client app)。
作者回复: app key/secret其实和oauth2里头的client id/secret类似,没有明确规范,公司可以根据场景自己定义,一般client id要保证不重复,secret随机字符串就可以
作者回复: 录视频也是个辛苦活,如果大家能有收获就会有喜跃感💪