前面在ASP.NET WEBAPI中集成了与两种OAUTH2模式,今天在调试Client Credentials Grant想到如下几点
- 建议TryGetBasicCredentials认证 validate client credentials should be stored securely (salted, hashed, iterated),参考PDF设计
- 增加token额外字段
- 增加scope授权字段
- 持久化Token
- 刷新Token后失效老的Token
- 自定义验证【重启IIS池Token失效,验证权限】
优化点
1.启用TryGetBasicCredentials认证:Basic Authentication传递clientId与clientSecret,服务端中的TryGetFormCredentials()改为TryGetBasicCredentials() 2.增加token额外字段:需要重写TokenEndpoint方法 ,一般无特殊要求,不建议加 3.参数中传soap字段,以空格分隔的权限列表,若不传递此参数,代表请求用户的默认权限 4.重写AccessTokenProvider中CreateAsync方法,生成Token值持久化相关信息到DB 5.重写AccessTokenProvider中ReceiveAsync方法,验证Token是否有效
服务实现
配置Startup
集成Autofac
启用不记名验证
服务端
Token生成与验证
有赞API文档
无意看到有赞的API文档:,大致分为三个部分。
1.基于OAUTH2授权【几种授权模式全实现】
2.基于签名的方式【HMAC】
3.各种语言的SDK
大致设计比较规范,后续时间再参考规范基于ASP.NET WEBAPI 集成优化OAUTH2与HMAC部分。