Autenticación Kerberos en Java: ¿la acción de "inicio de sesión" en Java equivale a "kinit"?

StackOverflow https://stackoverflow.com/questions/1037009

  •  10-07-2019
  •  | 
  •  

Pregunta

Estoy usando GSSAPI en Java para iniciar sesión en un servidor LDAP usando la autenticación Kerberos. Soy un novato en Kerberos, así que lo siento si esta es una pregunta obvia, pero no pude encontrar nada lo suficientemente claro en Internet.

Realizo los siguientes pasos:

  1. Defina la configuración de inicio de sesión estableciendo la propiedad del sistema " java.security.auth.login.config " en la ruta del archivo de configuración.
  2. Llame a LoginContext.login () con el nombre de la configuración y un controlador de devolución de llamada autodefinido
  3. En caso de que el inicio de sesión se haya realizado correctamente, " finge ser " el asunto (usando Subject.doAs () ) y conéctese al servidor LDAP creando un nuevo InitialLDAPContext con las variables de entorno apropiadas.

Ahora, mi problema es que no entiendo qué paso se correlaciona con qué acción kerberos. ¿Es correcto decir que después de la acción de inicio de sesión solo tengo un TGT? ¿Cuándo obtengo el boleto específico del servicio?

Gracias Dikla

¿Fue útil?

Solución

  

La clase com.sun.security.auth.module.Krb5LoginModule es la implementación de Sun de un módulo de inicio de sesión para el protocolo Kerberos versión 5. Tras una autenticación exitosa, el Ticket Granting Ticket (TGT) se almacena en el conjunto de credenciales privadas del sujeto y el principal Kerberos se almacena en el conjunto principal del sujeto.

(Tomado de aquí )

Esto significa que LoginContext.login es de hecho igual a kinit en que después de cada uno de ellos, tenemos un TGT.

El ticket de servicio se obtendrá y usará más tarde, de acuerdo con la acción realizada en Subject.doAs () .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top