Hi Matthias,
At this stage I am still generating ideas to try and help solve a problem I am trying to address. I will work more on it today and may have more to discuss on that topic soon.
In the meantime, I am toying with the idea of having two user stores essentially. Similar to the common concept in LDAP called chaining which is generally useful to organizations. Translating it to Jupyterhub, let's say you have a corporate LDAP that you want to add access to the new Jupyterhub instance you stood up, but you've already defined all your users using say PAM with local accounts (or Kerberos or JWT or other) and then you want to add an LDAP source. Generally you feel these users sets are distinct sets and should have similar access. So, you want primary store to be PAM and then consult LDAP for the second authenticator.
In my case, I am thinking in terms of JWT as the primary and KDC as a secondary, and the policy may need to be an intersection of the user sets, rather than union as I described above. So if a user is found in JWT and they are found in KDC in some realm, then allow access to the hub. I'm sure I could probably write a custom authenticator specific to JWT + KDC, but wouldn't it be neat if there were a strategy for chaining authenticators? I don't know, just some ideas at this point I guess.
Thanks for your consideration,
Tim