如何安全地將 EC2 託管的 Shiny 應用程序集成到 asp.net 項目中
我有兩個應用程序。
- 託管在 EC2 上的 R Shiny 應用程序
- 託管在 Azure 上的 Asp.net 應用程序。
asp.net 應用程序執行使用者身份驗證,並用於組織整個數據科學管道。使用者提供數據,數據科學家轉換數據並提供閃亮的應用程序。最後,使用者在 asp.net 應用程序中打開 Shiny 應用程序。
我遇到的問題是我不知道如何安全地集成我在 asp.net 應用程序中開發的 Shiny 應用程序。
我可以這樣解決問題:
基本上,我可以製作一個簡單的 iframe,其中包含指向 EC2 實例的公共域的連結。但是,這並不安全。任何人都可以通過簡單的頁面源點擊找到並訪問該 url。
我考慮過的另一個選項是限制 EC2 安全組中的 IP 地址。但是,問題在於 asp.net 應用程序應該由不同的實體/獨立使用者使用。所以安全性需要更細化
$$ does the user have access to app, project within app, container within a project? $$不僅僅是一個伺服器IP地址。 此外,我曾考慮在實際的 Shiny 應用程序中提供第二級身份驗證,但是這從本質上首先失去了 asp.net 身份驗證的意義。
關於我應該繼續研究的方向的任何想法或提示?
我認為你是對的,有兩種選擇。第一個是在兩台伺服器之間創建安全連接,並使用 .Net 應用程序代理流量,但這違背了這一點。
第二個是驗證兩個伺服器的使用。您可以通過讓 .Net 伺服器以某種方式將有關活動會話的數據傳遞給 Shiny 應用程序來同步它們,但這並不理想。
您可以改為使用JWT等身份驗證機制,其中 .Net 伺服器會在客戶端登錄時向客戶端發出令牌(即 cookie 或嵌入到 iFrame URL),然後客戶端會將其傳遞給令牌到 Shiny 伺服器,這只需要驗證令牌。如果使用 cookie,您需要確保兩台伺服器都在同一個子域上,以便正確設置令牌。
