Permisos: Inspeccionar los privilegios de sesión para facilitar la depuración

Hoy en día, puede beneficiarse de una poderosa funcionalidad para filtrar el acceso a los datos, que es esencial para evitar el acceso malicioso a su aplicación.

Esta funcionalidad utiliza privilegios que permiten determinadas acciones sobre sus datos. Estos privilegios son asignados a los usuarios a través de roles y almacenados en la sesión durante la autenticación.

En 4D 20R6, mejoramos esta funcionalidad permitiéndole inspeccionar los privilegios en la sesión, lo cual es muy útil para la depuración.

Siga leyendo para saber más.

HDI_GetPrivileges

a Nueva función getPrivileges() En el objeto Session

Veamos un ejemplo.

En el archivo roles.json, tenemos el privilegio medium que contiene el privilegio simple. El rol Medium contiene el privilegio medium.

{
 "privileges": [
  {
   "privilege": "simple",
   "includes": []
  },
  {
   "privilege": "medium",
   "includes": [
     "simple"
    ]
  }
 ],
 "roles": [
  {
   "role": "Medium",
   "privileges": [
    "medium"
   ]
  }
 ],
 "permissions": {
  "allowed": [] // Set up the allowed actions here
 }
}

En la clase Datastore, hay una función authentify() que asigna todos los privilegios del rol dado al objeto Session.

exposed Function authentify($role : Text) : Text
	
	Session.clearPrivileges()
	Session.setPrivileges({roles: $role})
	
	return "Authentication done with "+$role

En la clase Datastore, también se ha implementado una función getPrivileges(). Devuelve los privilegios en Session.

exposed Function getPrivileges() : Collection
	return Session.getPrivileges()

Si se llama a la función authentify() con el rol Medium, devuelve la función getPrivileges():

[
"simple",
"medium"
]

Nueva API RESt /$info/privilegEs

También hay una nueva API REST para obtener los privilegios en la sesión. La llamada a /$info/privileges en el ejemplo anterior también devuelve:

{
 "privileges": [
  {
  "privilege": "simple"
  },
  {
  "privilege": "medium"
  }
 ]
}

Esto facilita la depuración. Consulte la documentación para obtener más información.

Avatar
• Propietario de producto - Marie-Sophie Landrieu-Yvert ingresó al equipo de 4D Product como Propietario de producto en 2017. Como tal, está a cargo de escribir las historias de los usuarios y luego traducirlas en especificaciones funcionales. Su papel es también asegurarse de que la implementación de la funcionalidad entregada cumpla con las necesidades del cliente. Marie-Sophie se graduó en la Escuela de Ingeniería de ESIGELEC y comenzó su carrera como ingeniera en IBM en 1995. Participó en varios proyectos (de mantenimiento y creación) y trabajó como desarrolladora de Cobol. Luego trabajó como diseñadora de UML y desarrolladora de Java. Sus principales funciones fueron analizar y redactar requisitos funcionales, coordinar los equipos de negocio y de desarrollo.