In fact, my concern is that we are going to adapt essex release for new big installation, but it can become very painful to move to new ksl afterwards for update. I hope it'll not.<br clear="all"><br><div>Kind regards, Yuriy.</div>
<br>
<br><br><div class="gmail_quote">On Thu, Feb 2, 2012 at 12:12, Yuriy Taraday <span dir="ltr"><<a href="mailto:yorik.sar@gmail.com">yorik.sar@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
We have a project running that will definitely verify if current LDAP backend can work with legacy AD. Are you going to change a lot of things in backends?<div>I believe that current model (tree for global roles definitions and all tenant roles as groups in tenant's subtree) is very flexible and represents common structure used in existing LDAP services.<br clear="all">
<br><div>Kind regards, Yuriy.</div><br>
<br><br><div class="gmail_quote"><div><div class="h5">On Thu, Feb 2, 2012 at 07:56, Adam Young <span dir="ltr"><<a href="mailto:ayoung@redhat.com" target="_blank">ayoung@redhat.com</a>></span> wrote:<br></div></div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5">
<div bgcolor="#FFFFFF" text="#000000">
As part of the effort to get LDAP support into Keystone Light, we
had a bit of a design discussion on IRC. The discussion focused on
Roles, and I would like to sum up what was said in that discussion.<br>
<br>
When we talk about Roles, we mean the permissions a given user has
in a given tenant. As such, it is a three way relationship, and
LDAP does not handle those well. Group member ship is done using a
multivalued attribute, such that a Group has a list of users in an
attribute named "members." This cannot be extended to roles
directly, as the attribute would have to hold two values: the
user, and the role. One proposal was to do just that: to append
the role name on to the user name, and them as a single string
inside a single attribute. A drawback to this approach is that the
LDAP rules have no way of enforcing that the values placed into the
concatenated string are valid values. Another drawback is that the
parsing of the string is then placed on the system that consumes the
roles.<br>
<br>
<br>
Groups can be containers of other objects. As such, another
alternative is to put a collection of roles under the tenant
group, and then to add the user names to each of the roles. The
drawback to this approach is that the tenant then becomes a subtree,
and the management of subtrees is more involved in LDAP than the
management of single objects. <i><br>
<br>
<br>
</i>Roles tend to map to permissions on external objects. For
example, a role might indicate that a given user can create a new
network inside of quantum, or deploy a new template image into
glance. If the set of roles is known a-priori, they could be done
as a set of attributes on the tenant group. The drawback with this
approach is that making changes to the LDAP schema after deployment
is generally not allowed in large organizations, so adding a new
role would be impossible<i>.<br>
<br>
If the objects being managed were entirely within the Directory
Server, one possible solution would be to use the Directory
servers access controls to manage who could do what. For
example, in order for a user to be able to create a new network,
they wound need write access to the networks collection for their
tenancy. The reason we cannot do that is that many of the objects
are maintained in external databases, and not in the directory
server. Plus, the access controls for LDAP are not guaranteed to
be consistent across different LDAP management systems.<br>
</i><br>
One point that came up repeatedly is that different organizations
are going to have very different LDAP structures, and the Keystone
architecture would ideally be flexible enough to map to what any
given organization has implemented, albeit with some customization.<br>
<br>
</div>
<br></div></div><div class="im">_______________________________________________<br>
Mailing list: <a href="https://launchpad.net/~openstack" target="_blank">https://launchpad.net/~openstack</a><br>
Post to : <a href="mailto:openstack@lists.launchpad.net" target="_blank">openstack@lists.launchpad.net</a><br>
Unsubscribe : <a href="https://launchpad.net/~openstack" target="_blank">https://launchpad.net/~openstack</a><br>
More help : <a href="https://help.launchpad.net/ListHelp" target="_blank">https://help.launchpad.net/ListHelp</a><br>
<br></div></blockquote></div><br></div>
</blockquote></div><br>