如何将EC2托管的Shiny应用程序安全地集成到asp.net项目中

Pro*_*eus 8 asp.net amazon-ec2 amazon-web-services shiny shiny-server

我有两个申请.

  1. R闪亮的应用程序托管在EC2上
  2. Asp.net应用程序托管在Azure上.

asp.net应用程序预先形成用户身份验证,用于组织整个数据科学管道.用户提供数据,数据科学家转换数据并提供闪亮的应用程序.最后,用户在asp.net应用程序中打开Shiny应用程序.

我遇到的问题是我不知道如何安全地集成我在asp.net应用程序中开发的Shiny应用程序.

我可以像这样解决问题:

在此输入图像描述

基本上,我可以创建一个简单的iframe,其中包含指向EC2实例的公共域的链接.但是,这并不安全.任何人都可以通过简单的页面源点击找到并访问该URL.

我考虑的另一个选择是限制EC2安全组中的IP地址.但是,问题是asp.net应用程序应该由不同的实体/独立用户使用.因此,安全性需要更加精细[用户是否可以访问应用程序,应用程序内的项目,项目中的容器?]而不仅仅是服务器IP地址.

此外,我曾考虑在实际的Shiny应用程序中提供第二级身份验证,但这首先实际上失去了asp.net身份验证的重点.

我应该继续研究的方向或暗示?

Oll*_*nja 2

我认为你是对的,有两种选择。第一种方法是在两台服务器之间创建安全连接,并使用 .Net 应用程序来代理流量,但这并没有达到目的。

第二个是验证两台服务器的使用情况。您可以通过让 .Net 服务器以某种方式将有关活动会话的数据传递到 Shiny 应用程序以同步它们来实现此目的,但这并不理想。

您可以使用JWT等身份验证机制,其中 .Net 服务器会在客户端登录时向客户端发出令牌(即 cookie 或嵌入到 iFrame URL 中),然后客户端会将其传递给令牌到 Shiny 服务器,只需验证令牌即可。如果使用 cookie,您需要确保两台服务器位于同一子域上,以便正确设置令牌。