Home > English > Application level Security – Part I (Background)

Application level Security – Part I (Background)

Over the next blog posts, I am going to be covering implementing security in an enterprise application. For this first post, I am going to define some user requirements of the application.

This will be a composite application. It will use Prism 2.0 in Silverlight. The application will have many modules that will represent corresponding lines of business. Using Prism and an application framework will allow defining solutions for some cross-cutting concerns. We can use these throughout all of the modules where necessary.

When the application starts, the first thing that will happen is the system will challenge the user to authenticate. Since we are using Prism, only two modules are downloaded at startup: the Shell module and the Security module. Once the user provides a valid username and password, the system will then obtain the roles and explicit permissions in which the user belongs. The menu is dynamically created. The menu is part of another module called, Navigation. The menu will only be created for screens that the user has been granted access.

The user may belong to a role that has several screens but if the user also has one of the screens as an explicit permission, then the explicit permission always wins over the role definition. This way we can have the ability to define general broad role definitions but then go back and override where necessary.

Once the menu has been created, the user can then click on any item in the menu since security has already been enforced at the authentication step.

The following table describes how the system will behave for each permission value when building the menu and interacting with the screen and toolbar:

Permission Description
Can Create? If true, then the Add New button’s Visibility property will be set to Visible; otherwise, the Visibility will be set to Collapsed.
Can Delete? If true, then the Delete button’s Visibility property will be set to Visible; otherwise, the Visibility will be set to Collapsed.
Can Read? If false, no menu is created for this screen. If you navigate from another screen, then a dialog is displayed with the following text, “Access to this option is not available to you at this time. Please see your Security Administrator.”
Can Write? If true, then the Save button’s Visibility property will be set to Visible; otherwise, the Visibility will be set to Collapsed. If false, no dirty checking will be enforced when trying to close the screen.

In the next post we will start taking a look at the database model necessary to implement this infrastructure.

Advertisements
Categories: English Tags: ,
  1. August 19, 2010 at 6:11 pm

    Here are some questions for you:

    How many times can the user enter an incorrect password before he is locked out of the system?

    Do continued attempts to use an incorrect password send an alert to a security console or generate an email to security personnel?

    If the same IP address is unsuccessfully attempting to log in using multiple user names and passwords, will the application block the offending IP address and/or the entire subnet?

    I’m not trying to give you a hard time. I think these are valid issues that need to be addressed with any application.

    • August 19, 2010 at 7:00 pm

      How many times can the user enter an incorrect password before he is locked out of the system? I would make that configurable for the administrator of the application. This will give me the flexibility to applies this across multiple projects.

      Do continued attempts to use an incorrect password send an alert to a security console or generate an email to security personnel? Yes, they would in essence send an alert via email as well as the security dashboard.

      If the same IP address is unsuccessfully attempting to log in using multiple user names and passwords, will the application block the offending IP address and/or the entire subnet? This is also configuration but most corporate applications would block all but the ip subnet or range that the security administrator specifies.

      Thanks for your reply and questions. These are all very important and should be addressed when dealing with security.

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: