UseJwtBearerAuthentication签名密钥

史蒂夫

我正在尝试使用JwtBearerMiddleware在我的AspNetCore MVC应用程序(仅Web API)中实现JWT承载身份验证,但收到401带有标头响应:

WWW-Authenticate: Bearer error="invalid_token", error_description="The signature key was not found"

Startup.cs中的相关代码如下所示:

app.UseJwtBearerAuthentication(new JwtBearerOptions
{
    Authority = "https://example.okta.com",
    Audience = "myClientId"
});

使用授权URL,我希望中间件从中查询我的身份提供者元数据,https://example.okta.com/.well-known/openid-configuration以从中获取jwks_uri,然后从中获取签名密钥https://example.okta.com/oauth2/v1/keys我不认为这正在发生。我需要怎么做才能使其找到并使用签名密钥?谢谢

史蒂夫

在遵循了引用并深入研究了AspNet Security存储库(特别是JwtBearerHandlerJwtBearerMiddleware类)之后,我进入了Azure扩展存储库中Microsoft.IdentityModel命名空间(首先是类,然后是类(方法),然后是方法),最后我发现JwtBearerMiddleware确实确实从元数据中jwks_uri获取了密钥ewConfigurationManager<T>OpenIdConnectConfigurationRetrieverGetAsyncJsonWebKeySet.GetSigningKeys()

那么为什么它不起作用呢?什么我应该早检查的是,孩子在承载JWT的头其实比赛并没有任何的的孩子从的jwks_uri,因此它没有被发现。这是我作为承载令牌发送的access_code。另一方面,id_token确实有一个匹配孩子,因此使用它确实有效!

从那以后我读到:

OIDC访问令牌仅适用于Okta / oauth2 / v1 / userinfo端点,因此应被应用程序视为不透明。该应用程序不需要对其进行验证,因为它不应与其他资源服务器一起使用。它的格式和用于签名的密钥如有更改,恕不另行通知。来源

...所以我不能使用访问令牌。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

UseJwtBearerAuthentication签名密钥

来自分类Dev

自签名密钥证书

来自分类Dev

通过mokutil签名密钥

来自分类Dev

如何修复签名密钥?

来自分类Dev

UseJwtBearerAuthentication失败,IDX10504:无法验证签名,令牌没有签名

来自分类Dev

UseJwtBearerAuthentication失败,IDX10504:无法验证签名,令牌没有签名

来自分类Dev

签名时“此签名算法的密钥太短”

来自分类Dev

签名时“此签名算法的密钥太短”

来自分类Dev

用旧的过期密钥签名新密钥

来自分类Dev

导入签名您的密钥的公共密钥

来自分类Dev

导入存储库签名密钥

来自分类Dev

Azure AD签名密钥过渡

来自分类Dev

如何处理丢失的OpenPGP签名密钥?

来自分类Dev

帐户密钥与共享访问签名

来自分类Dev

java用bouncycastle签名公共pgp密钥

来自分类Dev

gpg:签名失败:密钥不可用

来自分类Dev

获取GPG公钥的密钥签名/指纹

来自分类Dev

GCP存储-未提供签名密钥

来自分类Dev

帐户密钥与共享访问签名

来自分类Dev

gpg keyserver在我的密钥上重复签名

来自分类Dev

使用特定的密钥进行加密和签名

来自分类Dev

如何生成用于Authenticode签名的密钥?

来自分类Dev

从Worklight本机API获取公共签名密钥

来自分类Dev

SSH代理承认无法使用密钥签名

来自分类Dev

Python仅使用公共密钥解密签名

来自分类Dev

GnuPG使用哪些密钥进行签名验证?

来自分类Dev

在KMail中选择PGP签名密钥

来自分类Dev

生成签名的APK“密钥库被篡改”

来自分类Dev

Android 密钥库与签名文件?