【问题标题】:Azure AD B2C SunCertPathBuilderException: unable to find valid certification path to requestedAzure AD B2C SunCertPathBuilderException:找不到请求的有效证书路径
【发布时间】:2022-02-09 14:40:29
【问题描述】:

我按照本教程制作了一个 Spring Boot 应用程序并将其连接到 B2C - https://docs.microsoft.com/en-us/azure/developer/java/spring-framework/configure-spring-boot-starter-java-app-with-azure-active-directory-b2c-oidc

我可以访问 MS 登录页面,我可以在其中创建帐户或登录。 完成任一操作后,它都会在我的浏览器中引发以下错误:

[invalid_token_response] 尝试 检索 OAuth 2.0 访问令牌响应:POST 上的 I/O 错误 要求 “https://SAMPLENAME.b2clogin.com/SAMPLENAME.onmicrosoft.com/oauth2/v2.0/token”: PKIX 路径构建失败: sun.security.provider.certpath.SunCertPathBuilderException:无法 找到请求目标的有效认证路径;嵌套异常是 javax.net.ssl.SSLHandshakeException:PKIX 路径构建失败: sun.security.provider.certpath.SunCertPathBuilderException:无法 找到请求目标的有效认证路径

我该如何解决这个问题?

【问题讨论】:

    标签: java spring-boot azure-ad-b2c


    【解决方案1】:

    您可以尝试以下解决方法:

    解决方案 1: 确保您输入了正确的 TenantIDApplicationIDApplication_Secret,并且 Application_Secret application.properties 文件中的strong>组名。

    您的应用请求的范围也已在 Azure 门户中配置(如果需要管理员同意,请授予它)。

    解决方案 2: 尝试将 azure 端点从 v2 更改为 v1。这是通过更改端点来完成的

    示例:http://login.microsoft.com/common/oauth2/v2.0/authorize 变为 http://login.microsoft.com/common/oauth2/authorize,如 v1 & v2 comparison 中所示。

    正如文档中所提到的,使用 OAuth 2.0 时时钟偏差的容忍度非常小。 即使是三分钟的不准确也可能导致登录失败,并出现类似于[invalid_id_token] An error occurred while attempting to decode the Jwt: Jwt used before 2020-05-19T18:52:10Z 的错误。

    有关 v1 的更多信息,您可以参考document

    有关更多详细信息,请参阅此SO Thread 以了解类似类型的错误。

    【讨论】:

    • 通过链接中的示例,我去了他们的Github,看到有一个我从未创建过的资源服务器。我现在正在部署它,看看情况是否有所不同。否则,我会尝试你的建议。
    猜你喜欢
    • 2017-12-27
    • 2021-04-14
    • 2015-04-04
    • 1970-01-01
    • 2020-03-25
    • 2020-11-25
    • 2020-11-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多