【问题标题】:'Disabling' LTPA things in a Liberty server - am I missing something?在 Liberty 服务器中“禁用”LTPA 东西——我错过了什么吗?
【发布时间】:2018-11-28 17:02:47
【问题描述】:

我正在调查 Liberty 中“禁用”LTPA 事物的概念,并希望得到一些指导。我正在追求 2 个想法 - 首先,是否可以阻止 Liberty 服务器生成 LTPA 密钥?其次,是否可以阻止 Liberty 服务器向客户端浏览器发送 LTPA 令牌/cookie?

在发表这篇文章之前,我浏览了 Liberty 文档。 Liberty KC https://www.ibm.com/support/knowledgecenter/en/SSEQTP_liberty/com.ibm.websphere.wlp.doc/ae/twlp_sec_ltpa.html 中的该主题声明如下:“首次为 Liberty 服务器启用安全性时默认配置 LTPA。”很明显,只要我为 Liberty 服务器启用了安全性,它就会生成 LTPA 密钥;并且禁用 Liberty 服务器中的安全性对我来说不是一个选项。所以我不相信我可以阻止 Liberty 服务器在我的特定环境中生成 LTPA 密钥。

关于防止 Liberty 服务器将 LTPA 令牌/cookie 发送到客户端浏览器,Liberty 服务器似乎存在一个名为 disableLtpaCookie 的属性。但是,根据 Liberty 文档,我只能在 2 种情况下使用 disableLtpaCookie 属性 - 当我使用 OpenID Connect Client https://www.ibm.com/support/knowledgecenter/en/SSEQTP_liberty/com.ibm.websphere.liberty.autogen.base.doc/ae/rwlp_config_openidConnectClient.html 或当我使用 SAML Web SSO 2.0 Authentication https://www.ibm.com/support/knowledgecenter/en/SSEQTP_liberty/com.ibm.websphere.liberty.autogen.base.doc/ae/rwlp_config_samlWebSso20.html 时。如果我没有实现这些身份验证机制中的任何一个,那么我将无法使用 disableLtpaCookie 属性……因此我无法阻止 Liberty 服务器将 LTPA 令牌/cookie 发送到客户端浏览器。

我错过了什么吗?有没有办法阻止 Liberty 服务器生成 LTPA 密钥或阻止 Liberty 服务器将 LTPA 令牌/cookie 发送到我尚未通过 Liberty 文档发现的客户端浏览器?

非常感谢任何和所有指导,并提前感谢您!

【问题讨论】:

    标签: websphere-liberty


    【解决方案1】:

    表单登录和单点登录需要 LTPA cookie 才能开箱即用。如果您完全依赖其他身份验证机制/令牌来实现这些(SAML、自定义、OIDC 等),并且没有理由使用 LTPA cookie,则可以在 webAppSecurity 元素中使用将 singleSignonEnabled 属性设置为 false。

    这应该可以防止将 LTPACookie 发送到浏览器。 LTPA 密钥仍会生成。

    我们可以更新这个属性的描述,让它更清楚@https://www.ibm.com/support/knowledgecenter/SSAW57_liberty/com.ibm.websphere.liberty.autogen.nd.doc/ae/rwlp_config_webAppSecurity.html

    您可以打开一个问题来选择禁用 LTPA 密钥的创建。

    【讨论】:

    • 非常感谢 Ajay 的指导 :-) 不幸的是,我们的应用程序确实使用了 FormLogin,因此在 webAppSecurity 元素中设置 singleSignonEnabled="false" 属性弊大于利,因为它基本上可以阻止任何人从登录到我们的应用程序 :-) 当然,我很好奇当我们的应用程序确实使用 FormLogin 时是否有办法解决 LTPA cookie 要求 :-)
    • 您确实需要它才能使表单登录开箱即用,因为 cookie 中的令牌包含用户经过身份验证的信息,这些信息将在重定向后使用,以后无需提示用户再次。那么你的场景到底是什么?为什么不想要 LTPA Cookie?
    • 长话短说 - 客户希望无限期地保持登录到我们的应用程序,我们正在研究实现这一目标的方法。我们知道 ltpa 元素中的过期属性,并且还在研究设置它的值以满足客户的要求。
    • 更正我之前的评论 - 客户不希望 LTPA 令牌控制会话有效时间,我们正在研究实现这一点的方法。
    • 另一种解决方案是创建一个独立的 Liberty 服务器作为 Openid Connect 服务器。您可以让 Liberty OIDC 服务器处理表单登录,并将所有其他 Liberty 服务器作为 Openid Connect 依赖方(这样您就可以从应用程序服务器中删除 LTPA cookie),并且您只有一个 ltpa cookie(用于 openid 连接服务器)跨度>
    【解决方案2】:

    在这个问题/线程中 - OpenID SSO in Websphere Liberty requires authentication every time I reopen a browser 发表了以下声明:

    Liberty openid 连接客户端可以配置为使用 ltpa 过期时间作为会话时间,或者使用 id_token 生命周期作为会话时间。默认行为是 ltpa 过期时间。

    我找不到明确的 Liberty 文档来解释如何配置 Liberty openid 连接客户端以使用 id_token 生命周期作为会话时间......非常感谢任何指导 :-)

    【讨论】:

    • 一旦你设置了 disableLtpaCookie="true",ltpa cookie 不会被创建,会话 cookie 会以 id_token 过期时间作为会话 cookie 的过期时间
    猜你喜欢
    • 2017-10-19
    • 2012-02-11
    • 2021-03-14
    • 1970-01-01
    • 2019-09-23
    • 1970-01-01
    • 2010-09-06
    • 1970-01-01
    • 2017-10-23
    相关资源
    最近更新 更多