Ho un'applicazione Web basata su Java che prende il contenuto di un modulo Web contenente un nome utente e una password e autentica l'utilizzo di Kerberos in un dominio basato su Windows.Abilita la registrazione dettagliata per kerberos in java
L'indirizzo KDC è apparentemente configurato per associare a indirizzi IP diversi ad ogni ricerca e questo può essere confermato utilizzando il comando ping dalla riga di comando.
La chiamata risponde immediatamente alla maggior parte delle richieste ma la risposta è lenta (5-10 secondi o anche più lunga) a intermittenza. Penso che questo potrebbe essere dovuto a quale controller di dominio viene utilizzato.
Ho provato ad attivare la registrazione Kerberos ma l'indirizzo IP del controller di dominio non è mostrato. Come posso attivare una registrazione più dettagliata per provare a identificare i controller di dominio dodgy, per favore?
Il codice estrae il file kerb.conf e kerb_context.conf dal file system.
Il kerb.conf è:
[libdefaults]
default_realm = EXAMPLE.COM
[realms]
CYMRU.NHS.UK = {
kdc = example.com:88
admin_server = example.com
kpasswd_server = example.com
}
Il kerb_context.conf è:
primaryLoginContext {
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=false
refreshKrb5Config=true
debug=true;
};
La fonte esempio è:
static NadexUser executePerformLogin(String username, String password) throws LoginException {
char[] passwd = password.toCharArray();
String kerbConf = ERXFileUtilities.pathForResourceNamed("nadex/kerb.conf", "RSCorp", null);
String kerbContextConf = ERXFileUtilities.pathURLForResourceNamed("nadex/kerb_context.conf", "RSCorp", null).toExternalForm();
System.setProperty("java.security.krb5.conf", kerbConf);
System.setProperty("java.security.auth.login.config", kerbContextConf);
try {
LoginContext lc = new LoginContext("primaryLoginContext", new UserNamePasswordCallbackHandler(username, password));
lc.login();
return new _NadexUser(lc.getSubject());
}
catch (javax.security.auth.login.LoginException le) {
throw new LoginException("Failed to login : " + le.getLocalizedMessage(), le);
}
}
'-Dsun.security.krb5.debug = true' I copiare e incollare questo numero sufficiente di volte, così ho pensato di fare un one-liner. –