This message was deleted.
# troubleshooting
s
This message was deleted.
g
the escalator is important: it's how the servers authenticate to each other. so you should at least have a Druid metadata user for this
🙏 1
LDAP and Druid metadata users would be separate authenticators, but you can use the same authorizer for both if you like. the authorizer you define would need to be able to handle identities from both authenticators
d
When you talked about metadata users, what do you mean by this?
g
I assumed it meant users whose authentication info (username / hashed pass) are stored in Druid's metadata store
👍 2
i.e.
basic
authorizer
m
@Gian Merlino thanks for your replies. About
“the authorizer you define would need to be able to handle identities from both authenticators”
Is this may be done by configuration only or some additional implementation is needed?
d
TIL: you can use the same authorizer for both. We always separate them out: basicAuth & LDAP. @Michael Taranov authentication and authorization are all configured using the Coordinator Rest API.
The way we do it is by: 1. configured authentication & authorization for basicAuth. 2. configured authentication & authorization for LDAP. 3. And then configure an escalator by first checking the basicAuth and if missing check LDAP.
m
Thanks for help @Didip Kerabat, will try
Hi Again, Tried to define following but still when starting quickstart I’m getting errors about internal user
druid_system
is unable to authorize Anything special I missed ?
Copy code
023-03-08T14:34:36,236 INFO [qtp456172878-137] org.apache.druid.security.basic.authentication.BasicHTTPAuthenticator - Exception authenticating user druid_system - Unauthorized
2023-03-08T14:34:36,474 INFO [qtp456172878-136] org.apache.druid.security.basic.authentication.BasicHTTPAuthenticator - Exception authenticating user druid_system - Unauthorized
Ok I found that I can’t even Authz with basic settings without additional LDAP. Might it be because of some users already stored in metadata in some way ?
Copy code
druid.auth.authenticatorChain=["MyBasicMetadataAuthenticator"]

druid.auth.authenticator.MyBasicMetadataAuthenticator.type=basic
druid.auth.authenticator.MyBasicMetadataAuthenticator.initialAdminPassword=password1  # admin user
druid.auth.authenticator.MyBasicMetadataAuthenticator.initialInternalClientPassword=password2 # druid_system user 
druid.auth.authenticator.MyBasicMetadataAuthenticator.credentialsValidator.type=metadata
druid.auth.authenticator.MyBasicMetadataAuthenticator.skipOnFailure=true
druid.auth.authenticator.MyBasicMetadataAuthenticator.authorizerName=MyBasicMetadataAuthorizer

druid.escalator.type=basic
druid.escalator.internalClientUsername=druid_system
druid.escalator.internalClientPassword=password2
druid.escalator.authorizerName=MyBasicMetadataAuthorizer

druid.auth.authorizers=["MyBasicMetadataAuthorizer"]

druid.auth.authorizer.MyBasicMetadataAuthorizer.type=basic
druid.auth.authorizer.MyBasicMetadataAuthorizer.initialAdminUser=admin
druid.auth.authorizer.MyBasicMetadataAuthorizer.initialAdminRole=admin
druid.auth.authorizer.MyBasicMetadataAuthorizer.roleProvider.type=metadata
After removing Derby DB again and first initializing basic auth and only then adding LDAP auth I succeed to work with both LDAP and metadata users. These are final configurations in case it will help to someone.
d
oh yes, the metadata DB must be a networked DB (PG/MySQL), and not embedded like Derby.
âś… 1