**Problem:** 
Some AD users can't log in, they get the error:
`Authentification failed: password is incorrect or there is no user with such name`

Clickhouse version 22.3.2.1

**There is an error in Clickhouse logs:**
`<Error> Access(user directories): from: 10.11.12.13, user: AD_USERNAME: Authentification failed: Code: 532. DB::Exception: Size limit exceeded. (LDAP_ERROR)`

This error occurs for AD users who have many groups in the **memberOf** LDAP container.

**I checked the number of groups for 4 accounts:**

AD_USERNAME_1 - 107 groups - ERROR Authentification failed
AD_USERNAME_2 - 120 groups - ERROR Authentification failed
AD_USERNAME_3 - 54   groups - OK
AD_USERNAME_4 - 38   groups - OK

**I checked the search groups through the Ldapsearch program:**

Ldapsearch gave all 107 groups for the account without errors:
`ldapsearch -H "ldaps://hostname:636" -D 'CN=AD_USERNAME_1,OU=Users,DC=company,DC=corp.DC=net' -b 'DC=company,DC=corp.DC=net' '(&(objectClass=group)(member=CN=AD_USERNAME_1,OU=Groups,DC=company,DC=corp.DC=net))'`

**Probable cause of the error:** 
Clickhouse receives a list of groups which mapping from AD and cannot process a large string/array.
{
        case LDAPClient::Params::SASLMechanism::SIMPLE:
        {
            ::berval cred;
            cred.bv_val = const_cast<char *>(params.password.c_str());
            cred.bv_len = params.password.size();
            {
                const auto rc = ldap_sasl_bind_s(handle, final_bind_dn.c_str(), LDAP_SASL_SIMPLE, &cred, nullptr, nullptr, nullptr);
                
                if (rc == LDAP_INVALID_CREDENTIALS)
                    return false;
                diag(rc);
            }
            
            if (params.user_dn_detection)
            {
                const auto user_dn_search_results = search(*params.user_dn_detection);
                if (user_dn_search_results.empty())
                    throw Exception("Failed to detect user DN: empty search results", ErrorCodes::LDAP_ERROR);
                if (user_dn_search_results.size() > 1)
                    throw Exception("Failed to detect user DN: more than one entry in the search results", ErrorCodes::LDAP_ERROR);
                final_user_dn = *user_dn_search_results.begin();
            }
            return true;
        }
        default:
            throw Exception("Unknown SASL mechanism", ErrorCodes::LDAP_ERROR);
    }
}
void LDAPClient::closeConnection() noexcept