2017-09-24 63 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匹配,它不關心哪個客戶端發送訪問請求。

相關問題