将自定义声明添加到外部oAuth提供程序

thigvfpy  于 2023-06-05  发布在  其他
关注(0)|答案(1)|浏览(148)

目前,我们正在使用外部oAuth提供程序进行身份验证,它是一个SSO,因此用户可以使用相同的令牌登录到我们的postrtal和组织内的其他postrtal。问题是我们的postrtal有一些特定的声明,如userId等(特定于我们的应用程序)。我们希望这些信息也包含在令牌中,因为我们的oAuth证明程序不允许。有没有其他干净的方法来解决这个问题?
一些解决方案是

  • API端,我们可以检查sub,并通过每次请求进入我们的端点时阅读DB来Map到我们自己的ID
  • 缓存令牌并获取值

caceh不是一个好主意,每次从DB阅读也不是一个好主意。有什么建议可以解决这个问题吗?

z9smfwbn

z9smfwbn1#

授权服务器应该能够在令牌发行时查找自定义声明,例如通过调用您提供的API端点。如果你不能做到这一点,我会质疑你选择的授权服务器。
另一种方法是验证JWT,读取其声明,然后在生成ClaimsPrincipal之前查找额外的声明,然后缓存额外的声明。这是一个不太安全的设计,所以只有在你必须使用它。举个例子,看看我的代码。

相关问题