<div dir="ltr">Hi Pedro,<div><br></div><div>Thanks for the extra-information.</div><div><br></div><div>&gt;&gt; Stian, we use Play Framework in Java</div></div><div class="gmail_extra"><br><div class="gmail_quote">2016-08-30 0:15 GMT+10:00 Pedro Igor Silva <span dir="ltr">&lt;<a href="mailto:psilva@redhat.com" target="_blank">psilva@redhat.com</a>&gt;</span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">+1.<br>
<br>
Like I said, right now our authz engine is not fully integrated with KC server. However, I think the requirement can be achieved by:<br>
<br>
    - Authentication SPI. In this case, you don&#39;t necessarily need authz services but just check roles in your authenticator<br>
    - Authentication SPI + AuthorizationProvider. I&#39;ve never tested this (maybe is time to start looking at it), but in theory you should be able to obtain an AuthorizationProvider from KeycloakSession and use it to perform evaluations.<br>
<br>
For #2, I need to spend some time testing this scenario and documenting our Authorization API for those looking to use our authz engine when extending KC.<br>
<div class="HOEnZb"><div class="h5"><br>
----- Original Message -----<br>
From: &quot;Stian Thorgersen&quot; &lt;<a href="mailto:sthorger@redhat.com">sthorger@redhat.com</a>&gt;<br>
To: &quot;Edouard Kaiser&quot; &lt;<a href="mailto:edouard.kaiser@gmail.com">edouard.kaiser@gmail.com</a>&gt;<br>
Cc: &quot;Pedro Igor Silva&quot; &lt;<a href="mailto:psilva@redhat.com">psilva@redhat.com</a>&gt;, &quot;keycloak-user&quot; &lt;<a href="mailto:keycloak-user@lists.jboss.org">keycloak-user@lists.jboss.org</a><wbr>&gt;<br>
Sent: Monday, August 29, 2016 10:55:36 AM<br>
Subject: Re: [keycloak-user] Authorization at Keycloak level<br>
<br>
Pedro knows more about this, but the code required to do the checks should<br>
be pretty simple. What language and app type do you have?<br>
<br>
On 27 August 2016 at 05:05, Edouard Kaiser &lt;<a href="mailto:edouard.kaiser@gmail.com">edouard.kaiser@gmail.com</a>&gt; wrote:<br>
<br>
&gt; Hi Pedro,<br>
&gt;<br>
&gt; Thank you very much for your answer. Unfortunately that&#39;s what I was<br>
&gt; afraid. The problem is, we don&#39;t have a classic Java/Servlet application,<br>
&gt; so we can&#39;t use any of the Keycloak adapter available.<br>
&gt;<br>
&gt; We might have to turn to another solution like Auth0.com which offers an<br>
&gt; integrated authorization plugin, unless we find the courage to write our<br>
&gt; own adapter.<br>
&gt;<br>
&gt; Cheers,<br>
&gt;<br>
&gt; 2016-08-26 22:43 GMT+10:00 Pedro Igor Silva &lt;<a href="mailto:psilva@redhat.com">psilva@redhat.com</a>&gt;:<br>
&gt;<br>
&gt;&gt; Hello Edouard,<br>
&gt;&gt;<br>
&gt;&gt; Right now, policy enforcement is only performed on application-side. For<br>
&gt;&gt; that, you need to enable policy enforcement to your keyclok.json as follows:<br>
&gt;&gt;<br>
&gt;&gt; {<br>
&gt;&gt;   &quot;policy-enforcer&quot;: {}<br>
&gt;&gt; }<br>
&gt;&gt;<br>
&gt;&gt; For more details, please take a look at [1].<br>
&gt;&gt;<br>
&gt;&gt; We don&#39;t enforce policies on server-side, at least for now. The user will<br>
&gt;&gt; always be able to log in and be redirect to your application with a<br>
&gt;&gt; code/token.<br>
&gt;&gt;<br>
&gt;&gt; @Stian already mentioned some ideas about a more deeper integrating<br>
&gt;&gt; between KC authentication and authorization services. But for now, what you<br>
&gt;&gt; want is not possible.<br>
&gt;&gt;<br>
&gt;&gt; [1] <a href="https://keycloak.gitbooks.io/authorization-services-guide/co" rel="noreferrer" target="_blank">https://keycloak.gitbooks.io/<wbr>authorization-services-guide/<wbr>co</a><br>
&gt;&gt; ntent/topics/enforcer/<wbr>overview.html<br>
&gt;&gt;<br>
&gt;&gt; ----- Original Message -----<br>
&gt;&gt; From: &quot;Edouard Kaiser&quot; &lt;<a href="mailto:edouard.kaiser@gmail.com">edouard.kaiser@gmail.com</a>&gt;<br>
&gt;&gt; To: <a href="mailto:keycloak-user@lists.jboss.org">keycloak-user@lists.jboss.org</a><br>
&gt;&gt; Sent: Thursday, August 25, 2016 10:02:32 PM<br>
&gt;&gt; Subject: [keycloak-user] Authorization at Keycloak level<br>
&gt;&gt;<br>
&gt;&gt; Hi everyone,<br>
&gt;&gt;<br>
&gt;&gt; We discovered Keycloak very recently (pretty impressive tool by the way,<br>
&gt;&gt; congrats to the maintainers!), and we&#39;ve been trying to configure a very<br>
&gt;&gt; simple authorization at the Keycloak level without success.<br>
&gt;&gt;<br>
&gt;&gt; Let me try to sum up what we are trying to achieve in our web-application.<br>
&gt;&gt;<br>
&gt;&gt; For a Keycloak Client, we would like to only allow the users with a<br>
&gt;&gt; particular Role to be able to login.<br>
&gt;&gt;<br>
&gt;&gt; We thought that to achieve this, we needed to do this:<br>
&gt;&gt; - Authorization enabled on the client<br>
&gt;&gt; - Create a new Role-Based policy ton a particular role<br>
&gt;&gt; - Create a Resource Permission to use the previously created Policy<br>
&gt;&gt; - Use this Resource Permission in the Default Resource of the Client<br>
&gt;&gt;<br>
&gt;&gt; We use openid-connect, and more specifically Google as the identity<br>
&gt;&gt; provider.<br>
&gt;&gt;<br>
&gt;&gt; By doing this, we thought that users without the role, trying to connect<br>
&gt;&gt; to our application through Keycloak, would be redirected to our application<br>
&gt;&gt; with an error of authentication, something like this in the redirection:<br>
&gt;&gt;<br>
&gt;&gt; /login/oauthVerify?client_<wbr>name=OidcClient&amp;error=<wbr>unauthorized<br>
&gt;&gt; &amp;error_description=You%20are%<wbr>20not%20allowed%20to%20access%<br>
&gt;&gt; 20this%20application.&amp;state=<wbr>CrsA9f9bEzLWyjQfT5PN43MPxl_<wbr>PfMgvXZDQrEzCHi8<br>
&gt;&gt;<br>
&gt;&gt; Instead, it&#39;s like Keycloak does not check the Authorization<br>
&gt;&gt; configuration, it redirects to our webapp with a proper authorization code.<br>
&gt;&gt; Then the application is able to fetch the JWT successfully form the<br>
&gt;&gt; Keycloak token endpoint.<br>
&gt;&gt;<br>
&gt;&gt; Did we miss something? Are we trying to solve our issue in the wrong way ?<br>
&gt;&gt;<br>
&gt;&gt; Thank you all for your help,<br>
&gt;&gt;<br>
&gt;&gt; ______________________________<wbr>_________________<br>
&gt;&gt; keycloak-user mailing list<br>
&gt;&gt; <a href="mailto:keycloak-user@lists.jboss.org">keycloak-user@lists.jboss.org</a><br>
&gt;&gt; <a href="https://lists.jboss.org/mailman/listinfo/keycloak-user" rel="noreferrer" target="_blank">https://lists.jboss.org/<wbr>mailman/listinfo/keycloak-user</a><br>
&gt;&gt;<br>
&gt;<br>
&gt;<br>
&gt; ______________________________<wbr>_________________<br>
&gt; keycloak-user mailing list<br>
&gt; <a href="mailto:keycloak-user@lists.jboss.org">keycloak-user@lists.jboss.org</a><br>
&gt; <a href="https://lists.jboss.org/mailman/listinfo/keycloak-user" rel="noreferrer" target="_blank">https://lists.jboss.org/<wbr>mailman/listinfo/keycloak-user</a><br>
&gt;<br>
</div></div></blockquote></div><br></div>