[security-dev] Entitlement versus Enforcement Model
Anil Saldhana
Anil.Saldhana at redhat.com
Wed Nov 7 16:09:10 EST 2012
On 11/07/2012 03:05 PM, Bill Burke wrote:
> I committed some preliminary work a few months ago to prototype
> Openstack's Keystone service and protocol. I want to ditch this work
> though in favor of developing my own protocol as it seems Keystone is
> very much in flux and they aren't sure of their own direction. It as a
> good exercise though as I learned how AS7 and login-modules can fit
> together and how you can dynamically set roles/identity *per-request*.
> I also wrote a little utility that allows you to delegate authentication
> to your security domain. (login-module-authenticator)
>
> https://github.com/resteasy/Resteasy/tree/master/jaxrs/security/skeleton-key-idm
>
> I just started on my new (well really long time brewing) ideas this week
> as Resteasy 3.0 beta 1 is now out. I plan on using JSON Web Token and
> JSON Web Signatures. After evaluating these specs, they look very tight
> and simple enough to build upon.
Bill, last time I mentioned JWT and JWE, you chewed me. Yeah, pretty
lightweight stuff and applicable to REST style services.
It is possible that JWT lacks the richness that may be desired in a
token, for certain usecases. I have not come across those use cases yet
apart from serving SAML users over a REST style interface with JSON binding.
>
> On 11/7/2012 2:36 PM, Jason Porter wrote:
>> Thanks Bill, that's an interesting idea. Where's your prototype?
>>
>>
>> On Wed, Nov 7, 2012 at 12:21 PM, Bill Burke <bburke at redhat.com
>> <mailto:bburke at redhat.com>> wrote:
>>
>> I'm working on prototype/protocol that combines client-cert and signed
>> tokens.
>>
>> Token is signed by the IDP and contains:
>> * user identity
>> * roles/permissions
>> * expiration/timestamp
>>
>> Client makes an SSL client-verified connection to server and passes the
>> IDP-signed token. Server verifies the client-cert. Verifies the
>> IDP-signed token. Matches the client-cert's identity to the user
>> identity in the token. If everything is cool, server grants the
>> roles/permissions within the token.
>>
>> What's cool about this is that the token could contain multiple
>> user/permission sets, so, if the initial service is a middleman and has
>> to make a bunch of cooridnated requests, it doesn't have to go back to
>> the IDP *ever* as long as it has the public keys of the IDPs it trusts.
>> It can just forward the token around. In fact, the token can be
>> forwarded around as many times as needed.
>>
>> Can work with browser-based apps, but its a pain to provision. Instead,
>> for browser based apps, the initial auth could be done using OAuth2.
>> Server would get a signed token using the OAuth2 protocol. Not as
>> secure as the addition of client-certs, but still good.
>>
>>
>> On 11/7/2012 10:53 AM, Anil Saldhana wrote:
>> > Hi All,
>> > this is an issue I see more at a client (in the classic
>> client/server
>> > paradigm) that the computing industry is moving toward.
>> >
>> > With the increasing push towards mobility, cloud and REST
>> > architectures, I think access control decisions may have to be made
>> > where a decision is needed. So instead of making 100 authorization
>> > calls to the server, we need a model where one call is made to the
>> > server (given user, context etc) and we get back a set of
>> entitlements
>> > (or permissions) that need to be applied at the client side.
>> >
>> > Examples include a mobile client (such as banking) that needs to
>> figure
>> > out what aspects of the mobile screen the user is entitled to see and
>> > what operations he is capable of performing.
>> >
>> > The industry has put too much emphasis on the enforcement model
>> > (meaning, make 100 authorization calls to the glorified server).
>> There
>> > has been almost no models for the entitlement approach.
>> >
>> > I have prototyped something here:
>> > https://docs.jboss.org/author/display/SECURITY/EntitlementsManager
>> >
>> > The entitlements should be sent in a JSON response.
>> >
>> > Also, trying to get this standardized in the industry via the OASIS
>> > Cloud Authorization TC.
>> >
>> https://lists.oasis-open.org/archives/oasis-charter-discuss/201210/msg00003.html
>> >
>> > I have a hunch that projects such as Aerogear, Drools, Errai and
>> > Infinispan may need this model.
>> >
>> > Thoughts?
>> >
>> > Regards,
>> > Anil
>> > _______________________________________________
>> > security-dev mailing list
>> > security-dev at lists.jboss.org <mailto:security-dev at lists.jboss.org>
>> > https://lists.jboss.org/mailman/listinfo/security-dev
>> >
>>
>> --
>> Bill Burke
>> JBoss, a division of Red Hat
>> http://bill.burkecentral.com
>> _______________________________________________
>> security-dev mailing list
>> security-dev at lists.jboss.org <mailto:security-dev at lists.jboss.org>
>> https://lists.jboss.org/mailman/listinfo/security-dev
>>
>>
>>
More information about the security-dev
mailing list