【问题标题】:How to validate JWT token against more than one Azure Active Directories (ClientIds)?如何针对多个 Azure Active Directory (ClientIds) 验证 JWT 令牌?
【发布时间】:2018-03-05 12:33:29
【问题描述】:

我有一个 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 app 和 Web Api。

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

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

我知道我可以使用“client_credentials”流程在客户端生成令牌并使用该令牌进行 Api 调用,但我必须处理令牌刷新等问题。所以,我只是想知道是否有更简单的方法.

谢谢。

【问题讨论】:

    标签: jwt azure-active-directory asp.net-core-2.0


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-15
      • 2020-11-19
      • 1970-01-01
      • 1970-01-01
      • 2016-12-02
      • 2017-06-21
      • 1970-01-01
      相关资源
      最近更新 更多