-
Notifications
You must be signed in to change notification settings - Fork 2.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
OIDC SSO authentication #2281
OIDC SSO authentication #2281
Conversation
Signed-off-by: Matthias De Bie <mattydebie@gmail.com>
Please add missing license headers to the files; thanks. |
@tomvda thanks for the new PR. This looks really good. We will do some testing with the PR and come back with final feedback / merge it. |
Thank you @tomvda I was waiting for this feature. |
@hberrayana, in fact it's certainly not only Keycloak that is supported, but it is the only one well tested. We could consider to refactor to OIDC, but it should already work with other OIDC IDPs as well. Some IDPs have there own specific requirements on top of OIDC, but it that case you could just extend the Keycloak/OIDC one and implement the differences. |
Hi @tomvda , Sorry for the long overdue response to the PR. We have been discussing the implementation of the PR in the Flowable dev team and we think it's a great addition to have additional authentication methods in the Flowable UI applications. Best regards |
The problem was infact the high dependency on the current flowable-idm from the different apps; you could maybe avoid the cookie based authentication via flowable-idm, but flowable-idm is also used as user and groups resources in for instance task assignments. Many IDP's have API endpoints to retrieve user and group information. So it would certainly be viable to have multiple implementations to retrieve user and group information from remote services. Looking forward to it! kr, |
Closing this PR since it has been superseded by #2531. We did what @tijsrademakers said in #2281 (comment). We are using Spring Security OAuth2, which means that you can login with Keycloak, Google, Okta etc. Basically any OAuth2 provider out there. Additionally we have added a rudimentary IdentityService (Only for the Example UI Apps) that uses the Keycloak REST API to query for users and groups. We have a blog post lined up where we explained these changes. Please try out what is on master and give us feedback. |
This PR should be the followup of PR #1447 as proposed there
It introduces some interfaces and abstract classes for several OIDC authentication providers and includes an implementation for Keycloak
Changes/improvements compared to the previous PR:
The OIDC implementation uses an OpenID Connect implementation on Spring Security. This was previously also already the case.
Additional properties in application.properties:
In your realm on Keycloak you should configure an additional client using following settings
The KeycloakSsoHandler will register new users in flowable-idm if they don't exist yet and update existing ones. Currently the handler gets all info from the userinfo endpoint, also tenant and privileges, but this should also be read from the JWT access token if available there; we'll improve this soon.
Tenant and privileges claims are optional now, but:
Future improvements: