Liberty服务器上的LDAP java单点登录
我想在使用Java的Websphere-Liberty服务器上实现单点登录。我想要使用LDAP对用户进行身份验证。Liberty服务器上的LDAP java单点登录
我搜索了很多,但找不到确切的例子。我也检查了每个可用的堆栈溢出示例。但没有运气。
如果可以提供相同的演示或示例代码,那将会很棒。
在此先感谢。
更新:我能够在华夫饼的帮助下实现同样的功能,但华夫饼不适用于Linux/Unix。 .. 谁能帮帮我吗?
如果您使用LDAP,身份验证可以像Basic一样传递。如果您知道用户名和密码,请将标题“Authorization”附加值“Basic base64_token”。
base64标记是一个字符串,它是用您的用户名和密码进行base64编码的,格式为username:password。理想情况下,这应该起作用。让我知道如果它不起作用。在这种情况下,我们可以使用SPNEGO探索选项。在JAVA
代码LDAP:
public class Main
{
public static void main(String[] args)
{
//Replace username and password with your username and password
token = Base64.getEncoder().encodeToString((username + ":" + password).getBytes())
conn = (HttpURLConnection) endpoint.openConnection();
// Set the necessary header fields, which in this case is Basic
conn.addRequestProperty("Authorization", "Basic " + token);
//Continue to do what you want to do after this. This should authenticate
// you to the server
}
}
此代码与SSO或Web应用程序有什么关系?只是显示如何添加基本身份验证标头到请求。 – Gas
该问题具体询问如何使用Java对LDAP服务进行身份验证。通过将身份验证详细信息作为基本身份传递,我已经成功地与LDAP服务通信。这应该工作。我在等待OP的回应。 – thatrockbottomprogrammer
了专门的窗口。单点登录可以通过使用华夫饼来完成。
对于LDAP身份验证可以通过Spring MVC的去简单的Java类与以下行代码:
String username = login.getUsername();// "ancb";
String password = login.getPassword();// "*****";
String base = "OU=******,DC=InfoDir,DC=DEV,DC=****";
String dn = "CN=" + username + "," + base;
String ldapURL = "ldaps://****.systems.**.****:3269";
// Setup environment for authenticating
Hashtable<String, String> environment = new Hashtable<String, String>();
environment.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
environment.put(Context.PROVIDER_URL, ldapURL);
environment.put(Context.SECURITY_AUTHENTICATION, "simple");
environment.put(Context.SECURITY_PRINCIPAL, dn);
environment.put(Context.SECURITY_CREDENTIALS, password);
String dynamicLdapaccount = "(CN="+ username +")" ;
DirContext authContext = new InitialDirContext(environment);
对于单点登录:
ü需要设置Kerberos和SPNEGO配置在服务器级别。对于Liberty服务器,它的server.xml需要修改。
使用https://wiki.jasig.org/display/casum/home,简单可靠 –
您是否希望带有Windows AD登录的桌面SSO?然后检查SPNEGO认证。如果您只是希望在Liberty上的各种应用程序之间拥有SSO,那么它默认情况下会使用LTPA,只需将Liberty连接到LDAP注册表即可。你需要澄清一下你真正需要的东西。 – Gas
我正在寻找在Linux服务器上的websphere liberty中的SSO。它应该是基于web的而不是桌面的。你有任何代码可供参考吗? –