LDAP issues with NC24 are driving me mad

Nextcloud version (eg, 20.0.5): 24.0.6
Operating system and version (eg, Ubuntu 20.04): Debian 11 Bullseye
Apache or nginx version (eg, Apache 2.4.25): nginx 1.20.2
PHP version (eg, 7.4): 7.4.26

The issue you are facing:
Connection to LDAP server (Samba AD 4.16.5) seems to be a lottery. It works for a couple of seconds but then again fails consistently. The logs are littered with an error that there is a port missing:

Configuration Error (prefix s01): No LDAP Port given!

Is this the first time you’ve seen this error? (Y/N):
Y but then I never used NC in this version with Samba AD before.

Steps to replicate it:

  1. Try to setup LDAP/AD-integration, enter user credentials, server, protocol and host
  2. Try to determine or test the base-dn

The output of your Nextcloud log in Admin > Logging:

[user_ldap] Warnung: Configuration Error (prefix s01): No LDAP Port given!

POST /apps/user_ldap/ajax/wizard.php
from 10.10.10.195 by ncadmin at 2022-10-16T22:08:36+00:00

[support] Fehler: OC\ServerNotAvailableException: Lost connection to LDAP server. at <<closure>>

 0. /config/www/nextcloud/apps/user_ldap/lib/LDAP.php line 407
    OCA\User_LDAP\LDAP->processLDAPError()
 1. /config/www/nextcloud/apps/user_ldap/lib/LDAP.php line 308
    OCA\User_LDAP\LDAP->postFunctionCall()
 2. /config/www/nextcloud/apps/user_ldap/lib/LDAP.php line 69
    OCA\User_LDAP\LDAP->invokeLDAPMethod("*** sensitive parameters replaced ***")
 3. /config/www/nextcloud/apps/user_ldap/lib/Connection.php line 685
    OCA\User_LDAP\LDAP->bind("*** sensitive parameters replaced ***")
 4. /config/www/nextcloud/apps/user_ldap/lib/Connection.php line 603
    OCA\User_LDAP\Connection->bind("*** sensitive parameters replaced ***")
 5. /config/www/nextcloud/apps/user_ldap/lib/Connection.php line 228
    OCA\User_LDAP\Connection->establishConnection()
 6. /config/www/nextcloud/apps/user_ldap/lib/Connection.php line 236
    OCA\User_LDAP\Connection->init()
 7. /config/www/nextcloud/apps/user_ldap/lib/Access.php line 1217
    OCA\User_LDAP\Connection->getConnectionResource()
 8. /config/www/nextcloud/apps/user_ldap/lib/Access.php line 985
    OCA\User_LDAP\Access->count()
 9. /config/www/nextcloud/apps/user_ldap/lib/User_LDAP.php line 596
    OCA\User_LDAP\Access->countUsers()
10. /config/www/nextcloud/apps/user_ldap/lib/User_Proxy.php line 349
    OCA\User_LDAP\User_LDAP->countUsers()
11. /config/www/nextcloud/apps/support/lib/Service/SubscriptionService.php line 128
    OCA\User_LDAP\User_Proxy->countUsers()
12. /config/www/nextcloud/apps/support/lib/Service/SubscriptionService.php line 274
    OCA\Support\Service\SubscriptionService->getUserCount()
13. /config/www/nextcloud/apps/support/lib/Subscription/SubscriptionAdapter.php line 52
    OCA\Support\Service\SubscriptionService->getSubscriptionInfo()
14. /config/www/nextcloud/lib/private/Support/Subscription/Registry.php line 137
    OCA\Support\Subscription\SubscriptionAdapter->hasValidSubscription()
15. /config/www/nextcloud/apps/settings/lib/Settings/Personal/ServerDevNotice.php line 103
    OC\Support\Subscription\Registry->delegateHasValidSubscription()
16. /config/www/nextcloud/lib/private/Settings/Manager.php line 214
    OCA\Settings\Settings\Personal\ServerDevNotice->getSection()
17. /config/www/nextcloud/lib/private/Settings/Manager.php line 328
    OC\Settings\Manager->getSettings()
