我想在使用Java的Websphere-Liberty服務器上實現單點登錄。我想要使用LDAP對用戶進行身份驗證。Liberty服務器上的LDAP java單點登錄
我搜索了很多,但找不到確切的例子。我也檢查了每個可用的堆棧溢出示例。但沒有運氣。
如果可以提供相同的演示或示例代碼,那將會很棒。
在此先感謝。
更新:我能夠在華夫餅的幫助下實現同樣的功能,但華夫餅不適用於Linux/Unix。 .. 誰能幫幫我嗎?
我想在使用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需要修改。
waffle dosent support * nix。 您可以使用支持Krb5LoginModule的JASS(僅適用於Java SE 8),它可以讓您緩存OS票證。
使用https://wiki.jasig.org/display/casum/home,簡單可靠 –
您是否希望帶有Windows AD登錄的桌面SSO?然後檢查SPNEGO認證。如果您只是希望在Liberty上的各種應用程序之間擁有SSO,那麼它默認情況下會使用LTPA,只需將Liberty連接到LDAP註冊表即可。你需要澄清一下你真正需要的東西。 – Gas
我正在尋找在Linux服務器上的websphere liberty中的SSO。它應該是基於web的而不是桌面的。你有任何代碼可供參考嗎? –