【发布时间】:2021-02-27 18:43:33
【问题描述】:
显然我并不精通 OAuth2 OpenID 机制 - 只知道非常基础的知识。
我已经成功使用 spring-boot-starter-oauth2-client 来构建我的 OAuth2 客户端。我正在与之交谈的服务器有一个描述服务的 .well-known 端点。他们最近更改了此端点实现,以在返回的结果中包含各种信息,例如支持的算法。
如果是某些特定字段,例如“id_token_signing_alg_values_supported”,则包含一个额外的“无”算法。
当我指向 oauth2 配置以使用这些“无”算法条目从新的 .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]
...
我知道客户端代码可能对服务器接受某些条目的“无”算法感到愤怒。我想我正在与之交谈的服务器不应该公开让客户向其发送未加密内容的方式......但是 - 如果是这种情况 - 我只是一个客户 - 我可以不要忘记这一点并忽略这个权限服务器让我使用这个“无”算法?有没有办法覆盖这种行为?我查看了 oauth2-oidc-sdk 代码,但找不到任何方法。
谢谢。
[edit:] 具体来说,oauth2-oidc-client 不接受以下众所周知的配置条目中的“无”算法值:
- token_endpoint_auth_signing_alg_values_supported
- introspection_endpoint_auth_signing_alg_values_supported
- revocation_endpoint_auth_signing_alg_values_supported
【问题讨论】:
标签: spring-boot spring-security openid-connect spring-security-oauth2