如何无需或仅通过简单身份验证将Azure Monitoring Dashboard展示在办公大屏
公共大屏无个人凭据访问Azure只读监控Dashboard的实现方案
你提到的Token、HTTP授权方式均可以实现需求,以下是3种可落地的方案,全程不需要在大屏设备上使用个人账号凭据,且默认仅开放只读权限:
方案1:官方共享仪表板+专用服务账号(无开发成本)
- 首先在Azure门户中打开目标监控Dashboard,点击顶部「共享」按钮,将个人仪表板发布为共享仪表板资源,归属到指定资源组下
- 进入共享后的仪表板资源页,打开「访问控制(IAM)」配置页,创建一个独立的非个人Azure AD工作账号,仅为该账号分配
Dashboard Reader内置只读角色,该账号不关联任何个人身份,也没有其他Azure资源的访问权限 - 在大屏设备的浏览器Kiosk模式/隐私模式下使用该专用账号登录一次,选择长期保持登录状态即可,不需要重复输入凭据
方案2:服务主体生成访问令牌嵌入展示(自定义场景适用)
该方案完全不需要在大屏端输入任何账号信息,所有凭据逻辑在后台处理:
- 在Azure AD中注册一个应用(即服务主体),无需配置重定向URI、登录回调等用户登录相关设置
- 回到共享仪表板的IAM页面,为该服务主体分配
Dashboard Reader只读角色,确保权限仅包含仪表板读取、监控数据读取能力,无任何资源修改权限 - 在你的内部后台服务中,用服务主体的客户端ID、客户端密钥、租户ID请求Azure AD的访问令牌,请求的资源为
https://management.azure.com,请求示例如下:
curl -X POST https://login.microsoftonline.com/<你的Azure租户ID>/oauth2/token \ -d "grant_type=client_credentials" \ -d "client_id=<服务主体客户端ID>" \ -d "client_secret=<服务主体客户端密钥>" \ -d "resource=https://management.azure.com"
- 后台服务拿到返回的access_token后,调用Azure管理接口拉取仪表板配置和监控数据,自行渲染到大屏页面,令牌到期后由后台自动刷新,大屏端无需处理任何凭据相关逻辑
方案3:Azure Monitor工作簿匿名共享(更轻量化场景适用)
如果当前监控内容可以迁移到Azure Monitor工作簿,你可以直接开启工作簿的匿名只读共享功能,生成公开访问链接,直接在大屏浏览器打开即可,不需要任何登录操作,权限默认为只读。
注意事项
- 所有权限配置遵循最小权限原则,仅分配必要的只读角色,禁止给服务主体、专用账号分配任何写入、删除类权限
- 服务主体的客户端密钥需要定期轮换,访问令牌有效期建议设置为1小时以内,不要将令牌、密钥硬编码到大屏端的前端代码中
- 大屏设备建议开启浏览器Kiosk模式,禁止用户操作地址栏、退出页面,避免误操作泄露访问权限
内容的提问来源于stack exchange,提问作者hey
相关产品推荐
相关产品推荐

