for specifically windows . Single sign on can be done by using waffle.
For Ldap authentication you can go by spring mvc to simple java class with below lines of code :
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);
For Single Sign On :
U need to setup Kerberos and Spnego configuration at the server level . for liberty server its server.xml needs modification.