如何在微服务中设计用户权限策略?

在当今的软件工程领域,微服务架构占主导地位。虽然这种基础设施方法有很多优点,但它已经形成了一个非常复杂的管理网络。IBM 确认了这一点,共享该应用程序包含“数十个、数百甚至数千个不同的、可独立部署和可更新的服务”。除保持服务可靠性外,管理员还必须有效地管理数百个甚至数千个用户的权限。

这就是说,在用户访问特定服务之前,后端必须对其进行身份验证和授权。关键是,用户实际上是以自己的身份登录的,并且在此之后拥有执行特定操作所需的权限。决定权限、基于角色的访问控制(role-based access control,RBAC)以及其他控制已经变得非常棘手。另外,你管理服务相关权限的粒度是可变的。

为保证长期安全性、服务可用性和微服务可扩展性,设计清晰的用户权限策略是必不可少的。你无法使用“一扇摇摆的门”来保护你的 API 端点。在会话过程中控制用户看到和执行的操作是应用程序管理的基础。

评估标准

本文介绍了微服务中一些有用的用户权限策略,并对其进行了分解。这样做可以帮助你了解哪些策略最适合你的组织的服务。对于每个权限策略,我们将基于以下要点评估:

  • 易用性:这种方法对用户的友好程度如何?每天使用基本功能有多简单?

  • 可维护性:管理员如何能够在需要扩展或更改之后,快速地更改权限、组和结构?

  • 稳定性:解决方案对于非预期故障的弹性有多大,以及其背后的 API 或机制是否能够长期有效地发挥作用?

这些标准构成了衡量策略有效性的强大基线。

权限策略简介

对你的权限进行管理时,有两种主要途径,每一种都有其细微差别。首先,你可以选择自己管理所有的权限,换句话说,你不需要依靠集中的第三方工具。这就是所谓的细粒度方法。采用这种方法的团队通常想要对他们的部署有不受约束的控制。

无需深入研究策略(稍后将详细介绍),可以根据用户和应用程序之间的关系、会话设计、服务器安排和 API 依赖关系等因素选择许多子方法。

相反,还有一种集中式服务的方法。一般情况下,这取决于对外部工具的集成和第三方服务的集成,这些服务在一定程度上保留了你的后端访问的权限。这样,你就可以使用统一的界面(包括命令行界面)来管理权限和角色。通常,对更改实际服务代码的依赖较少;你的重点是配置。

每一个策略都各有利弊。用例也随基础设施的不同而不同。在这种情况下,让我们深入研究。

策略 1:管理自己的权限

免责声明

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值