<div dir="ltr">I&#39;m definitively leaning towards introducing a new concept called scopes, rather than trying to shoehorn this into roles.</div><div class="gmail_extra"><br><div class="gmail_quote">On 1 July 2016 at 14:29, Marek Posolda <span dir="ltr">&lt;<a href="mailto:mposolda@redhat.com" target="_blank">mposolda@redhat.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On 30/06/16 21:42, Pedro Igor Silva wrote:<br>
&gt; ----- Original Message -----<br>
&gt;&gt; From: &quot;Marek Posolda&quot; &lt;<a href="mailto:mposolda@redhat.com">mposolda@redhat.com</a>&gt;<br>
&gt;&gt; To: <a href="mailto:keycloak-dev@lists.jboss.org">keycloak-dev@lists.jboss.org</a><br>
&gt;&gt; Sent: Thursday, June 30, 2016 10:56:04 AM<br>
&gt;&gt; Subject: [keycloak-dev] Scope parameter support<br>
&gt;&gt;<br>
&gt;&gt; IMO We will also need some more flexible way to specify how the value of<br>
&gt;&gt; scope parameter will be mapped to roles and protocolMappers. For example<br>
&gt;&gt; if I use &quot;scope=foo&quot;, it can mean that I want realm role &quot;foo1&quot;, client<br>
&gt;&gt; role &quot;client1/foo2&quot; and protocolMapper for &quot;firstName&quot; and &quot;lastName&quot; etc.<br>
&gt; +1. I think I have mentioned something like that on a previous thread, where we should be able to build scopes from attributes (eg.: from user) or even compose a scope based on multiple attributes. The same concept applies to protocol mappers, just like you proposed.<br>
&gt;<br>
&gt;&gt; I can see 2 possibilities:<br>
&gt;&gt;<br>
&gt;&gt; a) Configure allowed scope param separately per each role / protocolMapper<br>
&gt;&gt;<br>
&gt;&gt; If some role has &quot;Scope param required&quot; checked, you will have<br>
&gt;&gt; possibility to configure list of available values of scope parameter,<br>
&gt;&gt; which this role will be applied to. This will be configured per-each<br>
&gt;&gt; role separately.<br>
&gt;&gt;<br>
&gt;&gt; Example: I have realm role &quot;foo&quot; . I check &quot;scope param required&quot; to<br>
&gt;&gt; true. Then I will define &quot;scope param values&quot; :  &quot;bar&quot; and &quot;baz&quot;. It<br>
&gt;&gt; means that if someone uses parameter &quot;scope=bar&quot; or<br>
&gt;&gt; scope=baz&quot;, then role &quot;foo&quot; will be applied to token. Otherwise it won&#39;t<br>
&gt;&gt; be applied.<br>
&gt;&gt;<br>
&gt;&gt; Similarly it will be for protocolMappers. We will add switch &quot;Scope<br>
&gt;&gt; param required&quot; to protocolMappers and we will use list of available<br>
&gt;&gt; values of scope parameter, which is configured per each protocolMapper<br>
&gt;&gt; separately.<br>
&gt; IMO, roles and scopes are separated concepts. Where scopes may also implicate access to the roles granted to an user. Scopes have a pretty broad meaning.<br>
&gt;<br>
&gt; With that in mind, don&#39;t you think that we could just have a scope &quot;roles&quot; ? Which could be used to ask for the roles associated with the user that the client is acting on behalf of ?<br>
</div></div>IMO it will be good that scope can be used to limit/extend the both<br>
protocolMappers and roles. For example we use &quot;scope=offline_access&quot; for<br>
offline tokens, so the role is applied just if it&#39;s included in scope<br>
parameter. Then user may also need to grant this role access on consent<br>
screen.<br>
<br>
So just scope &quot;roles&quot; may not be sufficient for fine-grained chose of<br>
roles IMO.<br>
<span class="HOEnZb"><font color="#888888"><br>
Marek<br>
</font></span><div class="HOEnZb"><div class="h5">&gt;<br>
&gt; I think that the Protocol Mappers (for OIDC) provide pretty much everything you need. The missing part would be to make it capable of grouping other mappers. Actually, the concept behind a protocol mapper is pretty much<br>
&gt; related with a scope.<br>
<br>
_______________________________________________<br>
keycloak-dev mailing list<br>
<a href="mailto:keycloak-dev@lists.jboss.org">keycloak-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/keycloak-dev" rel="noreferrer" target="_blank">https://lists.jboss.org/mailman/listinfo/keycloak-dev</a><br>
</div></div></blockquote></div><br></div>