gpt4 book ai didi

java - SSO 的 HTTP header 中的用户名

转载 作者:搜寻专家 更新时间:2023-10-30 21:33:15 24 4
gpt4 key购买 nike

我希望将单点登录 (SSO) 添加到我的一个 Web 应用程序中。我现在不想要任何沉重的东西,我只想知道登录用户的 userId,而不需要他们输入用户名。

Web 应用程序是一个内部应用程序,因此我可以保证它们来自 Windows PC 等。

我看过jCIFS,但是这个好像已经不支持了,推荐一个商业产品。

我也看过 WAFFLE,但我正在为一个不使用 Servlet 堆栈的 playframework 应用程序构建 SSO,因此我无法使用 SecurityFilter。我试图理解 WindowsLoginModule,但无法真正理解我必须做什么才能实现它。

是否可以只从 HTTP header 中获取用户名,还是在发布 header 之前需要先进行一些协商?

最佳答案

您希望 windows 用户自动登录到您的 Intranet webapp。因此,用户帐户将位于 Activity 目录中,通常的微软方式是使用像 NTML 这样的协议(protocol)。订单Kerberos .通常建议应用程序不要使用 NTLM,尽管有些企业仍在使用 NTML(和 jCIFS)进行 SSO。

对 Kerberos 和 Java 的快速搜索显示了这个 article .它似乎取决于 Java EE 堆栈 (JAAS)。

对于更精简的方法:通常,您不能以可移植的方式在 http 请求中发送用户名。使用 ActivX,您可以:

var wshshell=new ActiveXObject("wscript.shell");
var username=wshshell.ExpandEnvironmentStrings("%username%");

在服务器端,您可以使用您选择的技术解析 http header 并提取用户名。

那么,安全性在您的 playframework 应用程序中无关紧要吗?为什么不使用长生命周期 cookie?

希望对您有所帮助!

关于java - SSO 的 HTTP header 中的用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4440025/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com