Versions (relevant - OpenSearch/Dashboard/Server OS/Browser): 3.3.1 (dashboards 3.3.0)
Describe the issue:
Today I did a rolling restart of my 17-node OpenSearch cluster.
I started on version 2.19.0 and went straight to 3.3.1. During the rolling upgrade, everything went smoothly and I was still able to log in. However, after the final server had updated, and I also upgraded my Dashboards Docker container, I could no longer log in with LDAP.
Internal users still work, however I did have to manually reset their passwords. I saw a Github issue about this, and it mentioned new hashing methods. Probably related? Issue mentioned there would be a migration guide, but I’ve found no such thing.
When I just do a simple curl basic auth login against /_cluster/health, these errors show up in my server logs:
Cannot retrieve roles for User [name=MYUSER, backend_roles=[], requestedTenant=null] from ldap due to OpenSearchSecurityException[java.lang.NullPointerException: Cannot invoke "org.ldaptive.Connection.getProviderConnection()" because the return value of "org.ldaptive.SearchOperation.getConnection()" is null]; nested: NullPointerException[Cannot invoke "org.ldaptive.Connection.getProviderConnection()" because the return value of "org.ldaptive.SearchOperation.getConnection()" is null];
and afterwards
No cluster-level perm match for User [name=MYUSER, backend_roles=[], requestedTenant=null] Resolved [aliases=[*], allIndices=[*], types=[*], originalRequested=[*], remoteIndices=[]] [Action [cluster:monitor/health]] [RolesChecked []]. No permissions for [cluster:monitor/health]
I did try reapplying my security configs with securityadmin.sh, but to no avail (now I’ve probably broken a bunch of updates since last backup..).
I did try enabling the new features on Dashboards it suggested (data source, workspace, explore), but that didn’t help and I’ve disabled them again.
Any tips? Do I need to migrate something?