以下面的案例爲例。在客戶端 - 服務器構建之間共享祕密的好策略
您已經使用OAuth2保護了RESTful API層。另一方面,爲了讓用戶對您的API進行身份驗證,您需要請求訪問令牌(即grant_type=password
)。
爲了請求密碼訪問令牌,客戶端應用程序需要一個OAuth客戶端(密鑰+密鑰對)。
現在您已配置好所有使用持續集成和連續部署。
在發展建立,在構建腳本創建的測試數據,包括OAuth用戶端。顯然,如果構建創建測試數據,則它先前會刪除自動測試期間創建的所有數據。
所以你希望你的客戶端應用程序使用的OAuth用戶端之一,你想避免硬編碼其中之一,因爲他們使用的API的基礎設施創建的,所以他們從頭開始重新創建上每個版本。
認爲前端和後端是由不同的構建腳本構建的。
結論&問題
什麼是共享服務器和客戶端架構之間的祕密,所以無論起牀,用相同的安全機密運行同步的好辦法?
一些想法
操作系統的環境變量。我可以將這些祕密存儲在構建機器環境變量中。也就是說,客戶端基礎架構將始終以最新的祕密進行構建和部署。
與#1相同,但將這些機密存儲在生成機器的共享目錄中。
嘿,謝謝你的努力。看起來你答案的第一部分根本不回答我的問題。我沒有試圖共享TFS訪問令牌,而是分享我自己的基礎架構所需的不記名令牌。另一方面,我正在嘗試環境變量的方法,但是我的工作並不完善,因爲既然客戶端應用程序和後端都在同一個構建代理上工作,那麼在重新啓動代理之前,我無法看到updatedenvironment變量服務...所以我結束了序列化這些憑據到JSON,然後我將文件存儲在一個共同的已知位置 –
@MatíasFidemraizer將令牌序列化爲JSON是好的,您可以發佈答案。 –
我明白了。我已經添加了它。無論如何,我感謝你的努力! –