![]() |
OpenStack Nova and Dashboard authorization using existing LDAP
May 27, 2011
Our current integration task involves using goSA as the central management utility. goSA internally uses the LDAP repository for all of its data. So we had to find a solution to make both OpenStack Nova and Dashboard authenticate and authorize users using goSA’s LDAP structures. LDAP in Nova If you want to manage user creation and deletion from some other place (such as goSA in our case), you can set the ldap_user_modify_only flag to True. Projects are objects with the widely used groupOfNames class in the subtree defined by the ldap_project_subtree flag. Nova uses the cn attribute for the project name,description for description, member for the list of members’ DNs, owner for the project manager’s DN. All of these attributes are common for user (and any object) groups management, so it’s easy to integrate Nova projects with an existing user groups management system (e.g. goSA). Roles are also stored as groupOfNames, with similar cn, description and memberattributes. Nova has hard-coded roles: cloudadmin, itsec, sysadmin, netadmin,developer. Global roles are stored in a subtree defined by role_project_subtree, cn’s are defined by the ldap_cloudadmin, ldap_itsec, ldap_sysadmin, ldap_netadmin andldap_developer flags respectively. Per-project roles are stored right under the project’s DN with cn set to the role’s name. LDAP in Dashboard Note that in local_settings.py you override default settings, so if you want to just add a backend to AUTHENTICATION_BACKENDS, you should use +=. Also if you want to totally disable ModelBackend like we did, you can use = as well. Also note that to make Dashboard work, you’ll have to create an account in Nova with admin privileges and a project with the same name as the account. You can either set all parameters in LDAP by hand or add it using nova-manage user admin using one of usernames from LDAP. Configuration examples
By the way, to make goSA the central user management utility, we created a special plugin that manages Nova users. The plugin can be found here. It looks like this: 1 commentOne Response |



Nice blogpost, thanks! Question, are you also managing the projects with GOsa? As I know GOsa works with gosaGroupOfNames and has currently no way of specifying a group owner…
October 5, 2011 13:37