This message was deleted.
# troubleshooting
s
This message was deleted.
b
I haven't tried, but I'd think you could use the escalator as a middle step, as you said. Eg something like druid.auth.authenticatorChain=[“BasicAuthenticator”, “anonymous”] or ["BasicAuthenticator","allowAll"], then once it's rolled out, do a second pass and remove the anonymous or allowAll. (But I haven't tried it.)
1
m
Thanks for the tip.
b
yw, I'd be curious to hear whether it works, and how it goes
g
yeah, i would do what ben suggested: include
allowAll
in your chain at the end. this means that for people that don't attempt to authenticate at all, they'll get
allowAll
once everyone is authenticating successfully then you can remove
allowAll
m
So my auth chain looks like following
Copy code
druid.auth.authenticatorChain=["metadata-auth", "ldap", "anonymous"],

druid.auth.authenticator.anonymous.type=anonymous
druid.auth.authenticator.anonymous.identity=defaultUser
druid.auth.authenticator.anonymous.authorizerName=allowAll

druid.auth.authorizers=["metadata-authz", "ldapauth", "allowAll"]

druid.auth.authorizer.allowAll.type=allowAll
Wasn’t sure about the escalator part
Copy code
druid.escalator.type=noop
druid.escalator.authorizerName=allowAll
But in the end it is working even without escalator configuration at all About
Copy code
druid.auth.authorizer.allowAll.type=allowAll
Wasn’t sure why I needed to add it, but without it its not working I tried this on one node cluster, but going to test this on multi-node staging cluster
Verified with these settings that if people connect, for example, with LDAP they indeed logged with ldap identity in request.logging.
It would be nice to hear more opinions over my configuration as, imo, these allowAll/anonymous configs are not documented properly
g
what's the issue with the documentation? we should be able to fix it
m
@Gian Merlino This part was confusing … I wasn’t able just to add
allowAll
to
druid.auth.authorizers
but needed to add also following line to make it work otherwise it was yelling on “missing type”
druid.auth.authorizer.allowAll.type=allowAll
🤷‍♂️
g
ah, i see, probably an example would help…
definitely that page could use more examples
b
Our docs team is looking in to it, thank you!
🙌 1
m
Just something worth to mention, the first service to restart while Auth update should be coordinator. Initially started from historicals (as version upgrade suggest) , but got following exception and service failed to start.
Copy code
WARN [main] org.apache.druid.security.basic.authorization.db.cache.CoordinatorPollingBasicAuthorizerCacheManager - cachedSerializedGroupMappingMap is not available from the coordinator, skipping fetch of group mappings for now.
Maybe worth to add the order of service restarts, after Auth changes, to the documentation.
So the testing on Staging finished. As @Ben Krug suggested initially, added anonymous/allowAll in the end of chain, when applied other auth methods, verified that they are working and I see correct identity in request logging. Then created all relevant users/permissions/roles, removed anonymous/allowAll from the Auth/Authz chain and performed rolling restart. Our order was Coordinators/Routers/Brokers/middleManagers/Historicals. Not sure the order is correct after Coordinator but it worked without downtime and with minimal errors in log 🙂
Thanks you all again
🎉 1
b
Thanks for the update!