我试图了解我的Owin托管的Web Api是否需要验证用于签署JWT令牌的证书。
我已使用IdentityServer设置了身份提供商。在"依赖方" -side,我有一个使用Owin托管的ASP.NET WebApi。在RP端,我使用UseOpenIdConnectAuthentication在Owin管道中安装OpenIdConnectAuthenticationMiddleware。
到目前为止工作的是什么:
我缺少的是验证用于签署包含身份令牌的JWT的证书的逻辑。
使用Fiddler,我已经看到OpenIdConnectAuthenticationMiddleware从身份服务器检索密钥(通过调用https://myidentityserver.example.com/core/.well-known/jwks HTTP / 1.1)
OpenIdConnectAuthenticationMiddleware是否对证书进行某种验证?或者我应该自己编写这段代码?
答案 0 :(得分:1)
您描述的流程依赖于验证证书是从提供有效SSL服务器证书的受TLS保护的端点(JWKs URL)中提取的事实。此SSL服务器证书可确保您与正确的OpenID Connect提供商进行通信。
答案 1 :(得分:0)
找到一些解释here
为了验证引用令牌,我们提供了一个称为访问令牌验证端点的简单端点。该端点例如是我们的访问令牌验证中间件使用它,它足够聪明,可以区分自包含(JWT)和引用令牌,并在本地或使用端点进行验证。所有这一切对API都是完全透明的。
您只需指定权限(IdentityServer的基本URL),中间件将使用它来提取配置(密钥,颁发者名称等)并构建到验证端点的URL