My comments inline...

    > Applications and Roles
    > ---------------------------------
    >
    > Application designers devise security permissions and roles
    > specific to applications.  These
    > roles represent a set of rights authorizing principals to perform
    > operations or access resources
    > that must be allowed to fulfill a specific coherent function within
    > applications.  These rights to
    > access resources are the permissions.  The set of these
    > permissions, needed for a logical
    > function to be conducted in the application, is a role.
    >
    > To be concise we extract the following glossary definitions:
    >
    I think we should start with

    Users:  People (or maybe systems) that need to use the system.  Often
    the term Principal is used but I find it extremely confusing because
    the principals I know about in java are only aspects of someones
    identity in the system.  A Principal might have started out as
    something that completely represents a single user but I think it is
    used in so many other ways now that we should avoid it to describe a
    single user.  Since I find "principal" so confusing I'm going to use
    "user" instead in what follows: we can always change it back.


Although I don't see the complexity or difference of using the term principal to refer to an identity I can stick to applying term user.
<an-aside>
Incidentally I understand a principal to contain a unique key for referring to an
identity for the sake of authorization.

I'm fine with simplifying the conversation for now and referring to just
users especially since technically non-human users driven by
"systems" or processes *USE* the application too. It's all the same to me.
Point being, the term user, does not necessarily connotate a human
identity. In both cases you must verify (authenticate) the identity using
one or more of their credentials.
</an-aside>

      It's a minor point  and I really don't want to get anyone
    distracted but I tend to think of "systems" that need to use the
system as "frozen identities" of the people who set them up. Some systems come out of the box with a power user (a.k.a. administrator). I don't see where this "frozen user" term adds to the discussion. Sure the permissions or roles of these kinds of users may not change but that's not set in stone: several systems advise disabling access by such users after setup there by removing their authorization to the system completely.
    In
    other words someone had to start the system and they had better have
    had the authorization to set it up to do whatever it is supposed to.
    So it seems to me as if they froze part of their identity into the
    system's authorizations.  I'd be interested to know if this seems
like a reasonable point of view to others.

Such initial administrative users exist and no, they are not necessarily
always frozen. I cannot find any value in this term/concept with regard to this
discussion.

OK fine, I didn't mean to use it as a definition of anything, its not essential so I should have left it out. I was mostly thinking that there might be a way to think of "users" that are "systems" as people also. I'm happy to think of "systems" as users in their own right.
I hope that I'm not totally off side, but I will try to make some point here about 'users' and 'principals'.

'users' is limited to real people, somehow. Principals defines much more things : a service, hosts, users ... At least, this is the way Kerberos defines Principal.

Extract from RFC 4120, par 1.1 :

"Kerberos provides a means of verifying the identities of principals,
  (e.g., a workstation user or a network server) ... "


This is a little bit different from what David defines as a User, but it's necessary when you define permissions, as a service might have Roles and Permissions, too. I'm a little bit unconfortable about designing a service (or a computer :) as a Human. Isn't it, HAL ?


    > Permission:
    >    A right required by a system or application to authorize
    > principals to perform a
    >    specific operation or access a resource in some manner.
    >
    This is kind of unclear to me and mentions the so-far undefined
    terms
system and application.

<discussion-agreement>

Let's stop here and make a little agreement to be fair in our approach to
disassembling our arguments and counter arguments.

You use the terms "system" and "application" freely below even though you
don't define them either. And here above you're using the fact that I did not define them as a reason why my definition is flawed.
Why would you do that?

If we resort to these kinds of hypocritical tactics as a basis to our debate then we're not going to arrive anywhere. This will turn from an intelligent
productive debate into a counter productive bickering session.

Furthermore if you and I don't know what a system or application is in
the abstract sense and we need to define these concepts as well we might
as well start writing a dictionary before building Triplesec. Also if we are confused by what is a system or an application then we should not be clogging
this ML this with our conversations.

Let's draw a reasonable line and respect it.  What do you say?

good idea. I make plenty of mistakes and hope you will point them out. I was trying to keep my use of undefined terms in general discussion rather than the definitions themselves but seem to have slipped.

So do we consider that the Permission definition is correct and agreed ?

"A permission is some operation or set of operations that can be performed on some resource or set of resources."

Are we all ok with this ?



    To
    make administering permissions on these objects manageable I
    think we
    may want to introduce a hierarchical scope concept.


Yes this is the term we adopted after studying a few other authorization managers.
Microsoft's AzMan for example has the concept of scopes.

I agree that we have scopes where potentially different authorization policies are in
effect or applied.

    Scopes: a tree of scope objects, where we assign each object to one
    scope.  For instance, a module, application, set of applications,
    division, enterprise...


I like this very much. Broadening the use of the scope concept across all the
possible hierarchical relationships in an enterprise can serve us well.

Scopes does not seems to be a problem at all :)

So is hierarchy of roles.

<snip>the rest of this long mail</snip>

--
--
cordialement, regards,
Emmanuel Lécharny
www.iktek.com
directory.apache.org


Reply via email to