Hi all,
I have a Docker setup consisting of an Alfresco Community 6.2 backend, an ADF frontend and Keycloak. Alfresco and the ADF frontend is set up to use Keycloak for authentication and everything is working fine, i.e. the following happens:
- The user enters the URL of the frontend application in the browser
- The user gets redirected to Keycloak and logs in
- Keycloak redirects the user back to the frontend application
- The user can browse the content served by the Alfresco backend
So everything works fine, but when a (Keycloak) user logs in, Alfresco creates two user nodes with the same username in Alfresco, i.e. inspection of the sys: people container in the Nodebrowser yields
and the Alfresco log shows this error:
alfresco_1 | 2021-04-20 12:16:16,055 INFO [security.person.PersonServiceImpl] [http-nio-8080-exec-4] Splitting 1 duplicate person objects.
alfresco_1 | 2021-04-20 12:16:16,062 ERROR [util.transaction.TransactionSupportUtil] [http-nio-8080-exec-4] After completion (committed) exception
alfresco_1 | org.alfresco.repo.security.permissions.AccessDeniedException: 03200099 Only users with ROLE_ADMINISTRATOR are allowed to manage users.
alfresco_1 | at org.alfresco.repo.security.authority.AuthorityTypeBehaviour.onUpdateProperties(AuthorityTypeBehaviour.java:89)
alfresco_1 | at jdk.internal.reflect.GeneratedMethodAccessor637.invoke(Unknown Source)
alfresco_1 | at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
alfresco_1 | at java.base/java.lang.reflect.Method.invoke(Method.java:566)
alfresco_1 | at org.alfresco.repo.policy.JavaBehaviour$JavaMethodInvocationHandler.invoke(JavaBehaviour.java:181)
alfresco_1 | at com.sun.proxy.$Proxy73.onUpdateProperties(Unknown Source)
I have tried to delete the two users (according to this thread https://hub.alfresco.com/t5/alfresco-content-services-forum/alfresco-acs-6-1-2ga-sso-authentification-with-keycloak/m-p/268299#M15006 ), but that does not solve the problem.
Any ideas why this is happening and how to fix it?
Regards,
Andreas