Hello list, since, according to documentation, PropertiesLogin JAAS module is not recommended for production use, and .properties files are not synched in a cluster environment, we are now searching for possible authentication alternatives.
At first I thought to build a Keycloak cluster, but reading through documentation I found that there is such a thing as ActiveMQBasicSecurityManager which should be enough (our case: thousands of external MQ clients using different Artemis user each, to separate their JMS queue data). Unfortunately documentation is a bit scarce on the examples how exactly ActiveMQBasicSecurityManager is configured, and internet search returns almost nothing, so I’m sorry in advance for a lot of questions. 1. Is it enough to configure <security-manager> in bootstrap.xml? Do I need to remove <jaas-security domain="activemq"/> line? Do I also somehow change login.config? Currently it is configured to use default PropertiesLogin JAAS module. 2. How do I separate Hawtio authentication from broker authentication? Does this mean I have to separate default “activemq” realm, use that different realm when starting Hawtio and then change login.config so it includes both realms using different authentication modules? 3. If the above answer is yes, is there an example somewhere how ActiveMQBasicSecurityManager is configured in login.config and what are the options? 4. Can I use the same .properties file for both, populate ActiveMQBasicSecurityManager bootstrap user credentials, and Hawtio authentication? 5. How bootstrapUser and bootstrapPassword works in cluster environment if binding journal already contains the same user? Let’s say I restart primary and backup becomes live, but earlier I have changed the password via management API using other means? Should I set bootstrapUser configuration in all cluster nodes or just in primary? 6. From our code perspective, can we still use JMSManagementHelper.putOperationInvocation() with "addUser" operation to add/delete users dynamically, or do we need to use different API? 7. Is there a tool to at least list all the users in the journal, or this is only possible calling some kind of API? 8. From the security perspective, are users’ passwords in binding journal properly hashed and cannot be retrieved if someone pokes at the data? Thank you in advance for any pointers. -- Best Regards, Vilius Šumskas Rivile IT manager +370 614 75713