微服务常见的认证方案

作者: 一觉睡到丶小时候 | 来源:发表于2019-11-01 13:37 被阅读0次

    分布式Session

    传统的单体应用的session,在Spring cloud微服务架构下,可以采用分布式session机制,可以将用户的认证信息存储在共享存储(如redis)中,用户会话作为key实现简单的分布式哈希映射,当用户访问微服务时,用户数据可以从共享存储中获取。Spring Session对分布式Session提供了支持,也与Spring Boot/Cloud无缝集成。

    API Tokens

    随着 Restful API微服务的兴起,基于 Token 的认证现在已经相当普遍了。

    Token一般会包含用户的相关信息,其它微服务可以从Token里提取出用户、权限等信息完成鉴权。

    基于Token认证的典型流程:


    图片.png
    1. 用户使用包含用户名和密码的credential从客户端发起资源请求。
    2. 后端接受请求,通过授权中心,生产有效token字符串,返回给客户端。
    3. 客户端获得token后,再次发出资源请求。
    4. 后端接受带token的请求,通过授权中心,获取相关资源,返回给客户端。

    优点:

    • 服务端无状态:服务端不需要存储Session,因为Token已携带用户的相关信息
    • 性能好:校验Token不需要访问远程服务或数据库
    • 支持移动端
    • 支持跨程序、跨域调用

    缺点:

    • 每次用户请求需要携带有效token,与Auth服务进行交互验证
    • Auth服务可能需要处理大量的生产token的操作,可能存在性能问题

    基于Token的认证方案,业界推荐使用 JSON Web Tokens(JWT),它足够简单且支持程度也比较好

    相关文章

      网友评论

        本文标题:微服务常见的认证方案

        本文链接:https://www.haomeiwen.com/subject/mtmfbctx.html