You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在客户端隐藏Azure Cognitive Services(语音服务)订阅密钥?

Azure语音服务客户端隐藏订阅密钥的可行方案

一、用Azure函数应用做中间后端

这是最直接的方案,把语音服务的调用逻辑全放在函数应用里,客户端只跟函数打交道,订阅密钥藏在函数的配置里,完全不会暴露给前端。

  • 步骤:
    1. 创建Azure函数应用,选个顺手的运行时(Python、C#都行)。
    2. 在函数应用的应用设置里添加语音服务的订阅密钥和区域,作为环境变量,代码里直接读环境变量就行,比如Python里用os.environ["SPEECH_KEY"]。
    3. 写函数接口,接收客户端发过来的音频或文本数据,在函数内部调用语音服务的SDK或者REST API处理,再把结果返回给客户端。
    4. 给函数加访问控制,比如开Azure AD认证或者设API密钥,防止随便调用。

二、用Azure AD令牌代替订阅密钥

官方更推荐这种方式,用短期的访问令牌替代长期有效的订阅密钥,就算令牌泄露了,危害也有限。

  • 实现要点:
    1. 在Azure AD里注册一个应用,给这个应用加语音服务的访问权限(找Cognitive Services Speech的API权限)。
    2. 客户端用Azure AD SDK或者OAuth2流程拿访问令牌,令牌一般1小时过期,过期了再重新获取就行。
    3. 调用语音服务的时候,请求头里带Authorization: Bearer <令牌>,不用再传订阅密钥。
    4. 注意:客户端的Azure AD凭证(比如客户端ID、密钥)也要安全存,比如用设备的安全存储或者Azure Key Vault。

三、用Azure API管理封装语音服务

把语音服务的API导入到APIM里,客户端调用APIM的端点,由APIM自动把订阅密钥加到请求里转发给语音服务。

  • 好处:
    • 能给API加各种策略,比如限制调用速率、设IP白名单,安全性更高。
    • 支持多种认证方式,不管是API密钥还是Azure AD都能用,方便控制谁能访问。
    • 订阅密钥全存在APIM的后端配置里,客户端根本碰不到。

内容的提问来源于stack exchange,提问作者fatdrogen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 10:27:15