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

如何在Azure API Management中通过ocp-apim-subscription-key查询关联用户

关于Azure API Management订阅密钥关联用户查询的解答

核心结论

可以通过编程方式查询ocp-apim-subscription-key订阅密钥关联的用户信息,Azure APIM提供了两类实现路径,适配不同的使用场景。

具体实现方案

方案1:外部系统通过管理接口/SDK查询

适用于在APIM服务外部的业务系统中批量查询、离线查询的场景:

  • 第一步通过订阅密钥匹配对应的订阅资源,调用Azure资源管理API:
    GET https://management.azure.com/subscriptions/{你的Azure订阅ID}/resourceGroups/{资源组名称}/providers/Microsoft.ApiManagement/service/{APIM服务名称}/subscriptions?api-version=2022-08-01&$filter=properties/primaryKey eq '{要查询的订阅密钥}' or properties/secondaryKey eq '{要查询的订阅密钥}'
  • 接口返回的订阅资源中,properties.ownerId字段即为关联用户的资源ID,格式为/users/{用户唯一标识}
  • 第二步使用拿到的用户ID调用用户查询接口,即可获取完整的用户信息:
    GET https://management.azure.com/subscriptions/{你的Azure订阅ID}/resourceGroups/{资源组名称}/providers/Microsoft.ApiManagement/service/{APIM服务名称}/users/{用户ID}?api-version=2022-08-01
  • 若使用.NET、Python、Java等常见语言开发,可直接使用对应语言的Azure APIM管理SDK完成上述操作,无需手动拼接HTTP请求。
  • 调用上述接口需要提前获取拥有Microsoft.ApiManagement/service/subscriptions/read和Microsoft.ApiManagement/service/users/read权限的Azure AD服务主体访问令牌。

方案2:请求处理过程中通过APIM策略直接获取

适用于在API请求转发流程中需要实时获取密钥对应用户的场景,无需额外调用外部接口:

  • 订阅密钥关联的用户ID可直接通过上下文变量@(context.Subscription?.OwnerId)读取
  • 完整的用户属性对象可通过@(context.User)直接获取,包含邮箱、姓名、注册时间、自定义属性等所有信息

注意:如果查询的是未绑定特定用户的全局产品订阅,上述属性会返回空值,该类订阅本身没有关联用户,无法查询到对应用户信息。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 06:00:02