[
https://issues.apache.org/jira/browse/ARTEMIS-2886?focusedWorklogId=478078&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-478078
]
ASF GitHub Bot logged work on ARTEMIS-2886:
-------------------------------------------
Author: ASF GitHub Bot
Created on: 02/Sep/20 19:18
Start Date: 02/Sep/20 19:18
Worklog Time Spent: 10m
Work Description: luisalves00 commented on pull request #3246:
URL: https://github.com/apache/activemq-artemis/pull/3246#issuecomment-685944634
My use case is quite simple. I'll try to describe as best as I can, but
please note that not all is decided yet.
Clients (services) will connect to the broker using an access token
(https://auth0.com/docs/flows/client-credentials-flow) for a given realm
[domain] (Keycloak is the OpenID provider).
The token contains the identification of the service (ClientID) and their
roles (if needed). I want everything to be dynamic, so every authenticated
client can create addresses under a certain domain that include their clientID.
E.g I'm app-a then I can create (checkType.CREATE_ADDRESS) the address
"org.artemis.app-a.event". So on ActiveMQSecurityManager4 this was already in
place. Now I want to be able to control who subscribes to my address (their
might be some sensible data and I don't want all clients snooping arround).
Here is the part that I requested on the ticket of the FQQN. The flow will be
the same as the client that created the address but the operation will be
CheckType.CREATE_DURABLE_QUEUE (as it's subscribing) over the resource
"org.artemis.app-a.event::app-c". As you've might guessed the clientID is
"app-c" and on his access token it will have a role that allow it to subscribe.
Something like "org.artemis.app-a.event::app-c::subscribe". This was granted by
AppA on Keycloak. This last part is not yet defined as it's also possible to
use a Request Party Token (RPT), but in each case I need the CLIENTID (maps to
Subject), RESOURCE (maps to an FQQN), SCOPE (maps to the CheckType) and the
Permission (maps to RESOURCE::CHECK_TYPE) where I can apply policies to grant
or not access (reference:
https://www.keycloak.org/docs/latest/authorization_services/#_overview_terminology).
Does it make sense?
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
Issue Time Tracking
-------------------
Worklog Id: (was: 478078)
Time Spent: 1h 20m (was: 1h 10m)
> Optimize security auth
> ----------------------
>
> Key: ARTEMIS-2886
> URL: https://issues.apache.org/jira/browse/ARTEMIS-2886
> Project: ActiveMQ Artemis
> Issue Type: Improvement
> Reporter: Justin Bertram
> Assignee: Justin Bertram
> Priority: Major
> Fix For: 2.16.0
>
> Time Spent: 1h 20m
> Remaining Estimate: 0h
>
> Both authentication and authorization will hit the underlying security
> repository (e.g. files, LDAP, etc.). For example, creating a JMS connection
> and a consumer will result in 2 hits with the *same* authentication request.
> This can cause unwanted (and unnecessary) resource utilization, especially in
> the case of networked configuration like LDAP.
> There is a rudimentary cache for authorization, but it is cleared *totally*
> every 10 seconds by default (controlled via the
> {{security-invalidation-interval setting}}), and it must be populated
> initially which still results in duplicate auth requests.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)