Descripción del Role-Based SecurityDescripción
El StrataFrame Role-Based Security provee una conveniente, todavía extremamente profunda metodología de seguridad
incorporada al nivel de base de su aplicación. El objetivo final de cualquier sistema de seguridad es evitar una
abertura en áreas no autorizadas de la aplicación desde todos los puntos de la interfaz del usuario. Muchos
desarrolladores de aplicaciones hacen frente con la ardua tarea de diseñar e implementar un sistema de seguridad que
resida en el topo de un framework existente.
La seguridad dentro del StrataFrame es dirigida al más elemental nivel del framework. Esto permite al desarrollador
fijar las reglas de seguridad con objetos de negocios asociados y controles de la UI.
Aplicación de Seguridad al Usuario Final Incluida
El StrataFrame Role-Based Security también proporciona al desarrollador una Aplicación de Seguridad robusta para el
desarrollo y mantenimiento de las preferencias globales de seguridad, permisos, niveles y usuarios. La Aplicación de
Seguridad se puede incorporar y distribuir con sus propias aplicaciones con la
licencia de ejecución libre de derechos.
Ayuda Técnica y al Usuario
El Role-Based Security es también distribuido con la Ayuda Técnica para que sea utilizada por el desarrollador para la
implementación dentro de su aplicación y con la Ayuda al Usuario que explica la Aplicación de Seguridad hacia el
usuario final. Por supuesto, la Ayuda al Usuario se puede distribuir con la ejecución libre de derechos.
Preferencias GlobalesDescripción de las Preferencias Las preferencias globales son utilizadas para hacer cumplir las restricciones universales dentro del sistema de
seguridad. Con la excepción de la expiración de la contraseña y de los cierres de sesiones, los valores no se pueden
eliminar. Las preferencias existen para controlar la solidez y la política de la contraseña, normas de entrada en el
sistema y cerraduras de sesión.
Por ejemplo, la longitud máxima y mínima de la contraseña, el tiempo mínimo entre los cambios de las contraseñas, la
validad máxima de la contraseña y señales para contraseñas complejas son algunas de las propiedades asociadas con las
preferencias globales.
Complejidad de la Contraseña Los requisitos para una contraseña compleja siguen de cerca los requisitos definidos por Microsoft® para una
contraseña compleja dentro del sistema Windows® 2003.
Las especificaciones exactas para una contraseña compleja son: - La contraseña debe tener por lo menos seis caracteres de largo.
- La contraseña debe contener caracteres por lo menos desde tres de las cinco siguientes categorías:
- Caracteres en mayúscula en inglés (A – Z)
- Caracteres en minúscula en inglés (a – z)
- Base de 10 dígitos (0 – 9)
- Caracteres no alfanuméricos o símbolos (por ejemplo: !, $, #, %, etc.)
- Caracteres de Unicode
- La contraseña no puede tener tres o más caracteres consecutivos desde una palabra que esté en el nombre de la
cuenta del usuario. Por ejemplo, si el nombre de la cuenta es “Roberto M. Dutra”, una contraseña no podrá satisfacer los
requisitos mínimos de complejidad si cualquier una de las siguientes combinaciones estuvieren contenidas dentro de la
contraseña: "rob", "ber", "dut", etc.
Entrada en el Sistema y Sesiones Las preferencias también contienen los escenarios para la entrada en el sistema del usuario y la cerradura por
inactividad de la sesión. Un intervalo de entrada de la contraseña se puede establecer para especificar la cantidad de
tiempo que un usuario debe esperar después de un intento de entrada inválido antes que él/ella sean permitidos a entrar
nuevamente. Esta metodología desalienta programas automatizados diseñados para sustraer las contraseñas del sistema.
La cerradura por inactividad de sesión permite al usuario establecer la cantidad de tiempo de inactividad antes que la
sesión sea cerrada y que el usuario tenga que revalidarla antes de seguir utilizando la aplicación. Esta característica
es muy útil para aplicaciones donde la estación de trabajo del usuario está localizada en un área de acceso público.
Si utilizada, esta opción irá ocultar cualquier formulario de aplicación activa cuando la sesión sea cerrada; así,
impidiendo acceso o visualización no autorizados.
PermisosDescripción de los Permisos Los recursos dentro de la aplicación (formulario, módulo, objeto de negocio) asignaran una permisión. Esta
permisión es requerida para acceder o manipular ese recurso dentro de la aplicación. La permisión es entonces
garantizada o negada hacia un nivel específico y los usuarios indican si los usuarios tienen derecho a acceder o
manipular ese recurso.
Las permisiones disponibles dependen de la aplicación y son asignadas por el software desarrollador y no se pueden
crear o modificar fuera del ambiente de desarrollo. Típicamente, una permisión es binaria: si tienes una permisión
particular o si no la tienes; sin embargo, cualquier permiso se puede configurar para permitir también acceso para
solamente lectura.
Como los Permisos son Utilizados Típicamente, las permisiones son divididas en una de las siguientes categorías:- Permisión al Nivel de Formulario – El acceso hacia los formularios son tanto garantizados como negados.
- Permisión al Nivel de Tabla
- Tabla-Nivel Adicionar – Un usuario puede adicionar un registro a una tabla.
- Tabla-Nivel Modificar – Un usuario puede modificar un registro dentro de una tabla.
- Tabla-Nivel Eliminar – Un usuario puede eliminar un registro vía el formulario.
- Permisión al Nivel del Campo – Acceso hacia un campo que se pueda especificar como modificable, solamente lectura
o negado.
Ni todos los niveles de permisiones son requeridos para existir a todos los formularios, por lo tanto, no es necesario,
ni siquiera, tampoco práctico, para una permisión existir para cada tipo de evento que exista dentro de una aplicación.
Por ejemplo, para ciertos formularios de mantenimiento dentro de la aplicación, solamente es necesaria una única
permisión a se asignar para negar el acceso para el formulario de mantenimiento por si mismo. Los niveles más
granulares no son requeridos. Por otra parte, si un formulario contiene información sensible y ni todos los usuarios
deberían tener permisión para visualizar o modificar, el desarrollador puede forzar la seguridad para esa parte de la
aplicación para ser más detallado, asignando una permisión separada para varios campos distintos dentro de una tabla
única. Acciones de los Permisos Varias acciones están disponibles cuando una permisión es rechazada en el tiempo de ejecución. Obviamente,
estas acciones son establecidas por el desarrollador basado en las necesidades de la función de la aplicación. Estas
acciones son:
Sin Mensaje - Esta opción es utilizada cuando no es necesario que un mensaje
sea visualizado por el usuario final. Por ejemplo:
- Acceso Programático - Esta opción debe ser utilizada para acceso
programático cuando la intervención del usuario no sea necesaria.
- Nivel de Campo - Si esto se fija para un campo y su acceso es negado, el
usuario no estará habilitado a visualizar los contenidos del campo (será blanco). Los datos reales que están
vinculados al campo no son cambiados, solamente su estado de visualización.
Mensaje - El mensaje introducido en la casilla de texto Mensaje o Llave será
mostrado al usuario final. Llave de Mensaje - La llave de mensaje introducida en la casilla de texto
Mensaje o Llave será buscada y su texto correspondiente será mostrado al usuario final. Sustituir cada Carácter - Esta selección es la misma que la selección “No
Message”, la única diferencia existente es que en vez de visualizar los blancos existentes, el carácter “X” será
utilizado para sustituir los contenidos de los campos. Otra vez, solamente el estado de visualización es cambiado con
esta selección, los datos reales están intactos.
Los Niveles (Roles)Descripción de los Niveles En el Role-Based Security, los permisos son asociados a los niveles. Los usuarios entonces son hechos miembros de
los niveles, de tal modo adquiriendo los permisos asociados. El propósito del nivel es agrupar tareas como enfermeras,
doctores o vendedores de seguros juntos, ayudando de tal modo dirigir los usuarios y controlar el acceso a las
funciones de la aplicación.
El trabajo de un permiso hacia un nivel es una simple función binaria: los permisos son asignados para permitir el
acceso y se quedan sin asignar para negar el acceso. Además, un nivel se puede controlar en un nivel más detallado con
acciones, auditoría y sus restricciones de utilización. El objetivo de un sistema de seguridad basado en niveles es
administrar el predominio de los derechos de acceso al nivel de grupo verdadero y solamente anular los permisos al
nivel del usuario cuando necesario.
UsuariosDescripción de los Usuarios El propósito de cualquier sistema de seguridad es controlar el acceso de los usuarios. Un sistema bien diseñado
ayuda el administrador de la aplicación cuando esté configurando verdaderamente los derechos de acceso del usuario.
Como anteriormente declarado, el objetivo de un sistema de seguridad basado en grupos es administrar el predominio de
los derechos de acceso al nivel verdadero del grupo y solamente anular los permisos al nivel del usuario cuando
necesario.
Esta técnica permite que cambios sean hechos en un nivel global, el grupo real y en última instancia heredado del nivel
individual del usuario. Sin embargo, es importante estar apto a controlar detalladamente cualquier usuario sin
reflectar en los grupos o en los otros usuarios. Este sistema está diseñado para incorporar el control necesario y
acceso al usuario final.
Sumándose al nombre del usuario e informaciones de la contraseña, varias propiedades permiten flexibilidad en el
sistema de seguridad. Puedes elegir desactivar la cuenta del usuario después de una data particular, hacer del usuario
un Administrador o elegir utilizarse de la autenticación del Windows para la cuenta del usuario. El tiempo de espera
de la sesión puede también se establecer al nivel del usuario.
Ajuste de RestricciónDescripción de los Ajustes de Restricción Un Ajuste de Restricción es utilizado para crear una regla global de acceso al usuario en lo que están comprendidos
los días de la semana, horario del día, estación de trabajo y acción. Un Ajuste de Restricción es utilizado para
habilitar o inhibir el acceso del usuario dependiendo de la acción (conceder, denegar o solo leer). En varias
aplicaciones, el usuario puede ser limitado al tiempo y posiblemente a la estación de trabajo en la cual él/ella
normalmente ocupe.
Esta característica ayuda a evitar el compartir de contraseña (o robo) en un ajuste de una aplicación. Desde que la
mayoría de los controles y auditoría de una aplicación comience y termine con el sistema de seguridad, los ajustes de
restricciones permiten hacer cumplir, en una base detallada, pertenecer al tiempo y a la estación de trabajo.
Incorporando Seguridad a sus Aplicaciones
Incorporando el Role Based Security a su aplicación se hace más fácil utilizar el sistema de seguridad de StrataFrame.
Utilizando un enfoque detallado, la seguridad se puede incrustar en cada área de su aplicación. Como anteriormente
mencionado, la Aplicación de Seguridad está lista para utilizarse e instalarse en los sitios de su usuario, así, mucho
del código ya está hecho. La interfaz programática es hecha simple también.
Llaves de Seguridad Las llaves de seguridad son los elementos básicos de seguridad que te permiten personalizar e incrustar
seguridad a su aplicación. Fácilmente establecida vía el Security Key Type Editor, las llaves de seguridad se pueden
crear y mantenerse para todos elementos estimados como necesarios por el desarrollador. Por ejemplo, una llave de
seguridad se puede establecer para cada formulario con restricciones de derechos de acceso. Otra llave de seguridad se
puede establecer para un objeto de negocio, detallando si el usuario tiene acceso al objeto de negocio y si ese es el
caso, si ellos han creado, modificado o visualizado privilegios.
Otro tipo de llave de seguridad puede reflectar los derechos de acceso a los campos dentro del objeto de negocio. Esto
permite que campos de datos sensibles sean limitados para modificación o visualización basados en los grupos y
privilegios de usuario. Este enfoque permite al desarrollador decidir el nivel de seguridad necesario para todas las
áreas de la aplicación.
Acceso Programático
Todos los métodos y clases son fácilmente incorporados a las aplicaciones del StrataFrame, desde que ellos existan en
el nivel jerárquico más básico. Esto hace la incorporación del Role-Based Security completa en apariencia hacia el
usuario final de su aplicación. El siguiente muestra algunos ejemplos de como incorporar acciones particulares de
seguridad y características dentro de su aplicación.
Mostrar el Formulario Inicial de Entrada al Sistema Mostrar el formulario inicial de entrada dentro de una aplicación StrataFrame es consumado a través de la
clase MicroFour.StrataFrame.Security.Login. Esta clase tiene una propiedad LoginFormType que acepta el System.Type del
formulario que será mostrado como el formulario de entrada. Este tipo de formulario está predeterminado al
MicroFour.StrataFrame.Security.LoginForm y se puede establecer para cualquier formulario de entrada personalizado que
pone en práctica la interfaz MicroFour.StrataFrame.Security.ILoginForm. Un formulario de entrada personalizado también
se puede crear e incorporar a la aplicación de seguridad.
Una vez que el LoginFormType sea establecido (o mantenido el valor predeterminado), puedes llamar el método
Login.ShowLoginAndAuthUser() para visualizar el formulario de entrada y autenticar un usuario en el sistema. El método
irá retornar un valor “Boolean” indicando si el usuario final fue autenticado o si el ha cancelado el formulario y la
aplicación deberá cerrarse.
A seguir tenemos una muestra del código (Visual Basic and C#) para utilizar el formulario Logon. Aunque no incluido en
este documento, las muestras para todos los elementos del StrataFrame Role-Based Security son similares en su
utilización y estructura. El método ShowLoginAndInitMainForm() dentro del archivo AppMain.vb (Program.cs) es proveído
para dar un local para mostrar el formulario inicial de entrada para la aplicación.
Imports MicroFour.StrataFrame.Security.BusinessObjects
...
Private Shared Sub ShowLoginAndInitMainForm( _
ByVal e As ShowLoginAndInitFormEventArgs)
'-- Ajuste el tipo de formulario de entrada hacia el tipo de formulario apropiado (opcional)
Login.LoginFormType = GetType(MyLoginForm)
'-- Visualice el formulario de entrada y ajuste el valor a ser retornado hacia e.ShowMainForm
' El valor “True” pasado hacia el método dice al método para permitir al
' usuario final cancelar el formulario de entrada que retornará “False”
' desde el método.
e.ShowMainForm = Login.ShowLoginAndAuthUser(True)
End Sub Muestra - Mostrar el Formulario Inicial de Entrada [C#] utilizando MicroFour.StrataFrame.Security;
...
private static void ShowLoginAndInitMainForm(ShowLoginAndInitFormEventArgs e)
{
//-- Ajuste el tipo de formulario de entrada hacia el tipo de formulario apropiado (opcional)
Login.LoginFormType = typeof(MyLoginForm);
//-- Muestra el formulario de entrada y ajusta el valor de retorno para e.ShowMainForm
// El valor “True” pasado hacia el método dice al método para permitir al
// usuario final cancelar el formulario de entrada que retornará “False”
// desde el método.
e.ShowMainForm = Login.ShowLoginAndAuthUser(true);
} Recuperando Preferencias Globales Desde la Base de Datos Un método compartido (estático) es proporcionado para recuperar preferencias globales desde la base de datos.
Ejecutándose el MicroFour.StrataFrame.Security.BusinessObjects.SFSPreferencesBO.RetrieveSecurityPreferences() se
recuperan las preferencias desde la tabla SFSPreferences en la base de datos y puebla las propiedades en la clase
SecurityBasic. Por ejemplo, la propiedad "SessionTimeout" irá contener el tiempo predeterminado que una sesión de un
usuario puede permanecer inactiva antes que la sesión expire y sea cerrada.
Especificando la Llave de Cifración para los Datos del Usuario Los datos del usuario son almacenados dentro de la tabla de base de datos SFSUsers utilizando cifración 3DES.
La llave para la cifración 3DES es especificada utilizando el método
SecurityBasics.SetSecurityKeyAndVectorForUserAuthentication(). Este método crea una serie de números (hash) de la
llave dada y la utiliza en el System.Byte[] que se utiliza para la llave de cifración y para el vector de
inicialización del algoritmo 3DES. Aunque los datos sean almacenados en bases de datos estándar, esta metodología
asegura que eses detalles de seguridad no estarán traicionados. Accediendo Permisos Programáticamente
El MicroFour.StrataFrame.Security.SecurityBasics.CurrentUser contiene el método GetPermission() que es utilizado para
programáticamente recuperar el PermissionInfo para una llave de permiso dada. El método acepta un único parámetro de
secuencia lo que indica la llave de permiso la cual quieres recuperar al PermissionInfo. Una vez que la información
del permiso sea recuperada, puedes determinar la acción que deberá ser llevada a cabo. Muestra – GetPermission() [Visual Basic] Importe MicroFour.StrataFrame.Security
...
Private Sub CheckMyPermission()
'-- Recupere el permiso y lo teste
If SecurityBasics.CurrentUser.GetPermission("MyPerm").Action = _
PermissionAction.Grant Then
'-- Active el control
Button1.Enabled = True
Else
'-- Desactive el control
Button1.Enabled = False
End If
End Sub Muestra – GetPermission() [C#] using MicroFour.StrataFrame.Security;
...
private void CheckMyPermission()
{
//-- Recupere el permiso y lo teste
if (SecurityBasics.CurrentUser.GetPermission(@"MyPerm").Action ==
PermissionAction.Grant)
{
//-- Active el control
Button1.Enabled = true;
}
else
{
//-- Desactive el control
Button1.Enabled = false;
}
}
Localización (ATENÇÃO: na foto em portugues "mensagem está escrito com SS")Ejecuciones Pre-Localizadas La aplicación Role-Based Security del StrataFrame se pude localizar para cualquier idioma. Actualmente, los ajustes
de localización fueron creados para inglés, español, portugués, alemán, francés, italiano y ruso. Los objetos de las
aplicaciones, incluyendo formularios, etiquetas, casillas de texto y listas se pueden todos localizar para uno de los
siete ajustes de idiomas.
Todos los mensajes de los usuarios también son localizados hacia el idioma pertinente. Esto permite que los
desarrolladores incrusten la aplicación de seguridad en sus aplicaciones para distribuir a los usuarios finales.
|