我正在開發一個網站,該網站應該為用戶提供使用 azures 認知服務 api 的功能。他們可以播放音頻或使用麥克風將語音轉換為文本。
我目前正在使用 azures js sdk,從技術上講它作業正常。但是,我注意到這種方法有一個很大的缺點。sdk 通過 websocket 與 azure 服務器連接,該服務器向客戶端公開訂閱密鑰。所以理論上每個成員都可以把它讀出來并賣掉它或類似的東西。此外,如果客戶端直接與 azure 連接,我沒有防止客戶端濫用服務的安全方法。我需要一種方法來粗略衡量客戶使用服務的時間來考慮個人計費。
我在官方檔案中找不到任何相關內容。那么我的選擇是什么?
- 我是否應該將客戶端的音頻輸入重定向到我自己的服務器,進行一些定量分析,然后將輸入從服務器端連接轉發到 azure?我擔心有許多并發客戶,它可能會變得遲鈍或連接可能會掉線......
- 有什么方法可以將至少客戶端 ID 或類似的連接到 azure websocket 連接,我可以稍后以某種方式讀出?
你對我有什么建議嗎?
uj5u.com熱心網友回復:
鑒于您的附加評論,我建議您將實作從使用訂閱密鑰切換到使用身份驗證令牌。
那會:
- 基于 1 個全域訂閱密鑰為每個客戶端生成唯一令牌
- 不要將您的訂閱密鑰暴露給您的客戶
- 限制 API 的使用,因為令牌僅在 10 分鐘內有效
每個訪問令牌的有效期為 10 分鐘。您可以隨時獲取新令牌,但是,為了最大程度地減少網路流量和延遲,我們建議您使用相同的令牌九分鐘。
有關全域實施,請參見此處的檔案。簡而言之,您需要在后端實作此令牌生成,并使用此令牌而不是密鑰將頁面提供給您的客戶端。
旁注 1:注意最大并發請求數(100 - 見此處)。
注意 2:考慮到客戶的使用情況,這不會幫助您向客戶收費,因為您只有 1 個密鑰,并且無法識別其中的不同用途
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/408505.html
標籤:
