Supported production setup with Keycloak and LDAP#720
Conversation
There was a problem hiding this comment.
Pull Request Overview
This PR enhances the authentication system by refining LDAP and Keycloak configurations to support both autoprovisioning and shared user directory modes. Key changes include standardizing LDAP schema attributes, updating Keycloak OIDC claim mappings, and introducing a dedicated configuration for Keycloak autoprovisioning mode.
Reviewed Changes
Copilot reviewed 5 out of 10 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| deployments/examples/opencloud_full/ldap.yml | Updated LDAP filters and schema identifiers with clearer, standardized values. |
| deployments/examples/opencloud_full/keycloak.yml | Modified OIDC claim mappings and toggled auto-provisioning behavior for shared directory mode. |
| deployments/examples/opencloud_full/keycloak-autoprovisioning.yml | Added a separate configuration for autoprovisioning with distinct LDAP schema and user mechanism settings. |
Files not reviewed (5)
- deployments/examples/opencloud_full/.env: Language not supported
- deployments/examples/opencloud_full/config/keycloak/docker-entrypoint-override.sh: Language not supported
- deployments/examples/opencloud_full/config/ldap/ldif/10_base.ldif: Language not supported
- deployments/examples/opencloud_full/config/ldap/ldif/20_users.ldif: Language not supported
- deployments/examples/opencloud_full/config/ldap/ldif/30_groups.ldif: Language not supported
Comments suppressed due to low confidence (2)
deployments/examples/opencloud_full/keycloak.yml:17
- The change of PROXY_USER_OIDC_CLAIM from 'preferred_username' to 'uuid' may cause authentication issues unless Keycloak is configured to provide a 'uuid' claim. Please verify that the identity provider emits the expected claim.
PROXY_USER_OIDC_CLAIM: "uuid"
deployments/examples/opencloud_full/keycloak-autoprovisioning.yml:18
- OC_LDAP_USER_SCHEMA_ID is set to 'opencloudUUID' in the autoprovisioning config while 'entryUUID' is used in the shared directory mode; confirm that this intentional discrepancy aligns with the desired behavior.
OC_LDAP_USER_SCHEMA_ID: "opencloudUUID"
Hm, somehow these two are self-contradicting. If we configure the LDAP server to be really read-only for opencloud then we shouldn't be able to write to the It's only working because the example is still using the OpenLDAP If we're really talking about a supported setup here I think we need to come up with a different solution for custom groups or disable them until we have a solution. |
e23effc to
b68d5aa
Compare
I changed the description. Today tested this with a POC, the partner was fine with the optional group subtree. |
Enhanced Authentication System with Improved LDAP and Keycloak Integration
Summary
This PR improves the authentication system with better LDAP and Keycloak configurations for both autoprovisioning and shared user directory modes. It enhances the default deployment examples with clearer documentation and more standardized configuration.
Key Changes
LDAP Improvements
entryUUIDas the standard user/group identifierKeycloak Enhancements
Configuration Clarity
Authentication Modes
1. Shared User Directory Mode
In this mode:
2. Autoprovisioning Mode
In this mode:
Testing Instructions
deployments/examples/opencloud_fulldirectoryLDAP=:ldap.ymlandKEYCLOAK=:keycloak.ymlin .envdocker-compose up -dLDAP=:ldap.yml,KEYCLOAK=:keycloak.yml, andKEYCLOAK_AUTOPROVISIONING=:keycloak-autoprovisioning.ymlin .envdocker-compose up -dRelated Issues
Motivation and Context
How Has This Been Tested?
Screenshots (if appropriate):
Types of changes
Checklist: