<div dir="ltr">Hi,<div><br></div><div>&gt; <span style="font-size:13px">I&#39;m also toying around with the idea of pre-installing some of the</span></div><span style="font-size:13px">&gt; plugins so they are automatically included in the apiman quickstart.</span><div><br><div>A nice approach to this would be a post-install  &quot;setup wizard&quot; when the UI is first entered. This would enable user to add the seed data and possibly enable additional plugins. </div><div><br></div><div>Jakub. </div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Oct 10, 2015 at 4:13 PM, Eric Wittmann <span dir="ltr">&lt;<a href="mailto:eric.wittmann@redhat.com" target="_blank">eric.wittmann@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">Funny you should suggest that - the plugins will be *much* easier to<br>
install in version 1.2.x because there is a UI which lists all the<br>
available &quot;official&quot; apiman plugins.  Of course you can also still<br>
install your own plugin via the UI.<br>
<br>
I&#39;m also toying around with the idea of pre-installing some of the<br>
plugins so they are automatically included in the apiman quickstart.<br>
<span class="HOEnZb"><font color="#888888"><br>
-Eric<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
On 10/10/2015 5:39 AM, Tim Dudgeon wrote:<br>
&gt; Yes, indeed I was looking at the wrong policy.<br>
&gt; The Keycloak OAuth Policy looks exactly what I need and the blog post<br>
&gt; describes it well.<br>
&gt; You should make those non-bundled policies more visible!<br>
&gt;<br>
&gt; Tim<br>
&gt;<br>
&gt; On 09/10/2015 19:11, Eric Wittmann wrote:<br>
&gt;&gt; Perhaps you are looking at the wrong policy.  The one you want to use<br>
&gt;&gt; is the Keycloak OAuth Policy, which is available if you install the<br>
&gt;&gt; appropriate keycloak plugin.  A blog post about it can be found here:<br>
&gt;&gt;<br>
&gt;&gt; <a href="http://www.apiman.io/blog/gateway/security/oauth2/keycloak/authentication/authorization/2015/06/09/keycloak-oauth2.html" rel="noreferrer" target="_blank">http://www.apiman.io/blog/gateway/security/oauth2/keycloak/authentication/authorization/2015/06/09/keycloak-oauth2.html</a><br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; The Authorization policy only does role-based access control, not<br>
&gt;&gt; OAuth authentication.  The Keycloak OAuth policy should be configured<br>
&gt;&gt; first, and then the roles found in the bearer token will get passed to<br>
&gt;&gt; the Authorization policy, which should be configured 2nd.<br>
&gt;&gt;<br>
&gt;&gt; -Eric<br>
&gt;&gt;<br>
&gt;&gt; On 10/9/2015 2:01 PM, Tim Dudgeon wrote:<br>
&gt;&gt;&gt; Yes, but I don&#39;t see how a different realm/server this can be configured<br>
&gt;&gt;&gt; with the current Authorization policy.<br>
&gt;&gt;&gt; Is this possible?<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Tim<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On 09/10/2015 18:56, Eric Wittmann wrote:<br>
&gt;&gt;&gt;&gt; I would argue that using some *other* realm (NOT the apiman realm) is<br>
&gt;&gt;&gt;&gt; the more sensible thing to do.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; In fact, I might go so far as to suggest a second keycloak server<br>
&gt;&gt;&gt;&gt; would make more logical sense than using the apiman one.  Of course,<br>
&gt;&gt;&gt;&gt; practically speaking it makes sense to just have one KC server.  But<br>
&gt;&gt;&gt;&gt; definitely I think you want to create other realms - and one realm per<br>
&gt;&gt;&gt;&gt; organization is a very sensible approach.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; -Eric<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; On 10/9/2015 1:10 PM, Tim Dudgeon wrote:<br>
&gt;&gt;&gt;&gt;&gt; Picking up on this again, you mentioned OAuth2 authentication.<br>
&gt;&gt;&gt;&gt;&gt; By this I&#39;m assuming you mean what&#39;s listed as &quot;Authorization<br>
&gt;&gt;&gt;&gt;&gt; policy&quot; in<br>
&gt;&gt;&gt;&gt;&gt; the available policies, and this authenticates against the apiman<br>
&gt;&gt;&gt;&gt;&gt; realm<br>
&gt;&gt;&gt;&gt;&gt; in keycloak.<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; Is it possible/desirable to allow a different realm to be configured<br>
&gt;&gt;&gt;&gt;&gt; here? The idea being that an organisation could create a policy that<br>
&gt;&gt;&gt;&gt;&gt; authenticates against a realm configured for that organisation (maybe<br>
&gt;&gt;&gt;&gt;&gt; using its own LDAP server etc.). This way an organisation can<br>
&gt;&gt;&gt;&gt;&gt; configure<br>
&gt;&gt;&gt;&gt;&gt; usage for all its users without them needing to be apiman users?<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; Tim<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; On 23/07/2015 14:34, Eric Wittmann wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt; +1 thanks.<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; On 7/23/2015 9:13 AM, Tim Dudgeon wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; No further comments so I created an issue for this:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; <a href="https://issues.jboss.org/browse/APIMAN-569" rel="noreferrer" target="_blank">https://issues.jboss.org/browse/APIMAN-569</a><br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; On 20/07/2015 10:09, Eric Wittmann wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Hi Tim.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Interesting scenario.  The typical scenario is that the apiman<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; UI is<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; only used by service providers and application developers. End<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; users<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; will typically not use the apiman UI.  However, that doesn&#39;t mean<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; apiman can&#39;t track end users.  If authentication is enabled (either<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; BASIC or OAuth2), then rate limiting can be configured on a<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; per-user<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; basis.  When you configure the rate limit policy, you can choose<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; &quot;user&quot; as an option and then provide the HTTP header containing the<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; user.  When configuring the authentication policy (which must come<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; first in the policy chain) you would need to enable forwarding<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; of the<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; username.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; In addition, the next version of apiman will also include the<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; authenticated user in the metrics data.  This would allow you to<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; query<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; the elasticsearch metrics information by username.  We won&#39;t<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; have any<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; specific support in the UI for breaking down metrics by user, at<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; least<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; not right away, but it will be in the data at least.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Of course, you *can* use apiman the way you are suggesting. But as<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; you observed there are some challenges.  We don&#39;t currently have a<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; way<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; to assign roles to users automatically when they register.  It<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; would<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; need to be a feature request I think:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; <a href="https://issues.jboss.org/browse/APIMAN" rel="noreferrer" target="_blank">https://issues.jboss.org/browse/APIMAN</a><br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; I think if we added a very generic &quot;user registration&quot; extension<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; point<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; to apiman, then you could write your own custom handler to do<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; whatever<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; you want.  Such a handler would be invoked the first time a new<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; user<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; logged into apiman.  You could drive off their email address,<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; roles,<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; whatever.  You could also provide a handler via a plugin.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Thoughts?  :)<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; -Eric<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; On 7/19/2015 7:45 AM, Tim Dudgeon wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Hi<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; I&#39;ve been looking into apiman and like what I see, but have a<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; conceptual<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; question about its usage.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; I need something to manage the end users of my applications, not<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; just<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; the people who are developing and managing those applications. Is<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; apiman<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; suitable for this? e.g. each actual user of the applications would<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; register to apiman and use their own access keys. I need this as I<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; will<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; want to handle metrics and usage on the level of the individual<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; user.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Also, if this was to be a sensible approach how does one<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; configure the<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; registration process. I understand apiman is using keycloak for<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; this,<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; but I see no link in the UI to configure keycloak. And I would<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; need a<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; way that new users could automatically be assigned to an<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; organisation<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; (e.g. a default organisation, or a specific one based on their<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; email<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; address).<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Tim<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Apiman-user mailing list<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; <a href="mailto:Apiman-user@lists.jboss.org">Apiman-user@lists.jboss.org</a><br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; <a href="https://lists.jboss.org/mailman/listinfo/apiman-user" rel="noreferrer" target="_blank">https://lists.jboss.org/mailman/listinfo/apiman-user</a><br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; Apiman-user mailing list<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; <a href="mailto:Apiman-user@lists.jboss.org">Apiman-user@lists.jboss.org</a><br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; <a href="https://lists.jboss.org/mailman/listinfo/apiman-user" rel="noreferrer" target="_blank">https://lists.jboss.org/mailman/listinfo/apiman-user</a><br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt;&gt;&gt; Apiman-user mailing list<br>
&gt;&gt;&gt;&gt;&gt; <a href="mailto:Apiman-user@lists.jboss.org">Apiman-user@lists.jboss.org</a><br>
&gt;&gt;&gt;&gt;&gt; <a href="https://lists.jboss.org/mailman/listinfo/apiman-user" rel="noreferrer" target="_blank">https://lists.jboss.org/mailman/listinfo/apiman-user</a><br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt; Apiman-user mailing list<br>
&gt;&gt;&gt; <a href="mailto:Apiman-user@lists.jboss.org">Apiman-user@lists.jboss.org</a><br>
&gt;&gt;&gt; <a href="https://lists.jboss.org/mailman/listinfo/apiman-user" rel="noreferrer" target="_blank">https://lists.jboss.org/mailman/listinfo/apiman-user</a><br>
&gt;&gt;&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; Apiman-user mailing list<br>
&gt; <a href="mailto:Apiman-user@lists.jboss.org">Apiman-user@lists.jboss.org</a><br>
&gt; <a href="https://lists.jboss.org/mailman/listinfo/apiman-user" rel="noreferrer" target="_blank">https://lists.jboss.org/mailman/listinfo/apiman-user</a><br>
&gt;<br>
_______________________________________________<br>
Apiman-user mailing list<br>
<a href="mailto:Apiman-user@lists.jboss.org">Apiman-user@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/apiman-user" rel="noreferrer" target="_blank">https://lists.jboss.org/mailman/listinfo/apiman-user</a><br>
</div></div></blockquote></div><br></div></div>