前言

前一篇文章我們簡單介紹如何擴展 App Service 幾個方式,包含相應增加、相應放大與自動縮放。而在這一篇文章,我們將簡單介紹 App Service 安全功能:安全層級身分驗證獨立環境,本篇文章若有錯誤或任何建議,請各位先進不吝提出,謝謝。




介紹

Azuree Apps 安全性

Azure Service 有兩種安全層級:

Infrastructure and platform security
Azure 提供安全的架構與平台,執行您應用程式。Azure 對於 App Service 的維護包含:Azure 虛擬機器、儲存體、網路連結、網頁框架、管理與整合功能。為了得到完善的保護,Azure 不斷的進行安全檢查,包含:
  1. 你的應用程式與網際網路和其他客戶資源隔離
  2. App Service 與 Azure 內其他資源之間的溝通相關敏感資訊 (如連線字串),將永遠保留在 Azure 環境內且加密,不會跨出任何網路邊界。
  3. App Service 與外部資源 (如 PowerShell management, command-line interface, Azure SDKs, REST APIs, 或其他類型混和式連線) 之間的通訊都已經正確加密。
  4. 24 小時管理與防護,免於包含 DDOS、MITM 與其他類型的攻擊。

Application security
您設計具有安全性的應用程式。包含如何整合 Azure Active Directory、管理憑證、確保與其他應用程式進行通訊…等。雖然 Azure 負責保護運行應用程序的基礎架構和平台,但您有責任保護您的應用程序。換句話說,您需要以安全的方式開發,部署和管理應用程序代碼和內容。否則,您的應用程序仍然可能受到以下威脅:
  1. SQL Injection : 將惡意代碼穿插在字串中,隨後這些字串會傳到 SQL Server 進行解析與執行。因為SQL Server 會檢查有效的查詢並執行,所以您應該檢查您包含 SQL 語法的程式中任何可能的漏洞。
  2. Session hijacking : 操作者若主動參與,則稱為主動挾持;若操作者只監控流量,則稱為被動挾持。
  3. Cross-site-scripting : 在 URL 中嵌入腳本並引誘使用者點擊,以確保攻擊腳本會在用戶電腦上執行。這些攻擊利用使用者與伺服器之間的信任或客戶端默認執行腳本的方式執行。
  4. Application level Man-In-the-Middle (MITM) : 在兩台電腦之間擷取通訊訊息,進而進行攻擊。攻擊者可以在訊息傳遞到收件者之前取得流量與訊息內容。


App Sevice 身分驗證



為了使用各家 驗證服務 進行驗證,必須提供 驗證提供者 應用程序相關資訊。隨後 驗證提供者 會對您的App Service 一組 ID 與 secrets,完成信任程序,隨後 驗證服務 即可對使用者進行驗證 (Token),進而讓使用者使用 App Service。
當未驗證使用者要使用 App Service 之前,您可以自動導引使用者到 驗證提供者 的端點進行驗證 (如  AAD, Facebook, Google, Microsoft, 或 Twitter. )。您可以透過 Cookie 維持身分驗證;您也能透過 JWT (在 header 內加入 token) 發布給客戶。

驗證提供者
應用服務身份驗證/授權功能為您的應用程序提供了一種登錄用戶的方式,您不必更改應用後端的程式碼即可驗證使用者。 App Service 使用聯合身份,透過第三方身份提供者儲存帳戶並對用戶進行身份驗證。 應用程序依賴於提供者的身份資訊,因此應用程式不必自己儲存資訊。

如上圖所示,App Service 支持五個 Authentication Providers:Azure Active Directory、Facebook、Google, Microsoft Account 與 Twitter。你的應用程式可以使用任意數量的 身份驗證提供商,若想要增加其他第三方身分驗證提供商,您在自定義身份解決方案進行整合。
預設情況下,App Service應用程序允許匿名訪問。 要使 App Service 更安全,您可以在 設定 面板中啟用 App Service身份驗證
  1. Azure Active Directory :使用您的默認 AAD 並 建立  AAD應用程式
  2. Facebook : 您將需要 Facebook Developer's 網站上的 App IDApp Secret
  3. Google : 您需要來自 Google apis 網站的 客戶端ID客戶端密碼
  4. Microsoft 帳戶 : 您將需要 Microsoft帳 戶開發人員中心的 "我的應用程序" 頁面中的 "應用程序ID" 和 "密碼
  5. Twitter : 您必須擁有一個具有經過驗證的 電子郵件 電話號碼 的 Twitter 帳戶


獨立環境 - App Service Environments


App Service Environments 是 Azure App Service 的一項服務,是對於較大規模(需求) 的 App Service 提供安全執行且完全隔離的專用環境。它能託管你的 Web apps、Mobile Apps、API Apps與 Function。 App Service Environments 適用於應用程式:
  1. 非常大規模
  2. 獨立且安全的網路環境
  3. 高記憶體使用率
您可以再單一地區或多個地區建立多個 ASE,達到高水平佈署的需求,藉此支持較高工作負載。因為ASE 只運行單一客戶應用程式,並不屬於虛擬網路中,客戶可以透過 inbound/outbound  應用程式對於網路流量做精密控制。應用程式也能透過 VPN 與 企業網路建立安全且快速的連接。