Solución a error Access Provider Error. Status 403 – forbidden en JBoss (Wildfly)

Published:

Solución a error Access Provider Error. Status 403 – forbidden. Pero para poder resolver por donde puede venir el problema es necesario entender el error que se muestra, así que veamos como podemos intentar solucionarlo. En mi caso era un problema con los roles, así que me pareció buena idea entender un poco más en profundidad el asunto.

¿Qué es RBAC?

El control de acceso basado en roles está diseñado para restringir el acceso al sistema mediante la especificación de permisos para los usuarios de administración. A cada usuario con acceso de administración se le asigna un rol y ese rol define lo que puede y lo que no puede acceder.

En EAP 6.2+ y Wildfly 8+ hay siete roles predefinidos, cada uno de los cuales tiene diferentes permisos. Los detalles sobre cada uno de los roles se pueden encontrar aquí:
Para autenticar a los usuarios, se debe utilizar uno de los tres proveedores de autenticación estándar. Estos son:
  • Usuario local: el usuario local se agrega automáticamente como superusuario para que un usuario en la máquina servidor tenga acceso completo. Este usuario debe eliminarse en un sistema de producción y el acceso debe bloquearse a los usuarios designados.
  • Nombre de usuario/contraseña: utilizando el archivo mgmt-users.properties o un servidor LDAP.
  • Certificado de cliente: uso de un almacén de confianza.
Para los propósitos de este blog y para simplificar las cosas, usaremos el nombre de usuario/contraseñas y el archivo mgmt-users.properties.

¿Por qué necesitamos RBAC?

La forma más sencilla de demostrarlo es mediante una demostración práctica.

La configuración se puede realizar a través de la Consola de administración o mediante la Interfaz de línea de comandos (CLI). Sin embargo, solo se puede realizar un conjunto limitado de tareas a través de la consola de administración, mientras que todas las tareas están disponibles a través de la CLI. Por lo tanto, para los propósitos de este blog, haré toda la configuración a través de la CLI.

Vamos a iniciar jboss en el modo terminal:
<DIR_INSTALACIÓN_JBOSS> /bin/jboss-cli.sh -c

Y ahora lanzamos los siguientes comandos para iniciar en RBAC

cd /core-service=management/access=authorization
:write-attribute(name=provider, value=rbac)

Asignamos los roles, donde debemos ajustar solo el nombre de usuario, mi caso es nk1.

./role-mapping=SuperUser/include=user-nk1:add(name=nk1, type=USER)

Para este ejemplo ya lo había asignado por eso el failed, pero haciendo esto fue suficiente para reparar el problema y poder ingresar por la interface web. Y después de lanzar los comandos solo queda reiniciar los servicios afectados

systemctl restart wildfly.service && systemctl restart daemon-reload
- Advertisement -
Jorge
Jorgehttps://nksistemas.com
Soy Jorge, Sr Sysadmin Linux/DevOps/SRE y creador de NKSistemas.com Trabajo con plataformas: Linux, Windows, AWS, GCP, VMware, Helm, kubernetes, Docker, etc.

Related articles