18. /config/www/nextcloud/lib/private/Settings/Manager.php line 289
    OC\Settings\Manager->getPersonalSettings()
19. /config/www/nextcloud/apps/settings/lib/Controller/CommonSettingsTrait.php line 107
    OC\Settings\Manager->getPersonalSections()
20. /config/www/nextcloud/apps/settings/lib/Controller/CommonSettingsTrait.php line 62
    OCA\Settings\Controller\AdminSettingsController->formatPersonalSections()
21. /config/www/nextcloud/apps/settings/lib/Controller/CommonSettingsTrait.php line 139
    OCA\Settings\Controller\AdminSettingsController->getNavigationParameters()
22. /config/www/nextcloud/apps/settings/lib/Controller/AdminSettingsController.php line 68
    OCA\Settings\Controller\AdminSettingsController->getIndexResponse()
23. /config/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php line 225
    OCA\Settings\Controller\AdminSettingsController->index()
24. /config/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php line 133
    OC\AppFramework\Http\Dispatcher->executeController()
25. /config/www/nextcloud/lib/private/AppFramework/App.php line 172
    OC\AppFramework\Http\Dispatcher->dispatch()
26. /config/www/nextcloud/lib/private/Route/Router.php line 298
    OC\AppFramework\App::main()
27. /config/www/nextcloud/lib/base.php line 1030
    OC\Route\Router->match()
28. /config/www/nextcloud/index.php line 36
    OC::handleRequest()

GET /settings/admin/ldap
from 10.10.10.195 by ncadmin at 2022-10-16T21:28:54+00:00

The output of your config.php file in /path/to/nextcloud (make sure you remove any identifiable information!):

<?php
$CONFIG = array (
  'memcache.local' => '\\OC\\Memcache\\APCu',
  'redis' =>
  array (
    'host' => 'nextcloud-redis',
    'port' => 6379,
    'timeout' => 0.0,
  ),
  'datadirectory' => '/data',
  'instanceid' => '*** sensitive parameters replaced ***',
  'passwordsalt' => '*** sensitive parameters replaced ***',
  'secret' => '*** sensitive parameters replaced ***',
  'trusted_domains' =>
  array (
    0 => '*** sensitive parameters replaced ***',
  ),
  'trusted_proxies' => ['10.10.10.195'],
  'dbtype' => 'mysql',
  'version' => '24.0.6.1',
  'overwrite.cli.url' => '*** sensitive parameters replaced ***',
  'overwritehost' => '*** sensitive parameters replaced ***',
  'overwriteprotocol' => 'https',
  'dbname' => 'nextcloud',
  'dbhost' => 'nextcloud-db',
  'dbport' => '',
  'dbtableprefix' => 'oc_',
  'mysql.utf8mb4' => true,
  'dbuser' => 'nextcloud',
  'dbpassword' => '*** sensitive parameters replaced ***',
  'installed' => true,
  'mail_from_address' => 'no-reply',
  'mail_smtpmode' => 'smtp',
  'mail_sendmailmode' => 'smtp',
  'mail_domain' => '*** sensitive parameters replaced ***',
  'mail_smtpsecure' => 'tls',
  'mail_smtpauth' => 1,
  'mail_smtphost' => '*** sensitive parameters replaced ***',
  'mail_smtpport' => '587',
  'mail_smtpname' => '*** sensitive parameters replaced ***',
  'mail_smtppassword' => '*** sensitive parameters replaced ***',
  'default_phone_region' => 'de',
  'ldapProviderFactory' => 'OCA\\User_LDAP\\LDAPProviderFactory',
  'default_language' => 'de',
  'default_locale' => 'de_DE',
  'defaultapp' => 'files',
  'skeletondirectory' => '',
  'updater.release.channel' => 'stable',
);

The output of your Apache/nginx/system log in /var/log/____:

no errors

The LDAP config looks perfectly fine to and works from another container on the same host without issues:

