TraefIk 转发授权请求 URI
TraefIk Forward Auth Request URI
我正在使用 Traefik 的 Foward Auth 中间件来验证我的请求。
授权服务器托管在http://localhost/auth
我要验证的请求来自 http://rooms.localhost/:roomId
比如http://rooms.localhost/ed455783-1502-4c9e-a403-28e621d77fb4?token=qwerty
就是我的要求URL。现在 URL 被转发到 auth 服务器进行身份验证。但是在身份验证服务器上,我无法看到请求的 URL 或 header,例如 X-Forwarded-URI。
我能看到的header是
{
host: 'localhost',
'user-agent': 'PostmanRuntime/7.26.3',
accept: '*/*',
'accept-encoding': 'gzip, deflate, br',
x-forwarded-for': '127.0.0.1',
'x-forwarded-host': 'localhost',
'x-forwarded-port': '80',
'x-forwarded-prefix': '/faa054d5-0fe3-435e-83cb-9b817177d495',
'x-forwarded-proto': 'http',
'x-forwarded-server': 'b35a8676b5a8',
'x-real-ip': '127.0.0.1'
}
那么我应该如何获取请求的 URI 才能访问 token
?
Note that passing token in cookies or headers is not an option for me because the WebSocket connections are also needed to be authenticated.
以下是我的 traefik 标签
- traefik.http.middlewares.faa054d5-0fe3-435e-83cb-9b817177d495-auth.forwardauth.address: http://localhost/auth
- traefik.http.middlewares.faa054d5-0fe3-435e-83cb-9b817177d495-stripprefix.stripprefix.prefixes: /faa054d5-0fe3-435e-83cb-9b817177d495
- traefik.http.routers.faa054d5-0fe3-435e-83cb-9b817177d495.middlewares: faa054d5-0fe3-435e-83cb-9b817177d495-stripprefix, faa054d5-0fe3-435e-83cb-9b817177d495-auth
- traefik.http.routers.faa054d5-0fe3-435e-83cb-9b817177d495.rule: Host(`rooms.localhost`) && PathPrefix(`/faa054d5-0fe3-435e-83cb-9b817177d495`)
我能够使用
解决这个问题
--entryPoints.web.address=:80
--entryPoints.web.forwardedHeaders.insecure
我正在使用 Traefik 的 Foward Auth 中间件来验证我的请求。
授权服务器托管在http://localhost/auth
我要验证的请求来自 http://rooms.localhost/:roomId
比如http://rooms.localhost/ed455783-1502-4c9e-a403-28e621d77fb4?token=qwerty
就是我的要求URL。现在 URL 被转发到 auth 服务器进行身份验证。但是在身份验证服务器上,我无法看到请求的 URL 或 header,例如 X-Forwarded-URI。
我能看到的header是
{
host: 'localhost',
'user-agent': 'PostmanRuntime/7.26.3',
accept: '*/*',
'accept-encoding': 'gzip, deflate, br',
x-forwarded-for': '127.0.0.1',
'x-forwarded-host': 'localhost',
'x-forwarded-port': '80',
'x-forwarded-prefix': '/faa054d5-0fe3-435e-83cb-9b817177d495',
'x-forwarded-proto': 'http',
'x-forwarded-server': 'b35a8676b5a8',
'x-real-ip': '127.0.0.1'
}
那么我应该如何获取请求的 URI 才能访问 token
?
Note that passing token in cookies or headers is not an option for me because the WebSocket connections are also needed to be authenticated.
以下是我的 traefik 标签
- traefik.http.middlewares.faa054d5-0fe3-435e-83cb-9b817177d495-auth.forwardauth.address: http://localhost/auth
- traefik.http.middlewares.faa054d5-0fe3-435e-83cb-9b817177d495-stripprefix.stripprefix.prefixes: /faa054d5-0fe3-435e-83cb-9b817177d495
- traefik.http.routers.faa054d5-0fe3-435e-83cb-9b817177d495.middlewares: faa054d5-0fe3-435e-83cb-9b817177d495-stripprefix, faa054d5-0fe3-435e-83cb-9b817177d495-auth
- traefik.http.routers.faa054d5-0fe3-435e-83cb-9b817177d495.rule: Host(`rooms.localhost`) && PathPrefix(`/faa054d5-0fe3-435e-83cb-9b817177d495`)
我能够使用
解决这个问题--entryPoints.web.address=:80
--entryPoints.web.forwardedHeaders.insecure