Tou*_*uko 30 java active-directory windows-authentication single-sign-on
我希望我的桌面Java应用程序能够与Active Directory用户进行单点登录.分两步,我想:
使用Java:确定当前Windows用户的程序方法我可以获得当前Windows用户的名称,但我可以依赖它吗?我觉得
System.getProperty("user.name")
Run Code Online (Sandbox Code Playgroud)
会不够安全?("user.name"似乎来自环境变量,所以我不能依赖它,我想?)
问题在Linux上使用Java对Active Directory进行 身份验证为我提供了给定名称+ pass的身份验证,但我想根据Windows登录进行身份验证?
对于Active Directory访问,LDAP可能是选择?
我不完全确定我是否提出了正确的问题,但希望有人有一些想法可以转发我.
Ala*_*ent 13
它不受支持.Java 6有改进,但还不够.
Java有自己的GSS堆栈.问题是单点登录,您需要从操作系统(而不是Java堆栈)获取Kerberos票证.否则,用户必须第二次进行身份验证(无法实现单点登录的目的).
请查看http://java.sun.com/developer/technicalArticles/J2SE/security/.往下看的"访问本地GSS-API",它讲述一个新的系统属性sun.security.jgss.native,当设置为true会导致Java来使用底层OS GSS的实施,使访问操作系统级别的认证.完美!....除了它仅支持Solaris和Linux,而不支持Microsoft Windows.
但是,Java 6似乎有足够的支持充当从IE接收SPNEGO身份验证请求然后针对Active Directory对该用户进行身份验证的服务器.它只是桌面客户端支持仍然不完整.
将JAAS与LDAP LoginModule一起使用.这将允许您插入底层Java安全基础结构.
当您需要使应用程序脱机或"调试"应用程序时,您可以轻松地将LDAP模块换出虚拟模块.这允许您继续测试"安全性",而不依赖于Active Directory.高度可测试,解耦,您可以在以后几乎没有悲伤的身份验证方案.
归档时间: |
|
查看次数: |
40690 次 |
最近记录: |