在 JWT 令牌中传递租户 ID 是一种好做法吗?
Is Passing Tenant ID in JWT Token a good practice?
我正在构建一个多租户 Web 应用程序,我将为所有租户提供 1 个应用程序和 1 个数据库。
我一直在阅读关于为我的 REST requests/responses 将租户 ID 从服务器传递到客户端的不同技术,反之亦然,似乎更适合我的是传递 tennat id JWT 令牌,因为我不会为我的租户设置不同的域,并且在 X-TENANT-ID 中传递它似乎不安全,因为任何人都可以更改它(任何关于此的信息将不胜感激)。
那么,在 JWT 令牌中传递租户 ID 是一种好的做法吗?除了另一种选择(在 X-TENANT-ID header 中传递租户 ID)还有更好的方法吗?
我将其作为声明放入 JWT 令牌中。
您也可以在 URL 上传递它。如果您查看 Azure DevOps REST API,其中包含 /{organisation}/。然后您验证针对 URL.
的声明
我倾向于两者兼顾。将它放在 URL 中可能有助于日志记录,如果允许,还可以进行匿名访问。
我正在使用 Auth0 生成令牌,老实说,支持多租户应用程序的选项很糟糕,而且无法扩展。支持一个用户访问具有不同权限的多个租户是一个挑战。如果我坚持使用 Auth0,我的计划是为每个客户端生成唯一的角色并将用户分配给它们,然后在 JWT 令牌中包含权限和 tenantid。我将为每个租户发放一个 JWT。
我正在构建一个多租户 Web 应用程序,我将为所有租户提供 1 个应用程序和 1 个数据库。
我一直在阅读关于为我的 REST requests/responses 将租户 ID 从服务器传递到客户端的不同技术,反之亦然,似乎更适合我的是传递 tennat id JWT 令牌,因为我不会为我的租户设置不同的域,并且在 X-TENANT-ID 中传递它似乎不安全,因为任何人都可以更改它(任何关于此的信息将不胜感激)。
那么,在 JWT 令牌中传递租户 ID 是一种好的做法吗?除了另一种选择(在 X-TENANT-ID header 中传递租户 ID)还有更好的方法吗?
我将其作为声明放入 JWT 令牌中。
您也可以在 URL 上传递它。如果您查看 Azure DevOps REST API,其中包含 /{organisation}/。然后您验证针对 URL.
的声明我倾向于两者兼顾。将它放在 URL 中可能有助于日志记录,如果允许,还可以进行匿名访问。
我正在使用 Auth0 生成令牌,老实说,支持多租户应用程序的选项很糟糕,而且无法扩展。支持一个用户访问具有不同权限的多个租户是一个挑战。如果我坚持使用 Auth0,我的计划是为每个客户端生成唯一的角色并将用户分配给它们,然后在 JWT 令牌中包含权限和 tenantid。我将为每个租户发放一个 JWT。