Creación de un nombre principal del servicio Kerberos y un archivo de tabla de claves
Esta tarea es necesaria para procesar solicitudes web SPNEGO o de autenticación Kerberos en WebSphere Application Server. Puede crear un nombre de principal de servicio Kerberos y un archivo de tabla de claves utilizando los centros de distribución de claves (KDC) de sistemas operativos Microsoft Windows, IBM i, Linux, Solaris, Massachusetts Institute of Technology (MIT) y z/OS.
Acerca de esta tarea
Creación de un nombre principal del servicio Kerberos y un archivo de tabla de claves mediante un KDC de Microsoft Windows:
Esta tarea se lleva a cabo en la máquina del controlador de dominio de Active Directory. Complete los pasos siguientes para asegurarse de que Windows 2003 Servidor que está ejecutando el controlador de dominio de Active Directory se ha configurado correctamente con KDC (centro de distribución de claves).
- Cree una cuenta de usuario en
Microsoft
Active Directory para
WebSphere
Application Server.
Pulse Inicio -> Programas -> Herramientas administrativas -> Usuarios y sistemas de Active Directory.
Utilice el nombre de WebSphere Application Server. Por ejemplo, si el servidor de aplicaciones que está ejecutando en la máquina de WebSphere Application Server se denomina myappserver.austin.ibm.com, cree un usuario nuevo en Active Directory llamado myappserver.
Asegúrese de que no tiene el nombre de sistema myappserver en Sistemas y controladores de dominio. Si ya tiene el nombre de sistema myappserver, debe crear un nombre de cuenta de usuario diferente.- Pulse Inicio -> Programas -> Herramientas administrativas -> Usuarios y sistemas de Active Directory -> Sistemas.
- Pulse Programas -> Herramientas administrativas -> Usuarios y sistemas de Active Directory -> Controladores de dominio.
- Utilice el mandato setspn para correlacionar el nombre principal del servicio
Kerberos, <nombre_servicio>/<nombre_host_completo>, con una cuenta
de usuarios de
Microsoft.
El nombre de servicio para la autenticación web SPNEGO debe ser HTTP. Sin embargo, el nombre de servicio para la autenticación Kerberos puede ser cualquier serie admitida por KDC.
Un ejemplo del uso del mandato setspn para la autenticación Web SPNEGO es el siguiente:
C:\Program Files\Support Tools> setspn -A HTTP/myappserver.austin.ibm.com myappserver
Nota: El nombre de host debe ser un nombre completo.Importante: Asegúrese de que no tiene la misma correlación de SPN (Nombre principal de servicio) en más de una cuenta de usuario de Microsoft. Si correlaciona el mismo SPN con más de una cuenta de usuario, el cliente del navegador Web puede enviar una señal NTLM (NT LAN Manager) en lugar de una señal SPNEGO a WebSphere Application Server. - Cree el archivo de tabla de claves de Kerberos y póngalo a
disposición de
WebSphere
Application Server. Utilice la herramienta ktpass desde el kit de herramientas de
Windows
Server para crear el archivo de tabla de claves de Kerberos (krb5.keytab) para el SPN. Nota: Un archivo de tabla de claves de Kerberos contiene una lista de claves que son análogas a las contraseñas de usuario. Es importante que los hosts protejan sus archivos de tabla de claves de Kerberos almacenándolos en el disco local.
Utilice la herramienta ktpass desde el kit de herramientas de Windows Server para crear el archivo de la tabla de claves de Kerberos para el nombre principal del servicio (SPN). Utilice la última versión de la herramienta ktpass que coincida con el nivel de servidor Windows que esté utilizando. Por ejemplo, utilice la versión de Windows 2003 de la herramienta para un servidor Windows 2003.
Para determinar los valores de parámetros adecuados para la herramienta ktpass, ejecute el mandato ktpass -? desde la línea de mandatos. Este mandato lista si la herramienta ktpass, que corresponde al sistema operativo concreto, utiliza el valor de parámetro -crypto RC4-HMAC o -crypto RC4-HMAC-NT. Para evitar mensajes de aviso del kit de herramientas, debe especificar el valor de parámetro -ptype KRB5_NT_PRINCIPAL.
La versión de servidor Windows 2003 de la herramienta ktpass soporta el tipo de cifrado, RC4-HMAC, y el estándar de cifrados de datos (DES) único. Para obtener más información sobre la herramienta ktpass, consulte la publicación Windows 2003 Technical Reference - Ktpass overview.
El código siguiente muestra las funciones disponibles cuando especifica el mandato ktpass -? en la línea de mandatos. Esta información puede ser distinta en función de la versión del kit de herramientas que esté utilizando.C:\Archivos de programa\Support Tools>ktpass -? Opciones de la línea de mandatos: ---------------------argumentos más prácticos [- /] out : Tabla de claves a producir [- /] princ : Nombre principal (user@REALM) [- /] pass : Contraseña para utilizar utilice "*" para pedir la contraseña. [- +] rndPass : ... o utilice +rndPass para generar una contraseña aleatoria [- /] minPass : longitud mínima para contraseña aleatoria (def:15) [- /] maxPass : longitud máxima para contraseña aleatoria (def:256) ---------------------stuff menos práctico [- /] mapuser : corr princ a esta cuenta de usuario (valor predeterminado: no) [- /] mapOp : cómo establecer el atributo de correlación (por omisión: añadirlo) [- /] mapOp : es uno de los valores siguientes: [- /] mapOp : add : añadir valor (por omisión) [- /] mapOp : set : establecer valor [- +] DesOnly : Establecer cuenta para el cifrado sólo des (por omisión: no) [- /] in : Tabla de claves para leer/numeración ---------------------opciones para la generación de claves [- /] crypto : Sistema criptográfico para utilizar [- /] crypto : es uno de: [- /] crypto : DES-CBC-CRC : para compatibilidad [- /] crypto : DES-CBC-MD5 : para compatibilidad [- /] crypto : RC4-HMAC-NT : cifrado de 128 bits predeterminado [- /] ptype : tipo principal en cuestión [- /] ptype : es uno de: [- /] ptype : KRB5_NT_PRINCIPAL : El general ptype-- recomendado [- /] ptype : KRB5_NT_SRV_INST : instancia de servicio de usuario [- /] ptype : KRB5_NT_SRV_HST : instancia de servicio host [- /] kvno : Alterar temporalmente el número de versión de la clave Por omisión: consultar DC para kvno. Usar /kvno 1 para Win2K compat. [- +] Answer : +Answer responde YES cuando se le pregunta. -Answer responde NO. [- /] Target : Que DC se va a utilizar. Por omisión: detectar ---------------------opciones para atributos de confianza (Windows Server 2003 Sólo Sp1 [- /] MitRealmName : Reino MIT en el que se desea habilitar la confianza RC4. [- /] TrustEncryp : Cifrado de confianza a utilizar; DES es el valor predeterminado [- /] TrustEncryp : es uno de: [- /] TrustEncryp : RC4 : Confía en reino RC4 (valor predeterminado) [- /] TrustEncryp : DES : volver a DES
Importante: No utilice el conmutador -pass en el mandato ktpass para restaurar una contraseña para un cuenta de Microsoft Windows Server.Para obtener más información, consulte la publicación, Windows 2003 Technical Reference - Ktpass overview.En función del tipo de cifrado, utilice la herramienta ktpass en una de las siguientes formas para crear el archivo de tabla de claves de Kerberos. En la siguiente sección se muestran los distintos tipos de cifrado que utiliza la herramienta ktpass. Es importante ejecutar el mandato ktpass -? para determinar qué valor de parámetro -crypto espera el kit de herramientas concreto de su entorno Microsoft Windows.- Tipo de cifrado DES único:En un indicador de mandatos, ejecute el mandato ktpass:
ktpass -out c:\temp\myappserver.keytab -princ HTTP/myappserver.austin.ibm.com@WSSEC.AUSTIN.IBM.COM -mapUser myappserv -mapOp set -pass was1edu -crypto DES-CBC-MD5 -pType KRB5_NT_PRINCIPAL +DesOnly
Tabla 1. Uso de ktpass para un tipo de cifrado DES único. En esta tabla se describe cómo utilizar ktpass para un tipo de cifrado DES único.
Opción Explicación -out c:\temp\myappserver.keytab La clave se escribe en el archivo de salida. -princ HTTP/myappserver.austin.ibm.com@WSSEC.AUSTIN.IBM.COM La concatenación del nombre de inicio de sesión del usuario y el reino deben aparecer en mayúsculas. -mapUser La clave se correlaciona con el usuario, myappserver. -mapOp Esta opción establece la correlación. -pass was1edu Esta opción es la contraseña para el ID de usuario. -crypto DES-CBC-MD5 Esta opción utiliza el tipo de cifrado DES único. -pType KRB5_NT_PRINCIPAL Esta opción especifica el valor principal de KRB5_NT_PRINCIPAL. Especifique esta opción para evitar mensajes de aviso de kit de herramientas. +DesOnly Esta opción genera únicamente cifrados DES. - Tipo de cifrado RC4-HMAC:Importante: El cifrado RC4-HMAC sólo está soportado si se utiliza un Windows 2003 Server como KDC.En un indicador de mandatos, ejecute el mandato ktpass.
ktpass -out c:\temp\myappserver.keytab -princ HTTP/myappserver.austin.ibm.com@WSSEC.AUSTIN.IBM.COM -mapUser myappserver -mapOp set –pass was1edu -crypto RC4-HMAC -pType KRB5_NT_PRINCIPAL
Tabla 2. Uso de ktpass para el tipo de cifrado RC4-HMAC Opción Explicación -out c:\temp\myappserver.keytab La clave se escribe en el archivo de salida. -princ HTTP/myappserver.austin.ibm.com@WSSEC.AUSTIN.IBM.COM La concatenación del nombre de inicio de sesión del usuario y el reino deben aparecer en mayúsculas. -mapUser La clave se correlaciona con el usuario, myappserver. -mapOp Esta opción establece la correlación. -pass was1edu Esta opción es la contraseña para el ID de usuario. -crypto RC4-HMAC Esta opción selecciona el tipo de cifrado RC4-HMAC. -pType KRB5_NT_PRINCIPAL Esta opción especifica el valor principal de KRB5_NT_PRINCIPAL. Especifique esta opción para evitar mensajes de aviso de kit de herramientas. - Para el tipo de cifrado RC4-HMAC-NTEn un indicador de mandatos, ejecute el mandato ktpass.
ktpass -out c:\temp\myappserver.keytab -princ HTTP/myappserver.austin.ibm.com@WSSEC.AUSTIN.IBM.COM -mapUser myappserver -mapOp set -pass was1edu -crypto RC4-HMAC-NT -pType KRB5_NT_PRINCIPAL
El archivo de la tabla de claves de Kerberos se crea para su uso con SPNEGO.Tabla 3. Uso de ktpass para el tipo de cifrado RC4-HMAC-NT Opción Explicación -out c:\temp\myappserver.keytab La clave se escribe en el archivo de salida. -princ HTTP/myappserver.austin.ibm.com@WSSEC.AUSTIN.IBM.COM La concatenación del nombre de inicio de sesión del usuario y el reino deben aparecer en mayúsculas. -mapUser La clave se correlaciona con el usuario, myappserver. -mapOp Esta opción establece la correlación. -pass was1edu Esta opción es la contraseña para el ID de usuario. -crypto RC4-HMAC-NT Esta opción selecciona el tipo de cifrado RC4-HMAC-NT. -pType KRB5_NT_PRINCIPAL Esta opción especifica el valor principal de KRB5_NT_PRINCIPAL. Especifique esta opción para evitar mensajes de aviso de kit de herramientas.
- Tipo de cifrado DES único:
Creación de un nombre principal del servicio Kerberos y un archivo de tabla de claves mediante KDC de iSeries, Linux, Solaris y MIT:
Consulte los documentos de implementación de Kerberos para los mandatos kadmin, kadmin.local addprinc y ktadd para obtener más información detallada.
Esta tarea se realiza en una máquina KDC de Linux, Solaris o MIT.
- Cree un principal del servicio Kerberos para la autenticación Kerberos, por ejemplo:
WAS/testmach.austin.ibm.com kadmin.local: addprinc WAS/testmach.austin.ibm.com
- Añada el principal del servicio Kerberos recién creado,
WAS/testmach.austin.ibm.com al archivo krb5.keytab
predeterminado, por ejemplo:
kadmin.local: ktadd WAS/testmach.austin.ibm.com
Creación de un nombre principal del servicio Kerberos y un archivo de tabla de claves mediante un KDC de z/OS:
Antes de utilizar la autenticación Kerberos y la autenticación Web SPNEGO (Simple and Protected GSS-API Negotiation), el administrador de WebSphere Application Server primero debe crear un archivo de tabla de claves de Kerberos en el host que ejecuta WebSphere Application Server.
Para crear un SPN, siga estos pasos:
- La identidad (KERBNAME) de Kerberos debe tener el formato <servicio>/<nombre de sistema completo>.
- El siguiente ejemplo crea el SPN de Kerberos para Web SPNEGO,
HTTP/host1.pok.ibm.com:
ALTUSER ASCR1 KERB(KERBNAME(HTTP/host1.pok.ibm.com))
Avoid trouble: Debe asegurarse de que la lista de tipos de cifrado soportados especificado en el mandato ALTUSER es coherente con lo que se especifica en el archivo de configuración de kerberos krb5.conf. Por ejemplo, si en el archivo de configuración krb5.conf se especifica que sólo se da soporte a aes256-cts-hmac-sha1-96, el operando ENCRYPT debe tener todos los tipos de cifrado establecidos como no soportados, excepto AES256.gotcha
- Genere la clave Kerberos para este usuario. Para generar esta
clave, se debe asociar una contraseña con este identificador. No utilice este ID para iniciar una sesión en el sistema. Especifique las siguientes dos
líneas siempre que se solicite una nueva clave Kerberos.Nota: El administrador de WebSphere o KDC debe conocer esta contraseña para crear una entrada en el archivo de tabla de claves.
ALTUSER ASCR1 PASSWORD(was1krb) NOEXPIRED ALTUSER ASCR1 NOPASSWORD
- Verifique que este usuario tenga una clave y un segmento Kerberos válidos, por
ejemplo:
LISTUSER ASCR1 KERB NORACF USER=ASCR1 KERB INFORMATION ---------------- KERBNAME= HTTP/host1.pok.ibm.com KEY VERSION= 001 KEY ENCRYPTION TYPE= DES NODES3 NODESD
Para crear un archivo (krb5.keytab) de tabla de claves Kerberos, utilice el mandato ktab de Kerberos de Java™, <$WAS_HOME>/java/bin/ktab, y siga estos pasos:
- En una línea de mandatos, escriba el mandato ktab –help
para conocer el uso adecuado de este mandato. Por ejemplo:
(host1)CTC03:/PYRSA1/usr/lpp/zWebSphere/V7R1/java/J5.0/bin(189):>ktab -help Uso: java com.ibm.security.krb5.internal.tools.Ktab [opciones] Opciones disponibles: -l listar las entradas y el nombre de tabla de claves -a <nombre_principal> [contraseña] añade una entrada a la tabla de claves -d <nombre_principal> suprime una entrada de la tabla de claves -k <nombre_tabla_claves> especifica un nombre de tabl. claves y vía acceso con prefijo FILE: -m <nombre_archivo_claves_origen> <nombre_archivo_claves_destino> especifica la fusión del nombre de archivo de tabla de claves de origen y el nombre de archivo de tabla de claves de destino
- Desde una línea de mandatos, utilice el mandato ktab para añadir el SPN a un archivo de tabla de claves predeterminado, por ejemplo:
(host1)CTC03:/PYRSA1/usr/lpp/zWebSphere/V7R1/java/J5.0/bin(201):>ktab -a HTTP/host1.pok.ibm.com@LSREALM.POK.IBM.COM ot56prod Done! Service key for principal HTTP/host1.pok.ibm.com@LSREALM.POK.IBM.COM saved
- Verifique que el SPN correcto esté en el archivo de tabla de claves predeterminado,
por ejemplo:
(host1)CTC03:/PYRSA1/usr/lpp/zWebSphere/V7R1/java/J5.0/bin(202):>ktab 1 entrada en la tabla de claves, nombre: /etc/skrb/krb5.keytab KVNO Principal ---- --------- 1 HTTP/host1.pok.ibm.com@LSREALM.POK.IBM.COM
ftp> bin
ftp> put c:\temp\KRB5_NT_SEV_HST\krb5.keytab
wsadmin>$AdminTask help validateKrbConfig
Sin embargo, esto no se cumple si tiene instalado el JDK 1.6 con SR3.
Resultados
Ha creado un nombre principal del servicio Kerberos y un archivo de tabla de claves en el KDC que WebSphere Application Server utiliza para procesar SPNEGO y las solicitudes de autenticación Kerberos.