Por favor que me ayude en una kerberos+Java problema. Tengo un simple programa de Java para autenticar a un Active Directory de Windows mediante el uso de Kerberos. El siguiente código de java funciona bien sin problemas y se imprime true-

public class KerberosAuthenticator {
    public static void main(String[] args) {
        String jaasConfigFilePath = "/myDir/jaas.conf";

        System.setProperty("java.security.auth.login.config", jaasConfigFilePath);

        System.setProperty("java.security.krb5.realm", "ENG.TEST.COM");
        System.setProperty("java.security.krb5.kdc","winsvr2003r2.eng.test.com");

        boolean success = auth.KerberosAuthenticator.authenticate("testprincipal", "testpass");

        System.out.println(success);
    }
}

Bue cuando me especificar la ruta de acceso a la krb5.conf archivo en lugar de tener que especificar manualmente el reino y el kdc, errores decía «Null nombre de su reino (601) – por defecto reino no especificado». El siguiente es el código-

public class KerberosAuthenticator {
    public static void main(String[] args) {
        String jaasConfigFilePath = "/myDir/jaas.conf";

        System.setProperty("java.security.auth.login.config", jaasConfigFilePath);

        String krb5ConfigFilePath = "/etc/krb5/krb5.conf";
        System.setProperty("java.security.krb5.conf", krb5ConfigFilePath);

        boolean success = auth.KerberosAuthenticator.authenticate("testprincipal", "testpass");

        System.out.println(success);
    }
}

El contenido de krb5.conf es la siguiente-

[libdefault]
 default_realm = ENG.TEST.COM

[realms]
 ENG.TEST.COM = {
  kdc = winsvr2003r2.eng.test.com
  kpasswd_server = winsvr2003r2.eng.test.com
  admin_server = winsvr2003r2.eng.test.com
  kpasswd_protocol = SET_CHANGE
 }

[domain_realm]
 .eng.test.com = ENG.TEST.COM
 eng.test.com = ENG.TEST.COM
[logging]
 default = FILE:/var/krb5/kdc.log
 kdc = FILE:/var/krb5/kdc.log
 kdc_rotate = {
  period = 1d
  versions = 10
 }

[appdefaults]
 kinit = {
 renewable = true
 forwardable = true
 }
No sé la respuesta a tu pregunta, pero si yo estuviera en sus zapatos, yo uso mi IDE del depurador de paso en la KerberosAuthenticator para determinar por qué no está recibiendo el valor predeterminado reino. Buena suerte!

OriginalEl autor Keshav | 2009-09-16

1 Comentario

  1. 18

    Su krb5.conf que está mal. Es [libdefaults], no [libdefault].

    OriginalEl autor ZZ Coder

Dejar respuesta

Please enter your comment!
Please enter your name here