<div dir="ltr">It would be nice if KeyCloak could share applications across realms in a SaaS multi-tenant approach. Currently we need to use REST API to syncronize app definitions.</div><br><div class="gmail_quote">On Thu, Mar 26, 2015 at 4:10 PM Thiago Presa &lt;<a href="mailto:thiago.addevico@gmail.com">thiago.addevico@gmail.com</a>&gt; wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>So I&#39;ve spent the last couple of days playing with the source. :-)<br></div><div><br></div><div>The current authorization mechanism is based on Realm/RealmApp i.e. whenever an API resource is called, check if the User has the required Right (manage, any, view) in the resource&#39;s Realm/RealmApp.</div><div><br></div><div>Consider, for example, the URI /admin/realms/{realm}/applications-by-id/{app-name}/roles/{role-name}. What I was trying to do is to create a permission for {app-name} so that this API call wouldn&#39;t require any Realm/RealmApp right.</div><div><br></div><div>The problem I see is that this API call trigger many methods (i.e. AdminRoot#getRealmsAdmin, RealmsAdminResource#getRealmAdmin, RealmAdminResource#getApplicationsById, and so on...), and at those methods there is not enough information to figure out whether this is:</div><div><br></div><div>1- An app-specific call and thus should be authorized even without realm authorization, or;</div><div>2- Not app-specific call and this should be properly authorized by Realm/RealmApp.</div><div><br></div><div>Even in the case of (1), the information on which app should I check for authorization is not available.</div><div><br></div><div>So it seems to me that this resource-loading mechanisms pressuposes an authorization mechanism that checks only against the realm for permission, and changing this seems daunting to me.</div><div><br></div><div>Do you guys have any idea on a more local change I could make to achieve the intended behavior?</div></div><div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Mar 24, 2015 at 2:33 PM, Thiago Presa <span dir="ltr">&lt;<a href="mailto:thiago.addevico@gmail.com" target="_blank">thiago.addevico@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr">OK, agreed. We thought this out of consistency, but if that&#39;s not a good design we surely can consider a better one.</div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Mar 24, 2015 at 9:44 AM, Stian Thorgersen <span dir="ltr">&lt;<a href="mailto:stian@redhat.com" target="_blank">stian@redhat.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span><br>
<br>
----- Original Message -----<br>
&gt; From: &quot;Thiago Presa&quot; &lt;<a href="mailto:thiago.addevico@gmail.com" target="_blank">thiago.addevico@gmail.com</a>&gt;<br>
&gt; To: <a href="mailto:stian@redhat.com" target="_blank">stian@redhat.com</a><br>
&gt; Cc: <a href="mailto:keycloak-user@lists.jboss.org" target="_blank">keycloak-user@lists.jboss.org</a><br>
&gt; Sent: Tuesday, 24 March, 2015 1:41:16 PM<br>
&gt; Subject: Re: [keycloak-user] Application Management<br>
&gt;<br>
</span><span>&gt; Hi there,<br>
&gt;<br>
&gt; I&#39;m Alex&#39;s coworker and I&#39;ll be working on this too.<br>
&gt;<br>
&gt; We were just discussing your idea, and it seems to fit our requirements.<br>
&gt;<br>
&gt; As far as we have seen, keycloak already has a realm-admin concept.<br>
&gt; Whenever a realm &quot;R&quot; is created, it creates a R-realm application with<br>
&gt; a bunch of default roles (manage-users, manage-roles, etc.) into the<br>
&gt; realm master.<br>
&gt;<br>
&gt; We are currently thinking if we could mimic this structure for<br>
&gt; applications. What do you think?<br>
<br>
</span>It&#39;s already messy with the way I modelled it and adding the same for applications would be even worse. I don&#39;t see why that&#39;s needed though if we&#39;d add what I proposed.<br>
<div><div><br>
&gt;<br>
&gt; &gt; I had an idea a while back that is a simple way to achieve what you&#39;re<br>
&gt; &gt; asking for. Th&gt; e idea would be to only allow an admin to grant roles that<br>
&gt; &gt; the admin has access to.<br>
&gt;<br>
&gt; &gt; Basically:&gt; * A user with admin (super user) role can grant any roles (we<br>
&gt; &gt; would need to add a per-&gt; realm super user role)<br>
&gt;<br>
&gt; &gt; * A user with the role manage-users and some roles on app1 can only grant<br>
&gt; &gt; other users &gt; the roles on app1<br>
&gt;<br>
&gt; &gt; * A user with the role manage-users and some roles on app2 can only grant<br>
&gt; &gt; other users &gt; the roles on app2<br>
&gt;<br>
&gt; &gt;<br>
&gt;<br>
&gt; &gt; This is something we should add in either case (to prevent users granting<br>
&gt; themselves more access). Would it solve your problems?<br>
&gt;<br>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div></div>
______________________________<u></u>_________________<br>
keycloak-user mailing list<br>
<a href="mailto:keycloak-user@lists.jboss.org" target="_blank">keycloak-user@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/keycloak-user" target="_blank">https://lists.jboss.org/<u></u>mailman/listinfo/keycloak-user</a></blockquote></div>