我们期待在未来实现一个微服务架构。我们不希望API网关的权限非常笨重,并且限制获取、放置、发布等等。
我们希望集中存储和管理粒度应用程序权限,因此应用程序只需要获取它们,而不是管理它们。
我已经包括了一个草图的架构,我在我的头脑中,以及下面的逻辑流程。
我的问题
这种设计模式是否可以使用任何现有的身份验证/授权规范(如OAuth2 )来实现?如果没有,是否可以创建您自己的身份验证/授权模式以用于专用网络?

App生命周期
在上面的示例中,WebApp1公开了两个权限,CreatePost & DeletePost user1只有对CreatePost的权限。
用户进程流
发布于 2020-09-01 18:25:18
有趣的问题--以下是通过基于OAuth的设计模式实现目标的一些想法:
授权目标
想要的结束状态通常是给自己选择:
将令牌映射到权限
我喜欢这种做事的方式。实际上,它是一种基于声明的体系结构,您需要的授权信息不会仅仅来自令牌。
我的API授权后描述了一个可扩展的模式,它从在每个API中定义claims /主体对象开始。下面是一些示例代码,其中Authorizer类提供了对每个API请求的行为的概述。
网络应用程序注册中心
我会小心地创建组件,这些组件可能会承受沉重的负载,并成为整个软件平台的瓶颈--您需要这些组件吗?
索赔与微观索赔()
一个可以很好地工作的模式是设计两个级别的API。有趣的是,这两种方法都可以使用声明,你可以将授权责任放在任何你想要的地方--并给自己选择:
我的API平台体系结构文章探索了这个选项,在这个选项中,声明通过头在微服务之间传递。
访问令牌有效性
您通常可以通过遵循以下规则来简化代码,因为可能有多种原因导致令牌失效:
https://stackoverflow.com/questions/63691239
复制相似问题