如何检查用户是否已登录Windows Active Directory

时间:2013-03-05 08:12:22

标签: java authentication active-directory

我遇到了问题,因为我不熟悉登录/身份验证的内容,所以我对于在哪里找到答案没有明确的愿景。

问题在于:

我将创建webapp(带有primefaces + ejb3的jsf),允许用户在没有登录对话框的情况下登录它 - 这意味着必须从Active Directory收集所有身份验证信息,关于用户的角色,组等。我怎么能得到它?如果用户没有提供至少他或她的用户名,我怎样才能获得用户信息?我必须问Active Directory域吗?

如果没有工作,有人可以提供至少伪代码吗?

1 个答案:

答案 0 :(得分:0)

如果您正在谈论Windows系统,Microsoft提供了两种能够执行SSO(单点登录)的协议,这是您正在寻找的:NTLM和SPNEGO(Kerberos的一种变体)。

您的问题的答案取决于您的应用程序将运行的操作系统。如果是Windows,那么有几个使用Windows API的选项可以让它变得更容易。 (mod-auth-sspiWaffle

如果您正在运行其他系统,则必须使用提供整个堆栈的库,如Jespamodauthkerb或其他。