使用 fusion auth JWT populate lambda 是否可以将租户 ID 添加为声明?
Using the fusion auth JWT populate lambda is it possible to add the tenant id as a claim?
我们正在使用融合身份验证在我们的几个应用程序登录时生成 JWT 令牌。这些令牌然后用于访问我们的几个 API。我们 API 需要确定用户属于哪个租户。如果这可以使用 JWT 令牌来完成,那就太好了。默认情况下,fusion auth生成的token包含aud
header中的application id和sub
header中的user id,但不包含tenant id。
]
我们确实有其他方法来识别用户所属的租户,到目前为止一直在为我们工作,但它总是感觉有点变通,并增加了请求的开销。
我们成功地使用 JWT lambda populate 为用户添加自定义声明,我认为这是添加租户 ID 的方法,但它不适用于 populate
方法:
例如:
// It would be great if the tenant context was passed as an argument to the populate method
function populate(jwt, user, registration, tenant) {
// Add the tenant id claim
jwt.tenantId = tenant.id;
// Add other claims....
}
解决方法是将租户 ID 添加到用户自定义数据中,然后我们就可以在 lambda 中访问这些数据,但是我相信您会同意这有点笨拙。
目前有什么方法可以通过融合身份验证来完成吗?或者它是否需要一些工作,如果需要,我可以将其作为功能请求提出?
再次感谢您的出色工作和一如既往的支持
tenantId
位于传递到 lambda 的用户对象上。您可以像这样将其移动到 JWT:
function populate(jwt, user, registration) {
jwt.tenantId = user.tenantId;
}
API 文档中似乎缺少此内容。我已经更新了它,它应该很快就会可用。
编辑: 该字段现在记录在 API 文档中的用户对象上:https://fusionauth.io/docs/v1/tech/apis/users
此外,如果您想成为超级 JWT-y,可以将声明缩短为 tid
或其他内容。 ;)
我们正在使用融合身份验证在我们的几个应用程序登录时生成 JWT 令牌。这些令牌然后用于访问我们的几个 API。我们 API 需要确定用户属于哪个租户。如果这可以使用 JWT 令牌来完成,那就太好了。默认情况下,fusion auth生成的token包含aud
header中的application id和sub
header中的user id,但不包含tenant id。
我们确实有其他方法来识别用户所属的租户,到目前为止一直在为我们工作,但它总是感觉有点变通,并增加了请求的开销。
我们成功地使用 JWT lambda populate 为用户添加自定义声明,我认为这是添加租户 ID 的方法,但它不适用于 populate
方法:
例如:
// It would be great if the tenant context was passed as an argument to the populate method
function populate(jwt, user, registration, tenant) {
// Add the tenant id claim
jwt.tenantId = tenant.id;
// Add other claims....
}
解决方法是将租户 ID 添加到用户自定义数据中,然后我们就可以在 lambda 中访问这些数据,但是我相信您会同意这有点笨拙。
目前有什么方法可以通过融合身份验证来完成吗?或者它是否需要一些工作,如果需要,我可以将其作为功能请求提出?
再次感谢您的出色工作和一如既往的支持
tenantId
位于传递到 lambda 的用户对象上。您可以像这样将其移动到 JWT:
function populate(jwt, user, registration) {
jwt.tenantId = user.tenantId;
}
API 文档中似乎缺少此内容。我已经更新了它,它应该很快就会可用。
编辑: 该字段现在记录在 API 文档中的用户对象上:https://fusionauth.io/docs/v1/tech/apis/users
此外,如果您想成为超级 JWT-y,可以将声明缩短为 tid
或其他内容。 ;)