【问题标题】:How to read Okta SAML assertion response on receiving web application (service provider)如何在接收 Web 应用程序(服务提供商)时读取 Okta SAML 断言响应
【发布时间】:2017-02-21 21:58:06
【问题描述】:

我正在使用 SAML2.0 并与 Okta 集成。我尝试使用 okta 网站上给出的 spring-security 示例,它工作正常。现在我正在尝试将我的 Web 应用程序添加到 okat,当我在 okta 仪表板中启动或单击我的 Web 应用程序时,我想查看发送给服务提供商的 SAML 断言。我想在我的网络应用程序中读取用户的名字和姓氏,比如 index.jsp 页面。

我在我的 tomcat 日志中看到打印了响应。

INFO org.opensaml.common.binding.security.SAMLProtocolMessageXMLSignatureSecurityPolicyRule - 协议消息签名验证成功,消息类型:{urn:oasis:names:tc:SAML:2.0:protocol}Response

但是当我尝试在 index.jsp 中获取 SecurityContextHolder.getContext().getAuthentication() 对象时,我得到了 null。

用户在 Okta 中创建并分配给应用程序。但是这个用户在我的 Web 应用程序数据库中不存在。我只想看到在 Okta 中创建的用户被发送到我的网络应用程序。我只想阅读 firstname , lastname 等元数据。有可能吗?有人试过吗?

我的网络应用已经在使用 CasAuthentication。

【问题讨论】:

  • 忘了提及,当我使用现有用户登录并尝试访问 index.jsp 时,我确实看到创建了 SecurityContextHolder.getContext().getAuthentication() 对象,但它显示它已通过 casAuthentication whcih 进行身份验证是显而易见的。但不确定在登录 SP 网络应用程序之前如何阅读来自 Okta 的用户详细信息。

标签: saml-2.0 spring-saml okta


【解决方案1】:

我找到了自己问题的答案。在这里为可能面临类似问题的同行发帖。

基本上,如果您使用超过 1 个身份验证管理器,请确保您的别名不同,并且您在“ref”部分的 saml bean 中引用了正确的别名。一旦我纠正它,我的就开始正常工作了。

【讨论】:

    猜你喜欢
    • 2011-01-03
    • 2015-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-21
    • 1970-01-01
    • 2011-07-27
    • 1970-01-01
    相关资源
    最近更新 更多