使用Active Directory在Java平台中进行单点登录(SSO)

时间:2014-10-06 04:45:04

标签: java java-ee single-sign-on

我需要为Intranet用户开发一个Web应用程序。我不希望他们每次访问网站时都输入登录凭据。它应该从系统用户名和密码自动加载。

我已成功实现了提示用Active Directory注册的用户名和密码并验证LDAP的功能。我需要一些提示,直接从内部网网站登录,没有提示用户名&密码。

以下是我的疑问,请告诉我您的建议。

  1. 是否必须设置SPN?
  2. 我们是否需要为每个客户端创建单独的keytab文件?在我的组织中,大约有800人在工作,所以我是否需要在keytab文件中添加所有客户端主体&复制到客户端计算机以执行自动登录。
  3. 我尝试了许多API,如JESSO,Waffle,Spring Kerberos,SPNGO但未能实现自动登录。

2 个答案:

答案 0 :(得分:0)

我发现最简单的方法是使用Atlassian's Crowd(https://www.atlassian.com/software/crowd/overview)而不是自己实施。它是一种商业产品,但上次检查时,它很便宜,而且只是有效。

答案 1 :(得分:0)

如果您想使用Kerberos / SPNEGO(这是我的推荐),您必须设置SPN。而且你只需要一个AD域的keytab。您是在某些应用服务器(如Weblogic)上运行Java程序,还是作为独立程序运行?服务器确实有你可以使用的安全框架,而对于独立程序,你必须手动完成一堆东西。