微服务 安全认证与鉴权
时间: 2020-12-11 15:40:40
参考:
微服务 安全认证与鉴权#
单点登录#
对于多个服务,登录一次之后就可以访问多个服务中的任意一个服务。
缺点:每个服务都需要和认证服务器交互。会产生过多的流量和增加延迟。
分布式Session#
对于多个服务,用户认证信息存储在共享存储中,每个服务可以从共享存储中获取用户信息。
客户端Token#
解决方案之一 JSON Web Token。 用户登录之后,服务器把用户信息(token)发送给客户端,之后每次请求服务的时候带上 token。服务端从token中取出用户信息。
OAuth2.0#
- 客户端使用用户信息和回调地址请求授权服务器用于获取授权码,一般会进入到授权服务器的授权页面。
- 用户选择授权,授权服务器带着授权码回调客户端额回调地址。
- 客户端的服务器收到回调信息之后使用授权码从授权服务器获取token,之后客户端每次请求资源的时候带上token。
微信小程序和公众号授权流程#
- 第三方平台方获取预授权码(pre_auth_code)。
-
引入用户进入授权页。
- 方式一 授权注册页面扫码授权。
- 方式二 点击移动端链接快速授权。
-
用户确认并同意登录授权给第三方平台方。
- 授权后回调 URI,得到授权码(authorization_code)和过期时间。
- 利用授权码调用公众号或小程序的相关 API。
安全密钥 Secret#
安全密钥加IP白名单。配置安全密钥可以访问的资源,每次调用时验证安全密钥是否有对应的权限。