我尝试使用WSO2附带的authenticationendpoint应用程序作为旧应用程序的新唯一登录入口点。出于测试目的,我只是做了一个重定向到这个URL的页面
登录页面按预期显示,但一旦我设置了用户,密码就会显示以下消息:
身份验证错误! 注意: 在身份验证过程中出错了。请尝试重新登录。
在调试模式下查看控制台中的输出,这是显示的内容
...许多同样的错误说认证上下文为空 [2017-01-06 15:40:08,836] DEBUG {org.wso2.carbon.identity.application.authentication.framework.util.FrameworkUtils} - 身份验证上下文为空 [2017-01-06 15:40:08,836] DEBUG {org.wso2.carbon.identity.application.authentication.framework.util.FrameworkUtils} - 身份验证上下文为空 [2017-01-06 15:40:08,836] DEBUG {org.wso2.carbon.identity.application.authentication.framework.util.FrameworkUtils} - 身份验证上下文为空 [2017-01-06 15:40:08,837] DEBUG {org.wso2.carbon.identity.application.authentication.framework.handler.request.impl.DefaultRequestCoordinator} - 会话数据键:22451696 [2017-01-06 15:40:08,837] ERROR {org.wso2.carbon.identity.application.authentication.framework.handler.request.impl.DefaultRequestCoordinator} - 上下文不存在。可能是由于缓存无效
我的事情我做错了,也许没有足够的参数发送,或者它们是错误的,用户和密码是正确的,因为我可以用它登录碳本身,它也是测试SP的有效用户。
描述了SP配置:
基本信息
服务提供商名称:Test-App
声明配置
使用本地声明方言 主题声明URI http://wso2.org/claims/username
角色/权限配置 权限AdminTest 角色映射AdminTest-> Admin
入站身份验证配置
SAML2 Web SSO配置 发行人:My-Issuer
断言消费者URL:https://localhost/Test/main.asp 默认断言使用者URL:https://localhost/Test/main.asp NameID格式:urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress 证书别名:wso2carbon 响应签名算法:...#rsa-sha1 响应摘要算法:...#sha1
检查值 启用响应签名 启用单点注销 启用属性配置文件 始终在响应中包含属性 启用IdP启动的SSO 启用IdP启动的SLO
其他人在空白的OAuth,OpenID等中(如果这可能是问题,请告诉我,因此应该填写。
本地和出站身份验证配置
身份验证类型:我尝试使用默认和本地身份验证=基本和密码重置强制执行器
选中此项:
在本地主题标识符中使用用户存储域
请求路径验证配置 基本-AUTH
入站配置配置 SCIM配置 主 未启用哑模式
其余部分留空
我花了很多天时间来跟踪这个问题,但没有答案或是旧版本。
我使用JDK 7和8(最新版本)进行了测试我正在使用WSO2 IS 5.2.0。有人可以引导我使用此应用程序作为我的SP的唯一入口点的解决方案吗?之后的想法是将SAML2响应发送回SP侧的页面,该页面读取信息并控制授权部分。
提前致谢。
答案 0 :(得分:1)
您已配置SAML SSO方案。因此,您的SP必须使用有效的SAMLRequest调用WSO2 Identity Server的SAML SSO端点。那是https://hostname:port/samlsso。
AuthenticationEndpoint只是一个中间应用程序。 SAML SSO端点是在首次处理SAMLRequest 之后应将用户重定向到AuthenticationEndpoint 的端点。你不能直接打电话。
请参阅this以了解如何使用WSO2 IS运行示例SAML SSO应用程序。在运行时,您可以使用Firefox SSOTracer等工具监控HTTP请求/响应流,并了解通信的工作原理。
与SAML SSO流类似,如果您使用任何其他身份验证协议,则首先必须调用协议特定端点。例如。如果您使用的是OAuth2或OpenIDConnect,则应调用/ oauth2端点。从不/ authenticationendpoint直接。