Identity and Access ManagementΒΆ
IAM(Identity and Access Management) is setup via Keycloak and LDAP.
OpenID Connect (OIDC) Support πΒΆ
OIDC is supported in this role (for example, via Keycloak). OIDC-specific tasks are included when enabled, allowing integration of external authentication providers seamlessly.
Verify OIDC ConfigurationΒΆ
compose exec -u www-data application /var/www/html/occ config:app:get sociallogin custom_providers
LDAPΒΆ
More information: https://docs.nextcloud.com/server/latest/admin_manual/configuration_user/user_auth_ldap.html
Get LDAP ConfigurationΒΆ
compose exec -u www-data application php occ ldap:show-config
Get all relevant entries except passwordΒΆ
SELECT * FROM `oc_appconfig` WHERE appid LIKE "%ldap%" and configkey != "s01ldap_agent_password";
Update User with LDAP valuesΒΆ
compose exec -it -u www-data application php occ ldap:check-user --update {{username}}
Update LDAP SyncΒΆ
compose exec -u www-data application php occ user:sync-account-data
Update Each UserΒΆ
If you want to update every LDAP user, run:
for user in $(compose exec -u www-data application php occ user:list --output=json | jq -r 'keys[]'); do
compose exec -u www-data application php occ ldap:check-user --update "$user"
done
Unlink AllΒΆ
for user in $(compose exec -u www-data application php occ ldap:show-remnants | tail -n +3 | awk -F '|' '{print $2}' | tr -d ' ' | grep -v '^$'); do
echo "Unlinking user from LDAP: $user"
echo "y" | compose exec -T -u www-data application php occ ldap:reset-user "$user"
done
Reset LDAP Links for Orphaned UsersΒΆ
Run this corrected script:
for user in $(compose exec -u www-data application php occ ldap:show-remnants | tail -n +3 | awk -F '|' '{print $2}' | tr -d ' ' | grep -v '^$'); do
echo "Resetting LDAP link for user: $user"
echo "y" | compose exec -T -u www-data application php occ ldap:reset-user "$user"
done
FederationΒΆ
If users are just created via Keycloak and not via LDAP, they have a different username. Due to this reaso concider to use LDAP to guaranty that the username is valid.