Wie in meiner Frage other diskutiert, gibt es keine Unterstützung für WebSockets-Authentifizierung in Knox, aber als temporäre Lösung konnten wir Authentifizierung in unserem Back-End-Service behandeln. Unser Test hat jedoch gezeigt, dass Knox den Berechtigungsheader nicht an das Backend übergibt.Wie man Knox so konfiguriert, dass es den Berechtigungsheader an einen Backend-Dienst weiterleitet?
[client]$ curl -i -u '<user>:<password>' https://knox-server/gateway/default/myservice/ping
# 8090 is our backend port
[knox-server]$ ngrep -W byline port 8090
interface: eth0
filter: (port 8090) and ((ip || ip6) || (vlan && (ip || ip6)))
#
T <knox-server>:59118 -> <myservice>:8090 [AP]
GET /ping?doAs=<user> HTTP/1.1.
X-Forwarded-For: <client>.
X-Forwarded-Proto: https.
X-Forwarded-Port: 443.
X-Forwarded-Host: <knox-server>.
X-Forwarded-Server: <knox-server>.
X-Forwarded-Context: /gateway/default.
User-Agent: curl/7.54.0.
Accept: */*.
Host: <myservice>:8090.
Connection: Keep-Alive.
Accept-Encoding: gzip,deflate.
.
#
T <myservice>:8090 -> <knox-server>:59118 [AP]
HTTP/1.1 200 OK.
Date: Sat, 14 Oct 2017 14:27:58 GMT.
X-Application-Context: myservice:prod:8090.
Content-Type: text/plain;charset=utf-8.
Content-Length: 4.
.
PONG
Wie konfiguriere ich das Knox (0.12.0 von HDP 2.6.2), um es Authorization-Header an das Backend für WebSocket-Verbindung übergehen zu lassen?