Authentication 一个用于多个服务的JWT令牌

Authentication 一个用于多个服务的JWT令牌,authentication,jwt,asp.net-core-2.0,asp.net-core-webapi,authorize,Authentication,Jwt,Asp.net Core 2.0,Asp.net Core Webapi,Authorize,我在ASP.NETCore中面临JWT身份验证的问题。场景如下所示: 我有一个ASP.NET核心Web API,我们称之为“API a”。为提供正确登录/密码的用户生成JWT令牌是合理的,然后生成令牌 我有第二个ASP.NET核心Web Api,叫做“APIB”,它从数据库返回一些数据。我希望能够使用“API A”生成的JWT令牌来授权从“API B”访问数据 是否可以通过使用JwtBarear身份验证来实现它 谢谢你的提示 是的,您可以为多个服务上的身份验证生成JWT令牌,您需要将此令牌保

我在ASP.NETCore中面临JWT身份验证的问题。场景如下所示:

  • 我有一个ASP.NET核心Web API,我们称之为“API a”。为提供正确登录/密码的用户生成JWT令牌是合理的,然后生成令牌
  • 我有第二个ASP.NET核心Web Api,叫做“APIB”,它从数据库返回一些数据。我希望能够使用“API A”生成的JWT令牌来授权从“API B”访问数据
是否可以通过使用JwtBarear身份验证来实现它


谢谢你的提示

是的,您可以为多个服务上的身份验证生成JWT令牌,您需要将此令牌保存在数据库->表中,该表包含身份验证详细信息(用户id、设备、身份验证令牌等),获取并重用同一令牌对用户进行身份验证,直到该令牌未过期

如果已过期,则重新生成并更新表中的令牌

是否可以通过使用JwtBarear身份验证来实现它

这甚至是JWT代币的预期用途。您可以使用令牌向信任身份提供者A的任何服务(B、C、D)进行身份验证


每个服务都必须验证JWT令牌(过期、签名等),即使不将令牌存储在任何数据库中,前提是JWT令牌包含确保身份和有效性的所有必要信息

你问题的标题提到了许多服务,但在你的问题中,你只提到了两项


请注意,JWT代币通常有一个受众声明(
aud
),表明代币的发行目的是什么服务。验证令牌时,请确保
aud
声明包含您服务的标识符。

是的,我只提到了2个服务,但我想如果我可以管理两个,我也可以管理三个或更多。最后,我解决了我的问题,解决方案是在两侧正确设置受众和发行者项目。感谢每一位回复者!