2017-09-24 66 views
0

我有一个Asp.Net核2.0的WebAPI,这就要求所有的请求进行认证并使用JWT令牌验证这样的:如何验证针对多个Azure Active Directory(ClientIds)的JWT令牌?

services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddJwtBearer(options => { options.Authority = this._configuration.GetValue<string>("Authority"); options.Audience = this._configuration.GetValue("ClientId"); }); ... app.UseAuthentication();

我也有两个客户端应用程序:Angular4 Web应用程序和网络API 。

所有三个应用程序都有自己的AAD应用程序注册=每个应用程序都有不同的ClientID,但都在同一个租户(授权)上。

是否有可能以这种方式设置Web Api应用程序,它会针对多个AAD验证令牌(该令牌可以由三个不同的AAD =三个不同的ClientID生成)?

我知道我可以在客户端使用'client_credentials'流程生成令牌并使用该令牌来进行Api调用,但我必须处理令牌刷新等。所以,我只是想知道,如果有更容易的办法。

谢谢。

回答

0

您不需要关注不同的客户端ID。无论在哪个客户端,当获取访问令牌以调用由AAD保护的您的web api时,访问令牌中的audience声明应该是相同的:您为API应用注册的App ID URI。 API端应验证访问令牌中的受众声明与Web API的App ID URI匹配,它不关心哪个客户端发送访问请求。

相关问题