首页 文章

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

提问于
浏览
7

我有两个申请 .

  • R闪亮的应用程序托管在EC2上

  • 在Azure上托管的Asp.net应用程序 .

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

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

我可以像这样解决问题:

enter image description here

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

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

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

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

1 回答

  • 2

    我认为你是对的,有两种选择 . 第一种是在两台服务器之间创建一个安全的连接,并使用.Net应用程序来代理流量,但这就失败了 .

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

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

相关问题