Integrating Imixs-Workflow with Apereo CAS (OIDC, Opaque Tokens, and Role Propagation) #949
Replies: 1 comment
-
|
Imixs-Workflow does not depend on a single authentication mechanism. Imixs-Workflow supports all common authentication methods – including OIDC, which is supported by all Jakarta EE servers. Therefore, you can also freely configure Imixs-Microservice. On the one hand, the application server provides the possibility to connect different security realms with your application. This means it depends on whether you are using, for example, Wildfly or Payara. The configuration is done in the application server. The other aspect is the User Role mapping. As Imixs-Workflow is sitting on top of the Jakarta EE framework there is no proprietary mechanism in the workflow engine itself. Which means things like the principal name or the roles are provided by the application container transparent for the Worklfow engine.
You can find details here In most IAM Servers you can map the user roles to application specific roles if needed. So I think this is also possible in Apereo CAS which I do not know. Even if this is not possible, Jakarta EE App Servers allow you to map the roles on application side. But I do not think this is necessary. So how to go: If you are running Docker, first make sure you are using the Wildfly Image 29.0.1.Final-jdk17. I just added a actual configuration here: https://github.com/imixs/imixs-microservice/tree/master/docker/configuration/wildfly/29.0.1.Final-jdk17 In you application you just need to add the maven dependcy <dependency>
<groupId>org.imixs.security</groupId>
<artifactId>imixs-oidc</artifactId>
<version>${org.imixs.security.version}</version>
<type>jar</type>
<scope>compile</scope>
</dependency>With this module you can configure your server according to the setup guide: https://github.com/imixs/imixs-security/tree/main/imixs-oidc Let me know if this helps you. We can also set up a Keycloak example. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Hello everyone,
I’m working on a microservice-based application where I plan to use Imixs-Workflow as the workflow engine. I would like some guidance on integrating it with our existing authentication and authorization setup.
Current Architecture
IAM / Authentication Server: Apereo CAS
OIDC is enabled and already used by other services
CAS issues opaque access tokens (not JWT)
Token validation is performed using token introspection
OIDC best practice followed: claims are not embedded in the access token
/oidc/profileendpointResource Services: Spring Boot 3.x microservices
Workflow Engine: Imixs-Workflow (microservice setup)
Database:
Requirement
Users authenticate via CAS login
The same authenticated user should:
User identity and roles/groups must be consistently available to the workflow engine
We want to reuse the existing user & role master data, or minimally adapt it for Imixs-Workflow
The same opaque access token issued by CAS should be used by all services, including the workflow engine
Understanding So Far
Imixs-Workflow microservices support OIDC-based authentication
CAS already functions as an OIDC provider for other services
Other Spring Boot resource servers:
/oidc/profileKey Questions
Authentication Integration
User & Role Propagation
Since claims are not embedded in the access token:
/oidc/profileendpoint using the access token?Alternatively:
Authorization in Imixs
How does Imixs consume externally provided roles or groups for:
Is there a supported or recommended way to map CAS roles/groups to Imixs roles?
Best Practices & References
Has anyone integrated Imixs-Workflow with:
Are there reference configurations or implementation examples available?
Goal
The ultimate goal is to enable single sign-on via CAS, where:
The user logs in once using CAS credentials
The same authenticated identity (with roles/groups fetched via
/oidc/profile) is seamlessly used by:Without duplicating user or role management logic
Any guidance, configuration examples, or architectural suggestions would be greatly appreciated.
Thanks in advance!
Beta Was this translation helpful? Give feedback.
All reactions