如何通过Microsoft Graph API区分Power BI Pro用户与普通用户?
企业协议场景下Power BI Pro与普通用户的区分验证
结论
你的假设方向是对的,但不能只靠assignedPlans里的Power BI项来判断,得结合assignedLicenses和assignedPlans两个字段的具体值才能精准区分。
具体判断逻辑(EA场景)
- Power BI Pro用户:
assignedLicenses里会有Power BI Pro对应的SKU ID(常用值为63275110-0c66-41db-987c-85ab5d09b3fd)assignedPlans里会出现Power BI Pro的服务计划项,其servicePlanId为70d33638-9c74-4d01-bfd3-562de28bd4ba,且capabilityStatus为Enabled
- 普通Power BI用户:
- 如果是免费版,
assignedLicenses里无Pro的SKU,assignedPlans可能存在Power BI Free的服务计划(servicePlanId为e95bec33-7c88-4a70-8e19-b10bd9d0c014) - 如果是EA批量授权的基础访问用户,
assignedLicenses里无Pro的SKU,assignedPlans里也不会有Power BI相关项——这类用户的访问权限是通过租户级Power BI服务启用,而非用户单独分配
- 如果是免费版,
实操判断步骤
- 继续使用你当前的API请求:
GET https://graph.microsoft.com/v1.0/users?$select=accountEnabled,id,userPrincipalName,displayName,assignedLicenses,assignedPlans,licenseAssignmentStates - 对返回数据做如下判定:
- 当
assignedLicenses包含Pro的SKU,且assignedPlans存在上述Pro服务计划且状态为启用,判定为Power BI Pro用户 - 无Pro的SKU,要么
assignedPlans仅含Free计划项,要么无任何Power BI相关计划项,判定为普通Power BI用户
- 当
注意事项
- 不同地区或EA协议的SKU/服务计划ID可能略有差异,建议先调用
GET https://graph.microsoft.com/v1.0/subscribedSkus获取租户内已订阅的SKU列表,确认Power BI Pro对应的具体ID - 若用户持有Power BI Premium Per User(PPU)授权,其SKU ID为
a403ebcc-fae0-4ca2-8c8c-7a907fd6c2d5,服务计划ID与Pro一致,需通过SKU ID区分PPU和Pro用户
内容的提问来源于stack exchange,提问作者mbillion
相关产品推荐
相关产品推荐

