[英]Are the authentication tokens validated for every request by the ASP.NET Core Web API?
我的 ASP.NET Core Web API 中有以下配置:
// Adds Microsoft Identity platform (AAD v2.0) support to protect this Api
services.AddMicrosoftIdentityWebApiAuthentication(configuration);
services.AddControllers(options =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.RequireClaim("email")
.Build();
options.Filters.Add(new AuthorizeFilter(policy));
});
我有一個 Angular 客戶端應用程序,它隨每個請求發送AuthToken
。 我不認為 Web API 應該為每個請求驗證AuthToken
,因為這會影響性能,因為它可能會聯系 Microsoft 驗證端點。
ASP.NET Core Web API 是否為每個請求驗證身份驗證令牌?
是的,每個請求都會驗證令牌。 但是沒有“Microsoft validate endpoint”,它在大多數情況下完全在內存中進行驗證。
運行時實際發生的情況:
稍后收到請求:
如果我沒記錯的話,默認情況下元數據會在內存中緩存 24 小時。 它會在需要時自動刷新它。
簡而言之,大多數時候根本沒有對 Microsoft 端點的請求。 您的應用僅使用一些 CPU 時間來驗證內存中的令牌。 您的數據庫查詢很可能會完全抵消令牌驗證的開銷。
應在對敏感端點的每個請求上驗證身份驗證令牌,以確保訪問端點的用戶有權訪問它。 對性能的影響應該可以忽略不計。 如果未驗證令牌,則任何用戶都可以使用欺詐性令牌發出請求,並且您的 API 仍會為請求提供服務,從而允許未經身份驗證的用戶訪問端點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.