你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
可通过两种方法对Azure Service Bus资源进行身份验证和授权:
- Microsoft Entra ID
- 共享访问签名 (SAS)。
本文将详细介绍如何使用这两种类型的安全机制。
Microsoft Entra ID
Microsoft Entra与Service Bus的集成提供对Service Bus资源的基于角色的访问控制(RBAC)。 可以使用 Azure RBAC 向安全主体授予权限,该主体可以是用户、组、应用程序服务主体或托管标识。 Microsoft Entra对安全主体进行身份验证并返回 OAuth 2.0 令牌。 此令牌可用于授权请求访问Service Bus资源(队列、主题和订阅)。
有关使用 Microsoft Entra ID 进行身份验证的详细信息,请参阅以下文章:
注意
Service Bus REST API支持使用 Microsoft Entra ID 进行 OAuth 身份验证。
重要
使用Microsoft Entra ID返回的 OAuth 2.0 令牌授权用户或应用程序提供优于共享访问签名(SAS)的安全性和易用性。 使用 Microsoft Entra ID,无需将令牌存储在代码中,并面临潜在的安全漏洞风险。 建议尽可能将Microsoft Entra ID用于Azure Service Bus应用程序。
可以为Service Bus命名空间禁用本地或 SAS 密钥身份验证,并仅允许Microsoft Entra身份验证。 有关分步说明,请参阅禁用本地身份验证。
共享访问签名
SAS 身份验证允许您授予用户具有特定权限的对 Service Bus 资源的访问权限。 Service Bus中的 SAS 身份验证涉及配置具有Service Bus资源关联权限的加密密钥。 客户端随后即可通过提供 SAS 令牌获取该资源的访问权限,该令牌由要访问的资源 URI 和签有已配置密钥的过期时间组成。
可以在Service Bus命名空间上配置共享访问策略。 该密钥将应用到该命名空间中的所有消息传送实体。 还可以在Service Bus队列和主题上配置共享访问策略。 若要使用 SAS,可以在命名空间、队列或主题上配置共享访问授权规则。 此规则由以下元素组成:
- KeyName:标识规则。
- PrimaryKey:用于对 SAS 令牌进行签名/验证的加密密钥。
- SecondaryKey:用于对 SAS 令牌进行签名/验证的加密密钥。
- 权限:表示已授予的 侦听、 发送或 管理 权限的集合。
通过在命名空间级别配置的授权规则,可以向具有使用相应密钥签名的令牌的客户端授予对命名空间中所有实体的访问权限。 可以在Service Bus命名空间、队列或主题上配置多达 12 个此类授权规则。 默认情况下,在首次预配每个命名空间时,会为其配置具有所有权限的共享访问授权规则。
若要访问实体,客户端需要一个使用特定共享访问授权规则生成的 SAS 令牌。 SAS 令牌是通过使用资源字符串的 HMAC-SHA256 生成的,该字符串由请求访问的资源 URI 和与授权规则相关联的加密密钥的有效期组成。
有关使用 SAS 进行身份验证的详细信息,请参阅 使用共享访问签名进行身份验证。
相关内容
有关使用 Microsoft Entra ID 进行身份验证的详细信息,请参阅以下文章:
有关使用 SAS 进行身份验证的详细信息,请参阅以下文章: