【发布时间】:2017-04-20 00:56:41
【问题描述】:
我正在尝试构建一个纯 JavaScript REST 客户端应用程序,该应用程序必须支持从 REST 服务器匿名检索信息,该服务器已经支持 JWT 用于外部应用程序的身份验证/授权。该服务器已被支持多租户的其他客户端应用程序使用。实际上在 JWT 中嵌入了租户信息。
除了应用程序需要支持想要将某些资源标记(或选择)为收藏夹的用户(人类)之外,因此需要一种机制来创建用户/角色并为用户提供进一步的身份验证/授权。但是这些用户不能被隔离到单个租户,他们会希望使用跨租户资源。
所以,现在我发现我需要使用 JWT 值来进行匿名数据检索,这当然应该与租户无关。这意味着我必须创建一个具有特殊角色的用户,该角色只具有只读资源的权限,除了用户创建的权限(当客户端注册时),这应该与租户无关。并且当用户登录到系统时,JWT 应该被替换为具有再次与租户无关的用户凭据的 JWT。我不确定这是否完全正确,那么我们应该如何处理这种情况呢?
我的另一个担忧是,我们为人类客户端(与租户无关)和应用程序客户端(租户感知)提供相同的支持身份验证和凭据存储的后端),所以为了处理这里的权限和租户限制,逻辑有点复杂。这可能只是我的印象,但我觉得在逻辑和/或数据存储中应该将应用程序用户和人类用户分开。
但我不完全确定,我想知道你们中的一些人是否有以前的经验或者对这个话题有一些想法?
【问题讨论】:
标签: authentication authorization jwt multi-tenant