如何找到构建api权限的好方法

时间:2017-08-02 14:02:14

标签: api permissions

问题

我正在尝试找到一种很好的方法来构建我的api网关的权限,以便从外部软件访问。

上下文

在我目前的公司,我们有一个API网关。

当用户登录时,我们将所有用户权限发送给前端服务,并为当前用户生成所有菜单和屏幕以及允许访问的内容。

示例:

{
 user: joe,
 permissions: [
  'fancyMenu',
  'anotherFancyMenu'
 ]
}

这种方法效果很好,但是现在我们需要将API暴露给其他客户端,他们将直接访问我们的端点。

问题

因此,以前访问fancyStuff菜单的用户需要访问端点x,y,z才能完成操作。每个端点都必须检查记录的用户是否具有fancyStuff权限。 现在我们需要将API公开给其他软件。

在此示例中,权限fancyMenu需要访问这3个不同的端点才能完成操作。得到一些东西和花哨的硬币来创造一个新的奇特的操作。

fancyMenu -> POST /fancy
fancyMenu -> GET /coins/fancy
fancyMenu -> GET /stuff

解决方案

话虽如此,我们在api网关上创建了一个新类,并将所有菜单权限映射到所需的端点。

一个例子是我们的菜单fancyMenu现在有一个列出了所有功能所需的所有端点,我们在所有端点上检查这个新类。

我不确定这是否是解决问题的正确方法,但我找不到更好的方法。

0 个答案:

没有答案