Single sign-on
|
Copyright 2008-2010 ManyDesigns srl. All rights reserved.
PurposeSingle sign-on allows you to delegate authentication and authorization to a common infrastructure specifically designed for this purpose, such as an LDAP server.In this way, you can centralize and avoid duplication of security information and functionality. Generally, when you start a new application, you develop it using local authentication. This means using user management and permissions as described in previous chapters. Then, A note on the terminology: in single sign-on, "role" is a synonym of "user group". Configuring PortofinoStep 1: Configure the role (user group) for all usersSingle sign-on administrators often configure a role for all the users who can access a certain application. Find out what that role is. For example let's suppose your application is called myapp and that the role is myapp-users. If your single sign-on does not a role like te one described, you may use the role for the generic user (e.g., all-users). Start ManyDesigns Portofino without single sign-on. Log in at the upstairs level. Click on the Meta user groups tab and click on the object called Users. Edit its name to match the aforementioned role (myapp in the example). Step 2: Configure the deployment descriptor Edit the WEB-INF/web.xml file. Locate the following xml elements:
Locate the following elements:
Step 3: Configure the properties file Edit or add the following line in portofino-custom.properties: security.type=container
This instructs to start using the container-manged security. See the servlet API documentation for the technical details. Configuring the application serverHere is a list of external documentation that can help you configure your specific application server.Apache Tomcat 6.0:
Oracle OC4J and OracleAS: JBoss: Alignment between single sign-on and the local databaseUsersUsers are automatically aligned, on demand, from the single sign-on to the local database.Any time a user successfully logs in through single sign-on, Portofino checks if a corresponding object exists in the User class. If not, it creates one, setting the login field to the login/username provided by the single sign-on. If a user is on the local database but not on the single sign-on, the user is not allowed to log in. Roles/user groupsRoles are not automatically aligned, i.e., no roles are created on the local database based on roles provided by the single sign-on.Make sure the local user groups (as meta user groups upstairs, or user groups downstairs) are properly configured. There are three situations:
You can have a mix of situation 2 and 3. Situation 2 is useful for coarser-grained roles, situation 3 for finer-grained ones.
Associations of users to user groupsAssociations of users to user group are not automatically aligned, i.e., no associations (in the User_UserGrp class) are created on the local database based on mappings provided by the single sign-on.When the permission systems need to verify whether a user is assigned to a role, Portofino performs these operations:
Example configurations
LDAP and Microsoft Active Directory for TomcatIn this example we configure Portofino with Apache Tomcat to use the LDAP authentication (or Microsoft Active Directory). |