[=10s asp net core 中间件完成了什么确切的令牌验证?
What exact token validation is done by Microsoft.Identity.Web’s aspnet core middleware?
我正在构建一个使用 AAD(稍后是 B2c)对用户进行身份验证的 aspenet 核心应用程序。
我了解必须验证 OAuth2 和 OpenID Connect JWT 令牌。很重要。
我正在查看此代码示例:
该示例使用此 Microsoft.Identity.Web 的中间件进行身份验证。
services.AddMicrosoftIdentityWebApiAuthentication(Configuration)
.EnableTokenAcquisitionToCallDownstreamApi()
.AddInMemoryTokenCaches();
以下哪些验证是由上述中间件完成的?
- 验证 JWT 的签名
- 验证不早于失效时间
- 验证随机数
是否有任何文档可以确认 Microsoft.Identity.Web 自动完成哪些确切验证以及我需要手动执行哪种类型的验证(我认为发行人声明是手动代码)
Microsoft.Identity.Web
- 主包。所有使用 Microsoft Identity Web 的应用都需要
Microsoft 建议您在使用 ASP.NET Core 开发 Web API 时使用 Microsoft.Identity.Web
NuGet 包。
它有很多依赖项,你可以从这里查看详细信息 Link
.NetCoreApp3.1
的依赖之一是 Microsoft.AspNetCore.Authentication.JwtBearer (>= 3.1.18)
JwtBearer 中间件,与 Web 应用程序中的 OpenID Connect 中间件一样,根据 TokenValidationParameters
的值验证令牌。根据需要解密令牌,提取声明,并验证签名。中间件然后通过检查此数据来验证令牌:
Audience: The token is targeted for the web API.
Sub: It was issued for an app that's allowed to call the web API.
Issuer: It was issued by a trusted security token service (STS).
Expiry: Its lifetime is in range.
Signature: It wasn't tampered with.
有关更多信息,您可以关注此 MS documention.
我正在构建一个使用 AAD(稍后是 B2c)对用户进行身份验证的 aspenet 核心应用程序。
我了解必须验证 OAuth2 和 OpenID Connect JWT 令牌。很重要。
我正在查看此代码示例:
该示例使用此 Microsoft.Identity.Web 的中间件进行身份验证。
services.AddMicrosoftIdentityWebApiAuthentication(Configuration)
.EnableTokenAcquisitionToCallDownstreamApi()
.AddInMemoryTokenCaches();
以下哪些验证是由上述中间件完成的?
- 验证 JWT 的签名
- 验证不早于失效时间
- 验证随机数
是否有任何文档可以确认 Microsoft.Identity.Web 自动完成哪些确切验证以及我需要手动执行哪种类型的验证(我认为发行人声明是手动代码)
Microsoft.Identity.Web
- 主包。所有使用 Microsoft Identity Web 的应用都需要
Microsoft 建议您在使用 ASP.NET Core 开发 Web API 时使用 Microsoft.Identity.Web
NuGet 包。
它有很多依赖项,你可以从这里查看详细信息 Link
.NetCoreApp3.1
的依赖之一是 Microsoft.AspNetCore.Authentication.JwtBearer (>= 3.1.18)
JwtBearer 中间件,与 Web 应用程序中的 OpenID Connect 中间件一样,根据 TokenValidationParameters
的值验证令牌。根据需要解密令牌,提取声明,并验证签名。中间件然后通过检查此数据来验证令牌:
Audience: The token is targeted for the web API.
Sub: It was issued for an app that's allowed to call the web API.
Issuer: It was issued by a trusted security token service (STS).
Expiry: Its lifetime is in range.
Signature: It wasn't tampered with.
有关更多信息,您可以关注此 MS documention.