我们设计了一种工作流程,使第三方系统(1)能够使用我们的(2)系统而无需额外的身份验证,如下所示:
这里是描述:
第三方客户端应用程序(Web)要启动我们的应用程序。它向自己的后端请求令牌。
第三方后端会生成一个具有随机令牌值的JWT,该令牌与当前用户相关联
第三方后端通过特定的API将JWT发送到我们的系统
注册后,JWT将发送回第三方客户端应用程序(Web)
第三方应用通过JWT启动我们的客户端应用(网络)
我们的应用程序通过使用注册的JWT调用后端API
问题如下:
答案 0 :(得分:1)
IANA Token Claims registry应该是标准JWT声明的来源。如果您的列表未列出-可以是任何东西,但您可能希望通过使用其他命名空间来最大程度地减少潜在冲突。
UPD 似乎我误解了这个问题,而您是为经过第三方授权的用户提供API。我删除了现在似乎无关的oAuth部分
正如我在评论中所建议的那样,JWT带有一个签名,您的后端可以使用第三者的公共密钥来进行验证。这样,您就省去了几个额外的API调用来设置所有内容。
鉴于您的选择,流程如下:
issuer
,audience
其他必需的声明,并使用其私钥对其进行签名验证为part of the standard,因此大多数库将以最少的配置为您处理此问题。 只需了解已知的JWT / JWT验证问题并减轻您的负担即可。