加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 服务器 > 安全 > 正文

怎么实现微服务中的身份验证和授权

发布时间:2022-01-15 09:59:23 所属栏目:安全 来源:互联网
导读:转向微服务时,将得出结论,与单应体用程序相比,需要以不同的方式解决保护微服务的问题。 在设计解决方案时,会出现诸如我在哪里以及如何实现身份验证和授权?之类的问题。和我如何授权用户采取特定行动?可以弹出。在本文中,将为这些问题介绍一种解决方案。
    转向微服务时,将得出结论,与单应体用程序相比,需要以不同的方式解决保护微服务的问题。
 
   在设计解决方案时,会出现诸如"我在哪里以及如何实现身份验证和授权?"之类的问题。和"我如何授权用户采取特定行动?"可以弹出。在本文中,将为这些问题介绍一种解决方案。
 
   首先,将说明认证和授权之间的差异。其次,将引入OpenID Connect和OAuth2作为用于微服务架构的集中式身份验证和授权的解决方案。最后,将解释授权的两个实现选择。身份验证和授权之间有什么区别?
 
在谈论保护应用程序安全时,将弹出认证和授权一词。虽然这些术语可以互换使用,但它们在保护应用程序范围内代表了不同的目的。
 
在谈论身份验证时,这是验证他/她/所声称的实体的身份的过程。在谈论授权时,它是验证实体是否被授权访问特定信息或被允许执行某些动作的过程。关于总安全流程,这两个原则都适用,并且组合仍然可能使请求失败。在规则中,身份验证首先,授权第二。当用户通过身份验证但未经授权时,请求仍将失败。
 
在像微服务这样的分布式系统架构中,无法以传统方式实现身份验证和授权。使用单体架构方法,经常将签名会话存储在内存中或分布式会话存储中,以在单体应用程序实例之间共享会话。
 
由于微服务是单独的隔离的应用程序,因此无法共享不同应用程序的内存中存储。不建议集中和共享分布式会话存储。这在微服务之间建立了紧密的耦合,并为微服务之间的泄漏逻辑打开了大门。牢记微服务架构,每个微服务应独自负责其单个业务逻辑,无论是很小的逻辑还是有限的上下文。在这种情况下,身份验证是一个贯穿各领域的问题,不应成为微服务本身的一部分。
 
针对此问题的一种广泛使用的解决方案是实现单独的身份服务器。该服务负责托管集中式身份验证和授权。有多种解决方案,例如WSO2身份服务器(Java),IdentityServer4(.NET)和OAuth2orize(Node.js)。所有这些框架都通过使用OpenID Connect和OAuth2支持身份验证和授权。

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读