Azure Service Bus如何验证Azure AD颁发的客户端访问令牌?
Azure Service Bus的Azure AD令牌验证机制
Azure Service Bus会自行完成Azure AD访问令牌的验证,不需要依赖外部程序,核心验证逻辑如下:
- 令牌签名验证:Service Bus会从Azure AD的公开密钥端点获取公钥,验证令牌的数字签名,确保令牌未被篡改且由合法的Azure AD实例签发。
- 令牌元数据校验:
- 检查
aud(受众)声明是否匹配Service Bus的服务主体ID(即你提到的Service Bus AppId),确保令牌是专门发给Service Bus的。 - 验证
iss(签发者)是否为可信的Azure AD租户终结点,确保令牌来自合法的Azure AD实例。 - 校验令牌的
exp(过期时间)和nbf(生效时间),确保令牌处于有效期内。
- 检查
- 权限校验:验证令牌中包含的
roles或scp声明,确认客户端拥有对应Service Bus实体(队列、主题等)的操作权限(如发送、接收、管理等)。这些权限是通过Azure RBAC角色(如Service Bus Data Sender、Service Bus Data Receiver)分配给注册的Azure AD客户端或用户的。
不同于第三方API需要自行实现验证逻辑,Service Bus作为Azure原生服务,直接和Azure AD的信任体系深度集成,内置了完整的令牌验证流程,无需额外的外部验证程序。
内容的提问来源于stack exchange,提问作者SharpCoder
相关产品推荐
相关产品推荐

