2011-02-17 50 views
0

我希望用户能够单点登录,即一旦身份登录Windows用户,通过我的应用程序提供的所有服务应该没有进一步的验证访问。NTLoginModule:它在哪里检索用户信息?

为了我使用JAAS(Java认证和授权服务),集成在Java中的用户进行身份验证。

Java API的船舶也有几个JAAS LoginModule秒。其中一个名为NTLoginModule,用于检索有关当前登录的Windows用户的用户信息。

  1. NTLoginModule从哪里检索 其信息?
  2. 我可以使用NTLoginModule为了验证返回的 信息 - 以安全的方式 - 当前用户?
  3. 我有什么安全问题需要了解?

提前致谢!

回答

0

正如我在对RDS的回答评论说:“我了解到,NTLoginModule是相当没有安全感我能假返回的用户名通过替换的rt.jar包,所以我的NTUserPrincipal.class文件。能够返回一个伪造的用户名,所以它不适合任何形式的认证。“

此外,通过一些研究,我发现NTLoginModule从nt.dll中检索信息,该信息是Windows的Java本机库的一部分。 nt.dll使用advapi32.dll为了检索当前的用户信息。

1

我不能JAAS帮助,最后tyime我做了SSO与NTML,它是基于JCIFS。

不过,我回答你的第三点:有与NTLM

  • NTLM is quite weak(甚至V2)的安全问题,你应该给定数量的登录失败(后锁定帐户,以避免蛮力攻击)。
  • NTLM无法使用其他防火墙。
  • NTLM令牌不能由第三方信任,导致double-hop problem。您的应用程序无法以登录用户的身份来调用另一台受NTLM保护的服务器(如Web服务; RSS提要;或任何Web资源)。
  • 所有浏览器都不支持NTLM。 Internet Explorer和Chrome本身工作; Firefox需要编辑每个目标站点的配置;歌剧,Konqueror根本不支持NTLM。
+0

NTLM与NTLoginModule不一样,我想。但是,我了解到NTLoginModule相当不安全。我可以通过替换rt.jar包中的NTUserPrincipal.class文件来伪造返回的用户名,所以我能够返回一个伪造的用户名。所以它不适合任何形式的认证。 – Simon 2011-02-17 11:49:03