On 06/16/2016 02:19 AM, Jamie Lennox wrote:
Thanks everyone for your input.

I generally agree that there is something that doesn't quite feel right about purely trusting this information to be passed from service to service, this is why i was keen for outside input and I have been rethinking the approach.

They really feel like a variation on Trust tokens.

From the service perspective, they are tokens, just not the one the user originally requested.

The "reservation" as I see it is an implicit trust created by the user requesting the operation on the initial service.

When the service validates the token, it can get back the, lets call it a "reserved token" in keeping with the term reservation above. That token will have a longer life span than the one the user originally requested, but (likely) fewer roles.

When nova calls glance, and then glance calls Swift, we can again transition to different reserved tokens if needs be.





To this end i've proposed reservations (a name that doesn't feel right): https://review.openstack.org/#/c/330329/

At a gut feeling level i'm much happier with the concept. I think it will allow us to handle the distinction between user->service and service->service communication much better and has the added bonus of potentially opening up some policy options in future.

Please let me know of any concerns/thoughts on the new approach.

Once again i've only written the proposal part of the spec as there will be a lot of details to figure out if we go forward. It is also fairly rough but it should convey the point.


Thanks

Jamie

On 3 June 2016 at 03:06, Shawn McKinney <smckin...@symas.com <mailto:smckin...@symas.com>> wrote:


    > On Jun 2, 2016, at 10:58 AM, Adam Young <ayo...@redhat.com
    <mailto:ayo...@redhat.com>> wrote:
    >
    > Any senseible RBAC setup would support this, but we are not
    using a sensible one, we are using a hand rolled one. Replacing
    everything with Fortress implies a complete rewrite of what we do
    now.  Nuke it from orbit type stuff.
    >
    > What I would rather focus on is the splitting of the current
    policy into two parts:
    >
    > 1. Scope check done in code
    > 2. Role check done in middleware
    >
    > Role check should be donebased on URL, not on the policy key
    like identity:create_user
    >
    >
    > Then, yes, a Fortress style query could be done, or it could be
    done by asking the service itself.

    Mostly in agreement.  I prefer to focus on the model (RBAC) rather
    than a specific impl like Fortress. That is to say support the
    model and allow the impl to remain pluggable.  That way you enable
    many vendors to participate in your ecosystem and more important,
    one isn’t tied to a specific backend (ldapv3, sql, …)
    __________________________________________________________________________
    OpenStack Development Mailing List (not for usage questions)
    Unsubscribe:
    openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
    <http://openstack-dev-requ...@lists.openstack.org?subject:unsubscribe>
    http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev




__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to