我有一个Asp.Net Core 2.0 WebApi,它要求对所有请求进行身份验证,并使用JWT令牌验证,如下所示:
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
{
options.Authority = this._configuration.GetValue<string>("Authority");
options.Audience = this._configuration.GetValue("ClientId");
});
...
app.UseAuthentication();
我还有两个客户端应用程序:Angular4 Web应用程序和Web Api。
所有三个应用程序都有自己的AAD App Registration =每个都有不同的ClientID,但都在同一个租户(权限)上。
是否可以设置Web Api应用程序,它可以针对多个AAD验证令牌(令牌可以由三个不同的AAD =三个不同的ClientID生成)?
我知道我可以使用'client_credentials'流程在客户端上生成令牌并使用该令牌进行Api调用,但我必须处理令牌刷新等等。所以,我只是想知道,如果有更简单的方法。
感谢。
答案 0 :(得分:0)
您无需关注不同的客户ID。无论在哪个客户端,当获取访问令牌来调用由AAD保护的Web api时,访问令牌中的audience
声明应该相同:您为API应用注册的App ID URI。 API方面应验证访问令牌中的受众声明是否与web api的App ID URI相匹配,它不关心哪个客户端发送访问请求。