假设有两个异构应用程序(Java富客户端和Web应用程序)。用户可以登录Java富客户端,从那里打开一个指向Web应用程序的链接(在浏览器中打开),并自动进行身份验证,而无需再次输入用户名/密码。
第一个想法是使用Kerberos设置SSO服务器。但是如何将kerberos票传递给Web应用程序?这甚至可能吗?有没有其他方法可以实现SSO?
更好的是,是否可以让用户在登录操作系统(Windows或Linux)时在SSO服务器上注册并将登录信息传递给Java富客户端并从那里传递给Web应用程序?
答案 0 :(得分:0)
您的第一个想法很棒,您必须在服务器上安装Kerberos,如果您使用的是Linux,请将Kerberos集成到您的PAM Auth或Open-LDAP Auth。
它需要在Kerberos上创建REALM,这是用户的领域。
稍后,当一切正常时,您将登录您的操作系统并成功登录后,您将在Kerbers Ticket Granting Server中获得“票证”。
所以,现在一个用户来登陆操作系统,他还没有门票,所以成功登录的答案来自操作系统的AUTH系统,创建了故障单(初始身份验证请求),用户是登录。
您在Applicationserver上的WebApp可能位于另一个领域,但如果这两个领域之间存在关系,则用户可以浏览到WebApp并由Kerberos自动登录,因为他当前已登录并拥有票证在TGS。
很好,只登录一次并使用所有应用程序。