跳转至

微服务 安全认证与鉴权

时间: 2020-12-11 15:40:40

参考:

  1. 微服务架构下的安全认证与鉴权

微服务 安全认证与鉴权#

单点登录#

对于多个服务,登录一次之后就可以访问多个服务中的任意一个服务。

缺点:每个服务都需要和认证服务器交互。会产生过多的流量和增加延迟。

分布式Session#

对于多个服务,用户认证信息存储在共享存储中,每个服务可以从共享存储中获取用户信息。

客户端Token#

解决方案之一 JSON Web Token。 用户登录之后,服务器把用户信息(token)发送给客户端,之后每次请求服务的时候带上 token。服务端从token中取出用户信息。

参考:

OAuth2.0#

  1. 客户端使用用户信息和回调地址请求授权服务器用于获取授权码,一般会进入到授权服务器的授权页面。
  2. 用户选择授权,授权服务器带着授权码回调客户端额回调地址。
  3. 客户端的服务器收到回调信息之后使用授权码从授权服务器获取token,之后客户端每次请求资源的时候带上token。

微信小程序和公众号授权流程#

微信小程序和公众号授权流程

  1. 第三方平台方获取预授权码(pre_auth_code)。
  2. 引入用户进入授权页。

    • 方式一 授权注册页面扫码授权。
    • 方式二 点击移动端链接快速授权。
  3. 用户确认并同意登录授权给第三方平台方。

  4. 授权后回调 URI,得到授权码(authorization_code)和过期时间。
  5. 利用授权码调用公众号或小程序的相关 API。

安全密钥 Secret#

安全密钥加IP白名单。配置安全密钥可以访问的资源,每次调用时验证安全密钥是否有对应的权限。