Recuperando el valor secreto del usuario de dominio de Jboss/Wildfly

por | noviembre 5, 2016

Cuando utilizamos Jboss EAP o Wildfly en modo dominio, tendremos que haber creado previamente un usuario administrativo de dominio que utilizaremos para conectar el nodo esclavo (o nodos esclavos si tenemos más de uno) con el controlador de dominio maestro.

Vamos a reproducir ese paso inicial de creación de usuario como ejemplo para el resto del artículo. Llamaremos al usuario testuser y le pondremos como contraseña 1234Abcd?

Del proceso anterior quédate con el secret value del final, que en este caso es MTIzNEFiY2Q/

Posteriormente, para que el nodo o nodos esclavos conecten con el nodo maestro, tendremos que introducir ese valor dentro de server-identities en el fichero host.xml del nodo esclavo:

<management>
  <security-realms>
    <security-realm name="ManagementRealm">
      <server-identities>
          <secret value="MTIzNEFiY2Q/" />
      </server-identities>
      <authentication>
        <properties path="mgmt-users.properties" relative-to="jboss.domain.config.dir"/>
      </authentication>
    </security-realm>
    ...

Pongamos por caso que en el momento de creación del usuario no apuntamos el valor secreto generado a partir de la contraseña. Podríamos por una parte resetear la contraseña del usuario para volver a generar el valor secreto. Bastaría entonces con volver a ejecutar el script add-user e introducir el mismo nombre de usuario (testuser) para sobreescribir la entrada correspondiente del fichero mgmt-users.properties.

Por otro lado, tenemos también otra solución muy sencilla sin necesidad de resetear contraseñas. El valor secreto se calcula con una codificación en Base64 que podemos sacar fácilmente con OpenSSL. De esta manera, para recuperar el secret value con la contraseña que había puesto al principio bastaría hacer:

echo -n "1234Abcd?" | openssl enc -base64

Para muestra un botón:

😉