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