WSO2 是。为多个应用程序打包 org.wso2.identity.sso 和 SSO SLO
WSO2 IS. package org.wso2.identity.sso and SSO SLO fro more than one application
我找不到包 org.wso2.carbon.identity.sso.saml 的来源。
在 github 存储库 wso2-attic/carbon-identity 中有这些 类,但请注意,该存储库不再用于开发,我发现有 2 links:
https://github.com/wso2/identity-framework
https://github.com/wso2-extensions?utf8=%E2%9C%93&query=identity
但我没有从包 org.wso2.carbon.identity.sso.saml.
中找到任何 类
我在 2 个应用程序的 SSO SLO 方面遇到了一些问题:
我登录了 2 个应用程序:a
和 b
。
从一个应用程序注销正常,但是当我尝试从第二个应用程序注销时,出现错误
[4] [是]错误 {org.wso2.carbon.identity.sso.saml.processors.SPInitLogoutRequestProcessor} - ssoTokenId cookie not found in the logout request
和 html:
SAML 2.0 based Single Sign-On
Error when processing the authentication request!
Please try login again.
SAML 注销响应有 link
https://test2-sso2.auth.test.vu.lt:9443/authenticationendpoint/samlsso_notification.do?status=Error+when+processing+the+authentication+request%21&statusMsg=Please+try+login+again.
和 SAML 响应参数:
<saml2p:LogoutResponse Destination="https://test2-wso2.auth.test.vu.lt:9443/samlsso"
ID="_9cb47e1d90276bcc53d4b110d3573b82"
InResponseTo="fgehcpnbagimhhcacbaanopameodckepmopaoaek"
IssueInstant="2017-08-31T11:09:43.403Z"
Version="2.0"
xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
>
<saml2:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity"
xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
>test2-wso2</saml2:Issuer>
<saml2p:Status>
<saml2p:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Requester" />
<saml2p:StatusMessage>Session was already Expired</saml2p:StatusMessage>
</saml2p:Status>
</saml2p:LogoutResponse>
那么,我有两个问题:
- 在哪里可以找到包 org.类wso2.carbon.identity.sso.saml;
- 也许有人可以帮我解决 SSO SLO 的问题?
我们正在使用 WSO2 IS v.5.3.0。其中一个应用程序是 travelocity.com,另一个是我们的应用程序,其架构类似于 travelocity.com。我们在多租户架构中工作。两个应用程序(服务提供商)都在同一个租户中配置
我假设您正在寻找 SPInitLogoutRequestProcessor
。您可以在 [1] 找到它。对于 IS 5.3.0,SAML 组件相关的开发发生在 5.3.x 分支。
关于您对 SLO 的查询;当您为单点注销配置了 2 个应用程序并从一个应用程序注销时,Identity Server 会使用户的身份验证会话无效,并向其他会话参与者(在本例中为 App 2)发送反向通道 SAML 注销请求。因此,第二个应用程序应该在收到来自 IS 的注销请求后使其用户会话无效。
您看到的错误应该是由于 IS 无法为注销请求找到有效的经过身份验证的会话(因为该会话已被删除)。 [2] 详细解释了 IS 中单点注销是如何发生的。
您可以采取的另一种方法是在发送注销请求之前检查 IDP 端是否存在经过身份验证的会话。您可以使用被动 SAML 请求来检查会话的状态,如果会话已经存在,则发送注销请求。
我找不到包 org.wso2.carbon.identity.sso.saml 的来源。 在 github 存储库 wso2-attic/carbon-identity 中有这些 类,但请注意,该存储库不再用于开发,我发现有 2 links:
https://github.com/wso2/identity-framework
https://github.com/wso2-extensions?utf8=%E2%9C%93&query=identity
但我没有从包 org.wso2.carbon.identity.sso.saml.
中找到任何 类我在 2 个应用程序的 SSO SLO 方面遇到了一些问题:
我登录了 2 个应用程序:a
和 b
。
从一个应用程序注销正常,但是当我尝试从第二个应用程序注销时,出现错误
[4] [是]错误 {org.wso2.carbon.identity.sso.saml.processors.SPInitLogoutRequestProcessor} - ssoTokenId cookie not found in the logout request
和 html:
SAML 2.0 based Single Sign-On
Error when processing the authentication request!
Please try login again.
SAML 注销响应有 link
https://test2-sso2.auth.test.vu.lt:9443/authenticationendpoint/samlsso_notification.do?status=Error+when+processing+the+authentication+request%21&statusMsg=Please+try+login+again.
和 SAML 响应参数:
<saml2p:LogoutResponse Destination="https://test2-wso2.auth.test.vu.lt:9443/samlsso"
ID="_9cb47e1d90276bcc53d4b110d3573b82"
InResponseTo="fgehcpnbagimhhcacbaanopameodckepmopaoaek"
IssueInstant="2017-08-31T11:09:43.403Z"
Version="2.0"
xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
>
<saml2:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity"
xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
>test2-wso2</saml2:Issuer>
<saml2p:Status>
<saml2p:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Requester" />
<saml2p:StatusMessage>Session was already Expired</saml2p:StatusMessage>
</saml2p:Status>
</saml2p:LogoutResponse>
那么,我有两个问题:
- 在哪里可以找到包 org.类wso2.carbon.identity.sso.saml;
- 也许有人可以帮我解决 SSO SLO 的问题?
我们正在使用 WSO2 IS v.5.3.0。其中一个应用程序是 travelocity.com,另一个是我们的应用程序,其架构类似于 travelocity.com。我们在多租户架构中工作。两个应用程序(服务提供商)都在同一个租户中配置
我假设您正在寻找 SPInitLogoutRequestProcessor
。您可以在 [1] 找到它。对于 IS 5.3.0,SAML 组件相关的开发发生在 5.3.x 分支。
关于您对 SLO 的查询;当您为单点注销配置了 2 个应用程序并从一个应用程序注销时,Identity Server 会使用户的身份验证会话无效,并向其他会话参与者(在本例中为 App 2)发送反向通道 SAML 注销请求。因此,第二个应用程序应该在收到来自 IS 的注销请求后使其用户会话无效。
您看到的错误应该是由于 IS 无法为注销请求找到有效的经过身份验证的会话(因为该会话已被删除)。 [2] 详细解释了 IS 中单点注销是如何发生的。
您可以采取的另一种方法是在发送注销请求之前检查 IDP 端是否存在经过身份验证的会话。您可以使用被动 SAML 请求来检查会话的状态,如果会话已经存在,则发送注销请求。