MST

星途 面试题库

面试题:微服务架构中常见的认证方式及其在安全性方面的特点

请阐述微服务架构下至少三种常见的认证方式,如JWT、OAuth等,并分析每种认证方式在保障微服务安全性方面的优点与潜在风险。
15.5万 热度难度
后端开发微服务架构

知识考点

AI 面试

面试题答案

一键面试

JWT(JSON Web Token)

  • 优点
    • 无状态:微服务无需在服务端存储用户状态信息,减轻服务器压力,易于实现服务的横向扩展。
    • 自包含:令牌中包含用户相关信息,如用户身份、权限等,服务无需额外查询数据库即可验证用户权限。
    • 跨语言:以JSON格式存在,方便不同语言开发的微服务进行解析和验证。
  • 潜在风险
    • 令牌泄露:如果JWT令牌被窃取,攻击者可以直接使用该令牌访问受保护资源,因为服务端不存储状态,难以在令牌被盗用后立即失效它。
    • 数据篡改风险:虽然JWT有签名验证机制,但如果签名密钥泄露,攻击者可以篡改令牌内容并重新签名,导致非法访问。

OAuth(开放授权)

  • 优点
    • 第三方授权:允许用户授权第三方应用访问其在另一服务提供商上的资源,而无需将用户名和密码提供给第三方应用,提高安全性。
    • 灵活性:有OAuth 1.0、OAuth 2.0等不同版本,适用于不同场景,如OAuth 2.0广泛应用于Web应用、移动应用的授权场景。
    • 多服务集成:方便实现多个微服务之间的授权与资源共享,有利于构建复杂的微服务生态。
  • 潜在风险
    • 复杂的流程:涉及多个角色(资源拥有者、客户端、授权服务器、资源服务器)和步骤,配置和管理较为复杂,增加了出错风险。
    • 授权服务器单点故障:如果授权服务器出现故障,将影响整个授权流程,导致用户无法获取授权,微服务无法验证授权。

基于Token的认证(如简单的自定义Token)

  • 优点
    • 简单易用:开发者可以根据业务需求自定义Token的生成和验证逻辑,易于理解和实现。
    • 轻量级:不需要像OAuth那样复杂的流程和依赖,适用于一些对安全性要求不是极高、业务相对简单的微服务场景。
  • 潜在风险
    • 缺乏标准:由于是自定义,没有统一标准,不同微服务之间可能难以兼容,不利于微服务的集成和扩展。
    • 安全漏洞:如果自定义的生成和验证逻辑存在缺陷,如使用弱加密算法、Token生成规则易被破解等,容易导致安全漏洞。

基于证书的认证

  • 优点
    • 高安全性:证书基于公钥基础设施(PKI),通过数字签名和加密技术保证通信双方的身份真实性和数据完整性,很难被伪造或篡改。
    • 双向认证:可以实现客户端和服务端之间的双向认证,不仅服务端验证客户端,客户端也可验证服务端身份,增强安全性。
  • 潜在风险
    • 证书管理复杂:需要维护证书颁发机构(CA),证书的生成、分发、更新和撤销都需要妥善管理,增加了运维成本。
    • 性能开销:证书的验证和加密解密操作需要一定的计算资源,可能对性能敏感的微服务产生影响。