Azure APIM开发者门户:复刻已弃用门户的管理员功能需求
Azure自托管开发者门户管理员功能实现方案
新版Azure自托管开发者门户默认未集成旧版已弃用的管理员级功能,可通过自定义扩展+调用APIM官方REST API的方式实现需求,无需修改门户核心源码,可直接嵌入管理员专属页面或现有页面的隐藏模块:
1. 查看单个API关联的所有Clientapp
Clientapp与API的关联通过产品订阅绑定,按以下步骤实现:
- 先调用
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}?api-version=2021-08-01获取目标API绑定的所有产品ID - 再调用
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/subscriptions?api-version=2021-08-01&$filter=productId eq '{productId}'查询对应产品下的所有订阅关联Clientapp信息 - 结果去重后可在API详情页新增关联Clientapp专属tab展示,仅对管理员可见
2. 查看开发者门户全部Clientapp
直接拉取全量订阅数据即可:
- 调用
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/subscriptions?api-version=2021-08-01&$top=100分页拉取所有订阅数据,若数据量较大可按$skip参数分页 - 提取每个订阅对应的Clientapp ID、所有者账户、绑定产品、有效期等核心字段,在单独的管理员页面做列表展示,支持按名称、绑定产品筛选
- 新增页面权限校验,仅具备APIM管理员角色的账户可访问
3. 订阅开启allow tracing获取API Inspector日志
通过更新订阅属性实现开关控制:
- 选中目标订阅后,调用
PATCH https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/subscriptions/{sid}?api-version=2021-08-01,请求体设置properties.allowTracing = true即可开启 tracing 权限 - 开启后调用该订阅关联的API时,在请求头添加
Ocp-Apim-Trace: true和对应订阅密钥,响应头会返回Ocp-Apim-Trace-Location字段,值为本次请求的Inspector日志存储地址,直接访问即可查看完整请求链路日志 - 可在订阅详情页新增tracing开关按钮,管理员点击后自动调用上述接口完成配置,操作更便捷
注意:所有接口调用需要先获取对应Azure AD授权token,token需具备目标APIM资源的管理权限,可直接复用自托管门户已有的身份验证逻辑,无需额外配置身份源。
内容的提问来源于stack exchange,提问作者varun bhat
相关产品推荐
相关产品推荐

