wso2 IS 中的 OIDC 联合身份验证问题

问题描述 投票:0回答:2

我正在尝试为 wso2 IS(本地)中的服务提供商进行 OIDC 联合身份验证。我使用的外部身份提供商也是 wso2 IS(外部)。

  1. 我在我的外部身份提供商(外部)中配置了入站身份验证配置,如下所示:
    enter image description here

  2. 在本地 wso2 中,我配置了身份提供者,如下所示,并完成了角色映射和声明映射: enter image description here

  3. 更新本地服务提供商的联合身份验证

  4. 当我尝试访问联合的应用程序时,它会很好地重定向到外部提供商进行身份验证,并且在输入凭据后,我在浏览器的标头和负载中收到以下错误。
    标题
    请求网址: 请求网址: https://test-vm.com/?error_description=Authentication+required&error=login_required
    有效负载: error_description:需要身份验证 错误:需要登录

  5. 当我查看本地 wso2 的日志时,我看到以下错误:

错误 {org.wso2.carbon.identity.application.authentication.framework.handler.step.impl.DefaultStepHandler} - 身份验证失败异常! javax.net.ssl.SSLHandshakeException:PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效证书路径

wso2 openid-connect wso2-identity-server federated-identity
2个回答
0
投票

联合 IDP 提供的 SSL/TLS 证书似乎无法由本地 WSO2 IS 验证。 您必须将联合 IDP 的 SSL/TLS 证书导入到本地 IS 的信任存储中。

  1. 从联合 IDP 的密钥库导出公共证书
keytool -export -alias <alias_name> -keystore <keystore_name>.jks -file <public_key_name>.pem
  1. 将上一步提取的公钥导入到本地IS的client-truststore.jks文件中。
keytool -import -alias <alias_name> -file <public_key_name>.pem -keystore client-truststore.jks -storepass <keystore_password>


0
投票

我的问题是 wso2 环境无法解析身份提供者的主机。因此,对 idp/token 的请求失败并生成您所描述的错误:error_description=Authentication+required&error=login_required

© www.soinside.com 2019 - 2024. All rights reserved.