oauth2-oidc-sdk ParseException:"The none algorithm is not accepted"

oauth2-oidc-sdk ParseException: "The none algorithm is not accepted"

显然我不太精通 OAuth2 OpenID 机制 - 只知道最基本的知识。

我已成功使用 spring-boot-starter-oauth2-client 构建我的 OAuth2 客户端。我正在与之交谈的服务器有一个描述服务的众所周知的端点。他们最近更改了此端点实现,以在返回的结果中包含各种信息,例如支持的算法。

对于某些特定字段,例如“id_token_signing_alg_values_supported”,还有一个额外的“none”算法。

当我将 oauth2 配置指向具有这些“none”算法条目的新 .well-known 端点的描述时,我从 oauth2-oidc-sdk 库代码中得到 ParseException:

Caused by: com.nimbusds.oauth2.sdk.ParseException: The none algorithm is not accepted
    at com.nimbusds.oauth2.sdk.as.AuthorizationServerMetadata.parse(AuthorizationServerMetadata.java:1560) ~[oauth2-oidc-sdk-7.1.1.jar:7.1.1]
    at com.nimbusds.openid.connect.sdk.op.OIDCProviderMetadata.parse(OIDCProviderMetadata.java:1190) ~[oauth2-oidc-sdk-7.1.1.jar:7.1.1]
...

我知道客户端代码可能对服务器接受某些条目的“none”算法感到生气。我想我正在与之交谈的服务器不应该公开客户端向其发送未加密内容的方式......但是 - 如果是这样 - 我只是一个客户端 - 我能不能忘记这一点并忽略这个权限服务器让我使用这个“none”算法?有没有办法覆盖这种行为?我查看了 oauth2-oidc-sdk 代码,但找不到任何方法。

谢谢。

[edit:] 具体来说,oauth2-oidc-client 不接受以下知名配置条目中的“none”算法值:

none 算法是一个非常糟糕的主意,因为使用这种算法,任何人都可以创建自己的令牌或修改现有令牌,并且令牌的接收者不能信任它。此外,还有许多与 none.

相关的安全漏洞

喜欢这个: