Hi,
thanks for your input.
Regarding Kibana, this is a bit tricky, but we can probably offer a workaround.
Background: Kibana acts like a proxy for Elasticsearch. While it is possible to add HTTP header to the KI <-> ES calls, it's not possible to change the URLs of the KI/ES endpoints: If you issue an HTTP request to Kibana, one or more internal requests to ES are being made, with a fixed URL scheme. So, it's not possible to add arbitrary URL parameters, like the JWT token.
A working workaround would look like this:
1. Make sure that the JWT authenticator comes before the HTTP Basic Auth for the Kibana server user in your sg_config.yml.
2. Configure the JWT authenticator to use token in the HTTP header
We could then extend the Kibana plugin like this:
1. When a JWT token parameter is found in the URL, we grab it and store it in a session cookie
2. If we find a JWT token in the said session cookie, we add it to the ES request as HTTP header
Which basically means we transform the query param to an HTTP header. You would "logout" by closing the browser, thus deleting the session cookie.
We have a working protoype/snapshot of the Kibana plugin, so the approach seems to work fine.
Before we start working on this further, please let me know if this approach is an option for you. If so, let us also know the exact KI/ES version you are using, so we can prepare a snapshot for you to try.