Puede utilizar la misma cuenta de usuario para la autenticación en todos los nodos de un clúster. Para hacerlo, tiene que crear un archivo keytab que contenga el nombre de entidad de servicio (SPN) por cada uno de estos nodos. Al crear un archivo keytab, debe utilizar el atributo para generar una sal (modificador de la función de hash).
La sal generada se debe guardar mediante un método de su elección para añadir posteriormente nuevos SPN al archivo keytab.
También puede crear una cuenta de usuario de Active Directory distinta para cada nodo de clúster para el que desee configurar la autenticación Kerberos.
Antes de crear un archivo keytab
Antes de crear un archivo keytab, para cada SPN, asegúrese de que no esté registrado en Active Directory. Puede hacerlo ejecutando el siguiente comando: setspn -Q <SPN>
, donde <SPN>
tiene la siguiente estructura: HTTP/<nombre de dominio completo (FQDN) del nodo del clúster>@<nombre de dominio del dominio de Active Directory en mayúsculas>
.
El comando debe devolver "No such SPN found"
, lo que significa que el SPN en cuestión no está registrado. Si el SPN ya se ha registrado, antes de crear el archivo keytab, tiene que anular la asignación del SPN de la cuenta o eliminar la propia cuenta en el Active Directory al que se asignó este SPN.
Ejemplo de verificación de un SPN para un nodo Control y nodos Secundarios: setspn -Q HTTP/control-01.test.local@TEST.LOCAL setspn -Q HTTP/secondary-01.test.local@TEST.LOCAL setspn -Q HTTP/secondary-02.test.local@TEST.LOCAL |
La creación de un archivo keytab
El archivo keytab se crea en el servidor del controlador de dominio o en un equipo con Windows Server que forma parte del dominio, bajo una cuenta de administrador de dominio.
Para crear un archivo keytab utilizando una sola cuenta de usuario, haga lo siguiente:
control-usuario
.control-usuario
utilizando la herramienta ktpass. Para hacerlo, ejecute el siguiente comando en la línea de comandos:C:\Windows\system32\ktpass.exe -princ HTTP/<nombre de dominio completo (FQDN) del nodo de Control>@<nombre de dominio de Active Directory en mayúsculas> -mapuser control-user@<nombre de dominio de Active Directory en mayúsculas -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * +dumpsalt -out <ruta al archivo>\<nombre del archivo>.keytab
La herramienta le solicitará la contraseña de control-user
al ejecutar el comando.
El SPN del nodo con rol Control se añadirá al archivo keytab creado. Se muestra la sal generada: Hash de contraseña con sal "<valor hash>".
C:\Windows\system32\ktpass.exe -princ HTTP/<nombre de dominio completo (FQDN) del nodo>@<nombre de dominio de Active Directory en mayúsculas> -mapuser control-user@<nombre de dominio de Active Directory en mayúsculas> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in <ruta y nombre del archivo creado anteriormente>.keytab -out <ruta y nombre nuevo>.keytab -setupn -setpass -rawsalt "<<valor hash de la sal obtenida al crear el archivo keytab en el paso 3>"
La herramienta le solicitará la contraseña de control-user
al ejecutar el comando.
Se creará el archivo keytab. El archivo contendrá los SPN de los nodos de clúster.
Ejemplo: Por ejemplo, debe crear un archivo keytab que contenga los SPN de 3 nodos: Para crear un archivo llamado
Supongamos que tiene la sal Para añadir un SPN más, debe ejecutar el siguiente comando:
Para añadir un tercer SPN, debe ejecutar el siguiente comando:
Como resultado, se creará un archivo llamado |
Para crear un archivo keytab utilizando una cuenta de usuario distinta para cada nodo, haga lo siguiente:
control-usuario
, usuario-secundario1
, usuario-secundario2
, etc.).control-usuario
utilizando la herramienta ktpass. Para hacerlo, ejecute el siguiente comando en la línea de comandos:C:\Windows\system32\ktpass.exe -princ HTTP/<nombre de dominio completo (FQDN) del nodo de Control>@<nombre de dominio de Active Directory en mayúsculas> -mapuser control-user@<nombre de dominio de Active Directory en mayúsculas> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -out <ruta al archivo>\<nombre del archivo>.keytab
La herramienta le solicitará la contraseña de control-user
al ejecutar el comando.
El SPN del nodo con rol Control se añadirá al archivo keytab creado.
C:\Windows\system32\ktpass.exe -princ HTTP/<nombre de dominio completo (FQDN) del nodo>@<nombre de dominio de Active Directory en mayúsculas>> -mapuser secondary1-user@<nombre de dominio de Active Directory en mayúsculas>> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in <ruta y nombre del archivo creado anteriormente>.keytab -out <ruta y nombre nuevo>.keytab
La herramienta le solicitará la contraseña de secondary1-user
al ejecutar el comando.
Se creará el archivo keytab. El archivo contendrá los SPN de los nodos de clúster.
Ejemplo: Por ejemplo, debe crear un archivo keytab que contenga los SPN de 3 nodos: Para crear un archivo llamado
Para añadir un SPN más, debe ejecutar el siguiente comando:
Para añadir un tercer SPN, debe ejecutar el siguiente comando:
Como resultado, se creará un archivo llamado |
Después de crear un archivo keytab
Después de crear un archivo keytab, para cada SPN, asegúrese de que esté registrado y asignado a la cuenta correspondiente. Puede hacerlo ejecutando el siguiente comando: setspn -Q <SPN>
, donde <SPN>
tiene la siguiente estructura: HTTP/<nombre de dominio completo (FQDN) del nodo del clúster>@<nombre de dominio del dominio de Active Directory en mayúsculas>
.
El comando debe devolver "Existing SPN found"
y la cuenta a la que está asignado el SPN.
Además, después de crear un archivo keytab, puede verificar la lista de SPN asignados a la cuenta correspondiente. Para hacerlo, puede ejecutar el siguiente comando: setspn -L <cuenta>
, donde <cuenta>
tiene la siguiente estructura: <nombre de usuario>@<nombre del dominio de Active Directory en mayúsculas>
.
Si el archivo keytab se creó con una cuenta, el comando debería devolver una lista de todos los SPN para los que se creó el archivo keytab. Si el archivo keytab se creó con cuentas independientes para cada nodo, el comando debería devolver un SPN asignado a la cuenta específica.
Comando de ejemplo para una cuenta: setspn -L control-user@TEST.LOCAL Comando de ejemplo para cuentas distintas para cada nodo: setspn -L control-user@TEST.LOCAL setspn -L secondary1-user@TEST.LOCAL setspn -L secondary2-user@TEST.LOCAL |