[keycloak-dev] Non-UMA Use Cases

Anil Saldanha asaldanha1947 at gmail.com
Thu Mar 1 12:06:15 EST 2018


Also Entitlements API is useful in cloud environments or API based billing environments - - you want to minimize the number of calls you make to decide on an access check.

This may be different from UMA usecases 

> On Mar 1, 2018, at 10:27 AM, Anil Saldanha <asaldanha1947 at gmail.com> wrote:
> 
> Pedro,
> 
> my personal opinion here.
> 
> The goal of the Entitlements API is to use for contextual authorization.  It does not just rely on user attributes including privacy.  There are other aspects to the context - resource attributes, environmental attributes, channel attributes etc. :-)
> 
> UMA is focused on User managed attributes and privacy controls.
> 
> While you are trying to unify the api into one under the UMA endpoint umbrella, I feel that it may be better to keep them separate.  
> 
> If the Entitlements API usage by users/applications is very very low, just drop it and start using the new UMA grant type.
> 
> Regards,
> Anil
> 
>> On Wed, Feb 28, 2018 at 1:25 PM, Pedro Igor Silva <psilva at redhat.com> wrote:
>> Hi,
>> 
>> There are situations where you don't want to use the UMA protocol to obtain
>> permissions from the server in form of an access token. Reasons can be: you
>> don't have any privacy requirements or your requirements don't require all
>> the UMA dance to obtain an access token.
>> 
>> In these situations, you may just want to send a request with the resources
>> and scopes you want to get access and get back the access token with these
>> permissions.
>> 
>> This is what we provide today with the Entitlement API, an alternative that
>> simplifies how clients can obtain permissions from the server.
>> 
>> However, with the introduction of UMA 2.0 support, we have now a specific
>> grant type [1] for obtaining permissions from the server using the token
>> endpoint. Just like any other OAuth2 grant type, the UMA grant type expects
>> a HTTP FORM request with some parameters.
>> 
>> The Entitlement API no longer exists but the same behavior can be achieved
>> with the new UMA grant type that was introduced. In other words, you can
>> use this grant type to ask for an access token with permissions without
>> sending a permission ticket but a list of resources/scopes (as parameters)
>> you want to get access.
>> 
>> The reason for reusing the grant type is that I would like to avoid having
>> two endpoints for obtaining permissions from the server. I think it makes
>> things simple.
>> 
>> Would like to know your opinion if moving the Entitlement API functionality
>> to this new grant type makes sense and if, maybe, we should have a specific
>> grant type (based on UMA grant type) that allows authorization requests
>> without a permission ticket (but a list of resources and scopes you want to
>> access). As side note, the code for UMA and non-UMA authorization is pretty
>> much the same, the main difference is on the format of the authorization
>> request/protocol.
>> 
>> [1] https://docs.kantarainitiative.org/uma/wg/oauth-uma-grant-2.0-09.html
>> 
>> Regards.
>> Pedro Igor
>> _______________________________________________
>> keycloak-dev mailing list
>> keycloak-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/keycloak-dev
> 


More information about the keycloak-dev mailing list