+-------------------------------+-----------------------------------------------------------------------------------+
| Configuration                 | s01                                                                               |
+-------------------------------+-----------------------------------------------------------------------------------+
| hasMemberOfFilterSupport      | 1                                                                                 |
| homeFolderNamingRule          |                                                                                   |
| lastJpegPhotoLookup           | 0                                                                                 |
| ldapAgentName                 | CN=svc.nextcloud,CN=Users,DC=ad,DC=*** sensitive parameters replaced ***,DC=de                                      |
| ldapAgentPassword             | ***                                                                               |
| ldapAttributesForGroupSearch  |                                                                                   |
| ldapAttributesForUserSearch   |                                                                                   |
| ldapBackupHost                |                                                                                   |
| ldapBackupPort                |                                                                                   |
| ldapBase                      | dc=ad,dc=*** sensitive parameters replaced ***,dc=de                              |
| ldapBaseGroups                | cn=users,dc=ad,dc=*** sensitive parameters replaced ***,dc=de                     |
| ldapBaseUsers                 | cn=users,dc=ad,dc=*** sensitive parameters replaced ***,dc=de                     |
| ldapCacheTTL                  | 600                                                                               |
| ldapConfigurationActive       | 0                                                                                 |
| ldapDefaultPPolicyDN          |                                                                                   |
| ldapDynamicGroupMemberURL     |                                                                                   |
| ldapEmailAttribute            | mail                                                                              |
| ldapExperiencedAdmin          | 0                                                                                 |
| ldapExpertUUIDGroupAttr       |                                                                                   |
| ldapExpertUUIDUserAttr        |                                                                                   |
| ldapExpertUsernameAttr        |                                                                                   |
| ldapExtStorageHomeAttribute   |                                                                                   |
| ldapGidNumber                 | gidNumber                                                                         |
| ldapGroupDisplayName          | cn                                                                                |
| ldapGroupFilter               | (&(objectClass=Group)(cn=grp.*))                                                  |
| ldapGroupFilterGroups         |                                                                                   |
| ldapGroupFilterMode           | 1                                                                                 |
| ldapGroupFilterObjectclass    |                                                                                   |
| ldapGroupMemberAssocAttr      | member                                                                            |
| ldapHost                      | ldaps://192.168.10.4                                                              |
| ldapIgnoreNamingRules         |                                                                                   |
| ldapLoginFilter               | (&(objectClass=person)(memberOf=cn=grp.*)(|(mailPrimaryAddress=%uid)(mail=%uid))) |
| ldapLoginFilterAttributes     |                                                                                   |
| ldapLoginFilterEmail          | 1                                                                                 |
| ldapLoginFilterMode           | 1                                                                                 |
| ldapLoginFilterUsername       | 0                                                                                 |
| ldapMatchingRuleInChainState  | unknown                                                                           |
| ldapNestedGroups              | 0                                                                                 |
| ldapOverrideMainServer        |                                                                                   |
| ldapPagingSize                | 500                                                                               |
| ldapPort                      | 636                                                                               |
| ldapQuotaAttribute            |                                                                                   |
| ldapQuotaDefault              |                                                                                   |
| ldapTLS                       | 0                                                                                 |
| ldapUserAvatarRule            | default                                                                           |
| ldapUserDisplayName           | displayname                                                                       |
| ldapUserDisplayName2          |                                                                                   |
| ldapUserFilter                | (&(objectClass=person)(memberOf=grp.*))                                           |
| ldapUserFilterGroups          |                                                                                   |
| ldapUserFilterMode            | 1                                                                                 |
| ldapUserFilterObjectclass     | person                                                                            |
| ldapUuidGroupAttribute        | auto                                                                              |
| ldapUuidUserAttribute         | auto                                                                              |
| turnOffCertCheck              | 0                                                                                 |
| turnOnPasswordChange          | 0                                                                                 |
| useMemberOfToDetectMembership | 1                                                                                 |
+-------------------------------+-----------------------------------------------------------------------------------+

Any help, hints, ideas are much appreciated.

1 Like

Are you sure you have only one LDAP config saved?

Does occ ldap:show-config only shows one config?

Yes, only one. Above is the full output of the command.

It seems that the wizard is a mess. If setup via occ command it seems to work fine…