【问题标题】:WSO2 SSO always redirects to localhost:9443/samlssoWSO2 SSO 始终重定向到 localhost:9443/samlsso
【发布时间】:2020-12-08 22:18:32
【问题描述】:

我正在使用 WSO2 身份服务器(在端口 9443 上)和企业服务总线(ESB,在端口 9444 上)。我将 ESB 配置为使用 IS SSO。但是每次我尝试登录 ESB 时,它都会将我重定向到 IS,然后将我重定向到 URL localhost:9443/samlsso。

我已经尝试在不访问的情况下更改 identities.xml 和 carbon.xml 中的这个 URL。

在哪里可以配置重定向地址?

在 carbon.xml 中,我将主机名指定为“HostName”和“MgtHostName”。但是 IS 仍然使用 localhost。

谢谢!

【问题讨论】:

  • 您的意思是当您提供正确的用户/密码时,它会再次重定向到“localhost:9443/samlsso”?不是 ESB 控制台?
  • 不,我没有更改输入凭据。当我尝试访问 IP:9444/carbon 上的服务器时,我很快看到一条消息“正在加载 WSO2 StratosLive...”,然后 localhost:9443/samlsso 抛出 404 未找到。
  • 通常如果您在本地主机上运行两台服务器,则不需要更改 WSO2IS 的配置文件.. 它通常可以工作... 9443/samlsso 必须是,如果 WSO2IS 已正确启动.. 可以您在 wso2carbon.log 文件中看到任何日志...?我希望你关注这个docs.wso2.com/display/IS500/Enabling+SSO+for+WSO2+Servers
  • 是的,这行得通。但我想从另一个客户端访问服务器。而在这个客户端上,localhost 是不正确的。 :-)

标签: wso2 single-sign-on wso2esb wso2is


【解决方案1】:

WSO2 的脚本位于:
<IOTS_HOME>/scripts

运行
./change-ip.sh

提示:脚本将在必要的配置文件中查找参数 1 (localhost) 中给出的 IP 地址并将其替换为参数 2 (10.10.10.14) 中给出的 IP 地址。

Check Docs to configure Hostname

【讨论】:

  • change-ip.sh 绝对是一个很大的帮助;希望我早点发现它。确保在软件的干净提取上运行它。也就是说,WSO2 动态生成 URL 并将它们粘贴到 form 元素中以执行基于浏览器的重定向的方法简直是愚蠢的,特别是如果你尝试在反向代理后面运行这个 shtuff ......虽然它看起来可能要使用上述脚本处理主机名方面,摆脱坚持的9443 端口似乎几乎是不可能的。我最终不得不在外围拍它,最后,它起作用了...... pfeww
【解决方案2】:

好的,我找到了解决办法。

我对 IS 和 ESB 包中的所有 XML 文档进行了搜索和替换,并将所有“localhost”替换为我的主机名。

【讨论】:

    【解决方案3】:

    在 identity.xml 中有一个 SSOService/IdentityProviderURL 标记,该标记对于 SAML 身份验证似乎很重要。

    【讨论】:

      【解决方案4】:

      /repository/conf 文件夹下的 carbon.xml 文件。

      <HostName>localhost</HostName> 更改为您的 IP。

      <HostName>x.x.x.x</HostName>
      

      【讨论】:

        【解决方案5】:

        SSO 配置应在 /repository/conf/security/authenticators.xml 中如下更改 Identity Server 的重定向 url 的主机名,

        <Authenticator name="SAML2SSOAuthenticator" disabled="false">
            <Priority>1</Priority>
            <Config>
                <Parameter name="LoginPage">/carbon/admin/login.jsp</Parameter>
                <Parameter name="ServiceProviderID">carbonServer</Parameter>
                <Parameter name="IdentityProviderSSOServiceURL">https://<HostNameOfIdentitiyServer>:9443/samlsso</Parameter>
                <Parameter name="NameIDPolicyFormat">urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</Parameter>
                <Parameter name="AssertionConsumerServiceURL">https://<HostNameOfIdentitiyServer>:9443/acs</Parameter>
             </Config>
        

        【讨论】:

          【解决方案6】:

          在 system32/drivers/etc/hosts 中添加虚拟机的 URL 并将其映射到 localhost。

          更改主机文件并将 localhost 映射到运行 WSO2 的 VM 的 IP 地址。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-12-11
            • 1970-01-01
            • 1970-01-01
            • 2023-04-05
            • 1970-01-01
            相关资源
            最近更新 更多