问题描述
Azure Media Service Explorer 5.4.3.0ad8不能连接Media Service, 错误消息提示 BadRequest 和 Forbidden。
截图如下: BadRequest
Forbidden
问题解决
BadRequest 和 Forbidden 是在操作中遇见的两个问题,所以需要分开单独分析:
1)分析BadRequest的问题,发现根源是Media Service Explorer 5.4.3.0的一个Bug,在连接的时候请求AAD认证时返回400 Bad Request错误。但是通过降低到5.4.2.1的版本时,能够正常连接到Azure媒体服务(Media Servcie).
2)分析Forbidden问题,这是因为在认证时候,401没有足够的权限而引起的。所以第一步就是检测当前使用的AAD 服务主体(Service Principal) 是否在Media Service的访问控制【Access Control(IAM)】 中被赋予了足够的权限。如:Media Services Account Administrator
注:使用Azure Media Service Explorer工具连接Media Service时候,需要注意时连接的V3, 或者是V2版本的媒体服务。因为它们的终结点是不一样的。如下的高亮部分:
V2 和V3认证的时候终结点是不一样的。####V3:{\"AadClientId\": \"<<INSERT_AZURE_AD_APP_ID_HERE>>\",\"AadSecret\": \"<<INSERT_AZURE_AD_APP_SECRET_HERE>>\",\"AadTenantDomain\": \"xxx\",\"AadTenantId\": \"xx\",\"AccountName\": \"xx\",\"ResourceGroup\": \"xx\",\"SubscriptionId\": \"xxx\",\"ArmAadAudience\": \"https://management.core.chinacloudapi.cn\",\"ArmEndpoint\": \"https://management.chinacloudapi.cn\"}####V2:{\"AadClientId\": \"<<INSERT_AZURE_AD_APP_ID_HERE>>\",\"AadSecret\": \"<<INSERT_AZURE_AD_APP_SECRET_HERE>>\",\"AadTenantDomain\": \"xxx\",\"AadTenantId\": \"xxx\",\"AccountName\": \"xx\",\"ResourceGroup\": \"xx\",\"SubscriptionId\": \"xx\",\"Location\": \"null\",\"AmsApiResource\": \"https://rest.media.chinacloudapi.cn\",\"AmsRestApiEndpoint\": \"https://testmediaservice.restv2.chinanorth.media.chinacloudapi.cn/api/\"}
关于如何从Azure Media Service中获取用于连接的JSON文件,完全不用担心,可以根据以下步骤获取:
Azure Media Service 门户 –> 媒体服务 API访问权限 –> 查看V3和V2的用于连接的JSON文件
参考文档
Azure 媒体服务浏览器:https://docs.microsoft.com/zh-cn/azure/media-services/latest/media-services-apis-overview#azure-media-services-explorer