2

保護:ClientIdSecretKey以避免服務身份模擬的指導是什麼?保護您在Azure中應用程序的ClientId和SecretKey

這些用於在使用OAuth的Azure Active Directory中的ServicePrincipal身份驗證。

目前,我們正在使用無狀態服務中的配置設置。

在線建議建議將敏感數據存儲在KeyVault然而,爲了檢索它,服務需要證明它的身份,因此需要ClientIdSecretKey。我正在考慮encrypted configuration files

回答

0

這裏的問題是,在某些時候,你需要在你的web服務器中存儲一個祕密。您可以通過加密配置文件或將密鑰放入密鑰保管庫中來添加混淆層,但某些時候服務器需要爲其訪問的資源獲取純文本密碼。

這很大程度上取決於您想要緩解的風險。

如果您希望防止Azure Web應用程序受到攻擊,那麼確實無所謂你的所作所爲,你的祕密已經不存在了。

如果您想讓您的部門的安全團隊保持安全,那麼密鑰庫可以提供解決方案。

如果你想能夠從Github部署你的整個代碼庫,完成加密的Web.Config文件,那麼這將解決這個問題。

瞭解您正在防範的風險並從那裏向後工作。

Azure推薦的方法是將安全數據簡單地存儲爲應用程序設置,並從您的應用程序引用該環境變量。

其簡單,它的工作原理,你不需要公開存儲你的祕密。

我的大部分腳本都將密碼保存在Keyvault中,部署腳本從那裏讀取它們並在部署時將它們寫入App Settings。

+0

如何處理在開發過程中本地運行應用程序? – BenV

+0

Visual Studio/DNX具有SecretManager,當應用程序配置爲開發模式時,它將呈現存儲在用戶配置文件(在json文件中)的祕密,從而模擬將這些祕密呈現給Azure Web Apps的方式。 –