[keycloak-dev] Realms and applications
Bill Burke
bburke at redhat.com
Tue Jul 30 12:58:34 EDT 2013
I'm not sure yet if there will be a one-to-many for realm->applications.
But, An application needs to be aware of the realms it is interacting
with for a variety of reasons.
The whole OAuth 2 protocol[1] requires knowledge of the realm it is
logging into:
* It needs to be registered with the realm and have a client_id and set
of credentials
* It needs to know which realm to make an authenticated request to so it
can turn an access code into an access token. (This happens after
Keycloak redirects the browser back to the application)
* For bearer token authentication, it needs to know the public key of
the realm the token comes from so it can verify the signed token.
* For single sign off, Keycloak sends a signed request to the admin URL
of the Application. The application needs to know the public key of the
realm sending the request so it can verify the signed request. It also
needs a way to match the request user to an Http Session so it can
invalidate that session.
Obtaining user profile information is sensitive. In many cases, we have
to know that the user authorized this behavior. In others, the realm
admin will have to assign permission (one or more roles) to an
application to be able to request this information.
IMO, for the 1st few iterations, there should only be a one-to-one
mapping between Realm and application. I'm not sure how useful
one-to-many would be anyways.
[1] http://tools.ietf.org/html/rfc6749
On 7/30/2013 11:54 AM, Stian Thorgersen wrote:
> Is the relationship between a realm and applications one-to-many? If so I assume it would be possible to change the realm an application uses?
>
> Also I was wondering if it's necessary that an application has to know what realm to use to login users. According to https://github.com/keycloak/keycloak/wiki/Login-Algorithm the application should redirect to:
>
> https://keycloak.org/realms/demo/tokens/login?state=...&redirect_uri=...&client_id=...
>
> Would it not be better if it didn't have to know about the realm? So login would be something like:
>
> https://keycloak.org/oauth2/?state=...&redirect_uri=...&client_id=...
>
> Same applies when an application wants to access lists of users, or the user profile for a specific user, etc.
> _______________________________________________
> keycloak-dev mailing list
> keycloak-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/keycloak-dev
>
--
Bill Burke
JBoss, a division of Red Hat
http://bill.burkecentral.com
More information about the keycloak-dev
mailing list