Express RStudio代理授权

Express RStudio代理授权,express,authentication,rstudio,rstudio-server,Express,Authentication,Rstudio,Rstudio Server,我已经为RStudio服务器设置了代理身份验证 RStudio服务器正在重定向到使用Express JS实现的中间件 中间件创建对身份验证服务器的请求,然后解析来自该服务器的响应 然后中间件将X-RStudio-Username头添加到响应中,这是对RStudio的重定向。但是,头被添加到来自中间件的响应中,然后浏览器在重定向到RStudio服务器时不保留它 由于浏览器请求没有所需的头,RStudio再次请求身份验证,从而创建一个无限循环 我应该如何处理这个案件 为RStudio Server添

我已经为RStudio服务器设置了代理身份验证

RStudio服务器正在重定向到使用Express JS实现的中间件 中间件创建对身份验证服务器的请求,然后解析来自该服务器的响应

然后中间件将
X-RStudio-Username
头添加到响应中,这是对RStudio的重定向。但是,头被添加到来自中间件的响应中,然后浏览器在重定向到RStudio服务器时不保留它

由于浏览器请求没有所需的头,RStudio再次请求身份验证,从而创建一个无限循环

我应该如何处理这个案件


为RStudio Server添加所需标头的最佳方法是什么?

浏览器不会为您添加此标头。您需要将其添加到将流量代理到RStudio服务器的层中。如果您还没有这样的图层,则需要使用Nginx等工具添加该图层。该层可以使用身份验证提供程序支持的任何机制对请求进行身份验证,并添加
X-RStudio-Username
头(出于安全原因,我们建议重命名该头)

由于您使用的是RStudio Server Pro,我们的支持团队很乐意为您提供以下帮助:

support@rstudio.com


您也会很高兴知道,我们正在为即将发布的RStudio Server Pro开发SAML支持

如果在重定向的URL上需要自定义标题,则不能使用浏览器重定向,因为浏览器不会将自定义标题放置在重定向上,它会跟随重定向,就像在浏览器URL栏中键入的URL上从未获得自定义标题一样。您可以对初始请求使用Ajax,看到重定向响应返回,从中获取自定义头,然后使用Ajax创建一个新的请求,该请求上有自定义头。常规设计有问题,因为如果您试图让浏览器本身(而不是Ajax调用)处理这些URL,浏览器从未将这些类型的自定义头放在它获取的URL上。当您在URL栏中键入URL、单击网页中的链接或获取重定向URL时,它从不添加自定义标题。这不是浏览器的功能。因此,任何在重定向后需要自定义头的架构都必须通过Ajax使用,而不是通过简单的浏览器处理URL。步骤如下:1。RStudio重定向到lambda 2。Lambda使用express创建SAML请求并解析响应。3.然后,不知何故,我必须将该数据发送回RStudio,但还要添加一个标题。在这种情况下,添加一个web服务器代理(如NGinx)作为新层是否有意义?为了添加这些标题?