首页 > 解决方案 > 多种访问模式的授权

问题描述

我有一个使用 Graphene 和 Flask 构建的 GraphQL API。该 API 目前仅用作网站的后端,包含搜索、创建订单等操作。有些操作是完全公开的,有些仅限于登录用户。目前,我使用 JWT 令牌进行用户身份验证。我想加入另一个级别的授权,那就是考虑到请求的来源。我见过的所有例子都只使用一个维度——用户。要么有一个登录用户(可能有一些角色/范围),要么没有。这是我目前实施的。但是,我想加入另一个维度——起源。几个例子:

我能想到几种方法,但我不太喜欢其中任何一种:

如何解决此类问题的事实标准是什么?

标签: authorizationgraphql

解决方案


使用 API 网关——这就是它们的部分用途。例如,查看 Kong 或 Apigee。还有很多。

对于基本的访问控制,例如匿名与认证或限制,他们应该能够处理。对于其他授权方案,请查看基于属性的访问控制 ( )。编写的策略来实现外部化授权的方法。这将让您处理任何类型的授权。我工作的公司Axiomatics专门从事 API 授权。我们使用 ALFA 并与 Kong 之类的工具集成(他们进行拦截)。


推荐阅读