【问题标题】:Rewriting URL with authorization使用授权重写 URL
【发布时间】:2021-03-14 11:02:12
【问题描述】:

我正在尝试使用 asp.net 核心实现 AuthProxy。

我有一个需要登录的网络应用程序(服务 A)。客户端获取令牌以使用服务器 API。此外,我还有另一台服务器(在我的情况下是服务器 B - Grafana),它也需要身份验证,但当它在其文件请求中获取特定标头时可以被覆盖。

在我的应用程序中,登录后,用户按下某个选项卡并看到我的服务器 B UI 的iframe。 我附加了一个authKey 参数等于用户令牌,用于在服务器(服务器A)中验证它。例如。 localhost:1234/proxy?authKey=1234

在服务器 A 中,我开发了一个 ReverseProxyMiddleware (as explained here) 捕获以 /proxy 开头的 request.Path 并将其重写到服务器 B (Grafana),并根据 @987654328 附加标头值@我们之前收到的(算法正在应用于此authKey)。

这个新的 uri(Grafana 服务器)正在嵌入并动态调用以分配必须具有此标头的 url不要再获得授权了..

我的中间件中的每个调用方法都彼此分开运行,我不知道它们都来自同一个会话。

有什么想法可以实现我想要的吗?

【问题讨论】:

  • 重写时可以带cookie吗?
  • 我昨天刚去睡觉,也想到了这个想法。我不是来自服务器世界 - 更多的是客户端开发人员。无论如何!现在试了一下。和繁荣!像魅力一样工作!

标签: asp.net-core authentication reverse-proxy grafana asp.net-core-middleware


【解决方案1】:

问题是 Grafana - 这次没有括号(v. 7.3.2)。在将正确的标题发送到登录页面后,他们应该返回一个会话 cookie 才能正常运行 - 但他们没有。

因此,在我的代理中,我使用我的数据创建了会话 cookie,并按照我的意愿对其进行处理,并通过所需的标头反复发送它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多