身份验证和精细授权

Posted

技术标签:

【中文标题】身份验证和精细授权【英文标题】:Authentication & granular authorization 【发布时间】:2021-07-27 17:15:06 【问题描述】:

我们正在构建一个应用程序,其中内容(即数据和文件)将需要用户访问角色和策略工作方式的细粒度访问权限。我们通过一个身份提供者使用 oAuth2 和 OpenID 连接。

我的问题是关于利用此类精细授权可用的平台或 AWS 云服务的可能性。我不想在我的应用程序中构建自定义授权矩阵,而是更喜欢使用服务和用户角色/策略的 API 来执行进一步的操作。

在使用 OpenID connect 的范围时,它们更适合定义 API 访问级别。

【问题讨论】:

据我所知,AWS 没有提供细粒度授权的服务。但也有其他公司这样做。例如:Auth0 提供 Sandcastle(目前为开发者预览版):learn.sandcastle.cloud。 【参考方案1】:

我将从您的要求开始,例如用户只能看到自己的数据。细粒度授权通常通过令牌中的声明进行管理,这在需要时可以是高度动态的。

有关详细信息,请参阅此Claims Best Practices 文章。它还提到了一些专家授权系统。

云解决方案有时可能更关注基础设施安全,而 OAuth 处理应用程序和用户级别的安全。

话虽如此,但像 AWS 一样将资源策略定义为 JSON 文档可能是一种有用的声明性技术来补充声明。然后,在运行时,您可以将来自令牌(例如角色)的声明与资源策略进行比较,以查看是否应授予用户访问权限。

【讨论】:

我想我在这里没有以正确的方式提及角色和政策。同意,在 AWS,它们用于资源访问,我在应用程序级别寻找类似的机制。基本上,应用程序中会有不同的角色,每个角色都可以访问特定类型的文档和网页。这可以使用自定义表结构来实现,以维护细粒度和灵活的授权。在这里,我想将其作为服务或可定制的平台而不是开发。您给了我有关索赔的良好指示,让我详细阅读并更新您。

以上是关于身份验证和精细授权的主要内容,如果未能解决你的问题,请参考以下文章

WCF 用户身份验证和授权

使用机器对机器和基于用户的身份验证使用 JWT 进行嵌套身份验证和授权是一回事吗?

EJB 身份验证和授权

SQL Server第2部分:简化身份验证和授权机制

是否使用 google/facebook/twitter 身份验证登录?还是授权?

您正在使用哪些身份验证和授权方案 - 为啥?