Hi John,
To narrow it down, could you share:
1. What backend roles the indexer actually returns for It6. Log in as It6 and call:
curl -k -u It6:'<password>' https://<wazuh-indexer>:9200/_plugins/_security/api/account?pretty
The
backend_roles field is the source of truth. (
OpenSearch Security API – Get account details)
2. Indexer log during a failing login:
/var/log/wazuh-indexer/wazuh-cluster.log (any line mentioning LDAP).
3. Did you re-run
securityadmin.sh after editing
config.yml? Per the Wazuh LDAP
guide, changes only take effect after that script pushes them to the security index.
4. The exact cn of the AD group It6 belongs to (you wrote both inosec and InfoSec). With
rolename: cn in your authz config, the backend role is the group's cn, not the OU name. The Wazuh LDAP
guide states this in the Required parameters section: "rolename: The attribute of the role entry that should be used as the role name." So your role mapping must list the group cn (inosec/InfoSec), not IT Accounts or Security Team.
You can confirm the exact group cn on the DC with:
Get-ADPrincipalGroupMembership -Identity It6 | Select-Object name, distinguishedName
The name column is what the indexer will return as backend_role.
5. The exact authz block from your
config.yml pasted as a code block. The rolebase line in your post reads:
rolebase: ou="Security Team, dc=xxxx, dc=xxxx
That looks like an unbalanced quote; the doc example uses an unquoted DN (
rolebase: ou=groups,dc=example,dc=org) or a fully quoted value. Could you confirm what is in the file?
Once I have items 1 and 2, I can tell whether the chain is breaking at bind, role search, or only at role mapping in
roles_mapping.yml / the dashboard.
Best regards,