用于语音资源的基于角色的访问控制
可以使用 Azure 基于角色的访问控制 (Azure RBAC) 来管理语音资源的访问和权限。 分配的角色可能因语音资源而异。 例如,可以将一个角色分配给只应该用于训练自定义语音识别模型的语音资源。 可以将另一个角色分配给用于转录音频文件的语音资源。 根据谁可以访问每个语音资源,可以有效地对每个应用程序或用户设置不同的访问级别。 有关 Azure RBAC 的详细信息,请参阅 Azure RBAC 文档。
注意
一个语音资源可以继承或分配有多个角色。 对此资源的最终访问级别是所有角色权限的组合。
语音资源的角色
角色定义是权限的集合。 创建语音资源时,可分配下表中的内置角色。
警告
语音服务体系结构与其他 Azure AI 服务不同之处在于,前者使用 Azure 控制平面和数据平面。 与其他 Azure AI 服务相比,语音服务广泛使用数据平面,这需要对角色进行不同的设置。 因此,一些常规认知服务角色的实际访问权限集在语音服务方案中使用时与其名称不完全匹配。 例如,“认知服务用户”提供“参与者”权限,而“认知服务参与者”完全不提供任何访问权限。 常规“所有者”和“参与者”角色也是如此,这些角色没有数据平面权限,因此不提供对语音资源的访问权限。 为了保持一致性,建议使用名称中包含“语音”的角色。 这些角色为“认知服务语音用户”和“认知服务语音参与者”。 其访问权限集专为语音服务设计。 若要使用一般认知服务角色和 Azure 常规角色,请认真研究以下访问权限表。
角色 | 可以列出资源密钥 | 访问自定义项目中的数据、模型和终结点 | 访问语音听录和合成 API |
---|---|---|---|
所有者 | 是 | 无 | 否 |
参与者 | 是 | 无 | 否 |
认知服务参与者 | 是 | 无 | 否 |
认知服务用户 | 是 | 查看、创建、编辑和删除 | 是 |
认知服务语音参与者 | 否 | 查看、创建、编辑和删除 | 是 |
认知服务语音用户 | 否 | 仅查看 | 是 |
认知服务数据读取者(预览版) | 否 | 仅查看 | 是 |
重要
角色是否可以列出资源密钥对于 Speech Studio 身份验证十分重要。 若要列出资源密钥,角色必须具有运行 Microsoft.CognitiveServices/accounts/listKeys/action
操作的权限。 请注意,如果在 Azure 门户中禁用密钥身份验证,则任何角色都无法列出密钥。
如果语音资源可以对项目具有完全读取和写入访问权限,请保留内置角色。
若要进行精细资源访问控制,可以使用Azure 门户添加或移除角色。 例如,你可以创建一个有权上传自定义语音数据集但无权将自定义语音识别模型部署到终结点的自定义角色。
使用密钥和令牌进行身份验证
角色定义你拥有的权限。 使用语音资源需要进行身份验证。
若要使用语音资源密钥进行身份验证,只需提供密钥和区域。 若要使用 Microsoft Entra 令牌进行身份验证,语音资源必须具有自定义子域。
语音 SDK 身份验证
对于 SDK,可配置是使用语音资源密钥还是 Microsoft Entra 令牌进行身份验证。 有关详细信息,请参阅使用语音 SDK 的 Microsoft Entra 身份验证。
Speech Studio 身份验证
登录 Speech Studio 后,可选择订阅和语音资源。 不选择是使用语音资源密钥还是 Microsoft Entra 令牌进行身份验证。 Speech Studio 会从语音资源自动获取密钥或令牌。 如果已分配角色之一有权列出资源密钥且密钥身份验证未禁用,则 Speech Studio 会使用密钥进行身份验证。 否则,Speech Studio 会使用 Microsoft Entra 令牌进行身份验证。
如果 Speech Studio 利用你的 Microsoft Entra 令牌,并且你的语音资源缺少正确配置的自定义子域,则不会激活基于角色的访问控制 (RBAC),并且你将无法访问 Speech Studio 中的任何功能。 RBAC 根据分配给你的角色以及与该角色关联的权限来确定你对功能的访问权限。 如果你的角色未授予对特定功能的访问权限,则会在页面上显示警告消息。 请确保你具有适当的角色来访问所需的功能。
身份验证凭据 | 功能可用性 |
---|---|
语音资源密钥 | 完全访问权限。 如果使用了资源密钥,则会忽略角色配置。 |
具有自定义子域的 Microsoft Entra 令牌 | 完全访问权限仅受分配的角色权限限制。 |
没有自定义子域的 Microsoft Entra 令牌 | 无访问权限。 |