Thanks for the detailed report. I am currently working on ClientScope
support, which involves some refactoring and better support for OAuth2
scope parameter. I will try to doublecheck behaviour of User Client Role
Mapper as well during this work. I will try to ensure that this is fixed
in next weeks.
Thanks,
Marek
On 22/02/18 15:59, Виталий Ищенко wrote:
Hi Michael
Looks, like this issue, is exactly about this case
realm_access && resource_access claims are indeed only for access
tokens. There is no much sense in adding them to id_token
On Thu, Feb 22, 2018 at 5:56 PM Michael Poettgen
<Michael.Poettgen(a)oeconnection.com
<mailto:Michael.Poettgen@oeconnection.com>> wrote:
Vitaliy,
Forget the remark on realm_access and resource_access. I found
them on the access_token and refresh_token (but not on the
id_token, which may be why I couldn’t find them easily on the .NET
Core OpenIdConnect authentication provider).
I found
https://issues.jboss.org/browse/KEYCLOAK-5259 by Luiz
Carlos Viana Melo, with a comment by Manfred Duchrow which I found
interesting. I left a comment there and voted for the issue
instead of raising another one.
Regards,
Michael
*From:*Michael Poettgen
*Sent:* Wednesday, February 21, 2018 7:45 PM
*To:* 'Виталий Ищенко'; Marek Posolda
*Cc:* keycloak-user(a)lists.jboss.org
<mailto:keycloak-user@lists.jboss.org>
*Subject:* RE: [keycloak-user] Roles without "Full Scope Allowed"?
This describes pretty well what I’m getting as well. The only
thing I don’t see is the realm_access and resource_access claims.
Are they only enabled when activating Authorization?
Regards,
Michael
*From:*ВиталийИщенко[mailto:betalb@gmail.com
]
*Sent:* Wednesday, February 21, 2018 6:03 PM
*To:* Marek Posolda
*Cc:* Michael Poettgen; keycloak-user(a)lists.jboss.org
<mailto:keycloak-user@lists.jboss.org>
*Subject:* Re: [keycloak-user] Roles without "Full Scope Allowed"?
Hi Marek
The behaviour for automatically adding client own roles to scope
seems fine, the issue is with client mappers (or lack of
documentation, hence misunderstanding), their logic is not clear
when full scope is not enabled. Also at the bottom, I've mentioned
two other quirks that can be observed even with full scope enabled.
Suppose we have following setup
== Clients ==
client-with-roles
Roles:
* role
* role-composite-child
test-client
Roles:
* role
* role-composite-child
Mappers:
#1
type: User Client Type
client id: client-with-roles
claim: rolesOtherClient
#2
type: User Client Type
client id: test-client
claim: rolesCurrentClient
#3
type: User Realm Role
claim: rolesRealm
== REALM Roles ==
* ROLE
* ROLE_COMPOSITE_CHILD
* ROLE_COMPOSITE (contains ROLE_COMPOSITE_CHILD,
client-with-roles/role-composite-child,
test-client/role-composite-child)
== Users ==
name: "a"
mapped roles
* ROLE
* ROLE_COMPOSITE
* test-client/role
* client-with-roles/role
Now if I issue token using test-client and user "a" credentials
(direct grant),
token will have following claims (they have the same set of roles
as realm_access and resource_access claims)
"rolesRealm": [
"ROLE",
"ROLE_COMPOSITE",
"ROLE_COMPOSITE_CHILD"
],
"rolesOtherClient": [
"role-composite-child",
"role"
],
"rolesCurrentClient": [
"role-composite-child",
"role"
]
But if I disable full scope and will add all user "a" roles to scope,
token will look like this (realm_access and resource_access
haven't changed)
"rolesRealm": [
"ROLE",
"ROLE_COMPOSITE"
],
"rolesOtherClient": [
"role"
]
rolesCurrentClient claim is absent
Also Found few other strange behaviours with mappers
* realm-management roles are not mapped at all
* scoped roles are included into claims, produced by mappers,
even if scope parameter was not provided during token request
(This one may be useful get potential list of roles)
On Wed, Feb 21, 2018 at 10:35 AM Marek Posolda
<mposolda(a)redhat.com <mailto:mposolda@redhat.com>> wrote:
Please create a JIRA if you think that it's a bug. Please add
the detailed steps to reproduce. TBH from this email, I don't
know what exactly is broken, or if it's just misconfiguration.
BTV. Client has always automatically scope to his own roles.
And it's not possible to remove them from the scope. It's just
possible to add/remove scopes for realm roles or client roles
of different clients. So the behaviour described by Michael is
expected.
Marek
On 20/02/18 20:51, Виталий Ищенко wrote:
I was able to reproduce this issue
It only happens for a claim, produced by the mapper.
But I can see correct list of roles in a different claim:
resource_access[clientId].roles.
It seems like a bug, you can raise it with the team.
As a workaround, you can use existing claim
On Tue, Feb 20, 2018 at 9:39 PM Michael Poettgen
<Michael.Poettgen(a)oeconnection.com
<mailto:Michael.Poettgen@oeconnection.com>> wrote:
Betalb,
That’s what I thought as well, but if I turn off „Full
Scope Allowed“ and look at the „Client Roles“ of my
client then all client roles appear under “Effective
Roles”. I cannot assign or un-assign any of these
roles. So my assumption was that, since these are all
roles of my client anyways, that they would always be
available (at least for my client). Also the user does
have the proper roles (I get them with “Full Scope
Allowed” enabled), but nevertheless I don’t get any.
Thanks,
Michael
*From:*Виталий Ищенко [mailto:betalb@gmail.com
<mailto:betalb@gmail.com>]
*Sent:* Tuesday, February 20, 2018 6:41 PM
*To:* Michael Poettgen
*Cc:* Marek Posolda; keycloak-user(a)lists.jboss.org
<mailto:keycloak-user@lists.jboss.org>
*Subject:* Re: [keycloak-user] Roles without "Full
Scope Allowed"?
This is mentioned in docs:
http://www.keycloak.org/docs/latest/server_admin/index.html#_client_scope
<
https://protect-us.mimecast.com/s/7hHDCG6A12hNzkyckuOAm>
If full scope is disabled: access token, issued to
specific client will have intersection of user own
roles with client scope, defined in scope section of
client configuration
вт, 20 февр. 2018 г. в 16:34, Michael Poettgen
<Michael.Poettgen(a)oeconnection.com
<mailto:Michael.Poettgen@oeconnection.com>>:
You said, that I need to "add scopes for the
*realm roles* and client roles of *other
clients*", but I don't even get the roles for this
client anymore, no matter whether "Scope Param
Required" is set for the role or not and no matter
whether I add the role names to the "scope" or not.
Michael
From: Marek Posolda [mailto:mposolda@redhat.com
<mailto:mposolda@redhat.com>]
Sent: Tuesday, February 20, 2018 2:13 PM
To: Michael Poettgen;
keycloak-user(a)lists.jboss.org
<mailto:keycloak-user@lists.jboss.org>
Subject: Re: [keycloak-user] Roles without "Full
Scope Allowed"?
Once you changed "Full Scope Allowed" to off, you
need to add scopes for
the realm roles and client roles of other clients.
This can be done in
the "Scope" tab, pretty much same place where you
turned "Full Scope
Allowed" to off. I think we have also some docs
around this somewhere
(not 100% sure).
Marek
On 20/02/18 13:07, Michael Poettgen wrote:
> All,
>
> I've got Keycloak 3.4.3 configured to return
client roles in a "role" Claim to an OpenID
Connect client. (The client has got a list of
roles, these are assigned to the user and I've got
a User Client Role Token mapper that maps the
roles of that client into the "role" claim.)
Everything works until I turn "Full Scope Allowed"
off. Then all roles disappear and trying to
request the roles via the "scope" (with or without
client ID prefix) doesn't seem to work.
>
> Am I doing something stupid or is there
something that does not work as (I) expected?
>
> Thanks for your help!
>
> Michael
>
>
> This message may contain confidential
information. If you are not the intended
recipient, do not disseminate, distribute, or copy
this e-mail or its attachments. Please notify the
sender of the error immediately by e-mail or at
the telephone number listed below, and delete this
e-mail and any attachments from your system.
Receipt by anyone other than the intended
recipient(s) is not a waiver of any trade secrets,
proprietary interests, or other applicable rights.
E-mail transmission is not necessarily secure or
error-free, as information could be intercepted,
corrupted, lost, destroyed, delayed, incomplete,
or may contain viruses. The sender disclaims all
liability for any errors or omissions arising as a
result of the e-mail transmission.
>
> OEConnection LLC, (888) 776-5792
<tel:%28888%29%20776-5792>,
www.oeconnection.com
<
https://protect-us.mimecast.com/s/gqRFCJ6142hWjZ4iOhU4y>
>
> _______________________________________________
> keycloak-user mailing list
> keycloak-user(a)lists.jboss.org
<mailto:keycloak-user@lists.jboss.org>
>
https://lists.jboss.org/mailman/listinfo/keycloak-user
<
https://protect-us.mimecast.com/s/t_AiCKrGg2syROAUopQ22>
_______________________________________________
keycloak-user mailing list
keycloak-user(a)lists.jboss.org
<mailto:keycloak-user@lists.jboss.org>
https://lists.jboss.org/mailman/listinfo/keycloak-user
<
https://protect-us.mimecast.com/s/t_AiCKrGg2syROAUopQ22>