无法将ARM Azure Video Indexer作为守护程序



我在获取azure视频索引器(基于ARM)令牌作为守护应用程序时遇到了麻烦。(我可以使用门户生成的令牌上传视频)。因此,我首先创建了一个注册的应用程序,并使用client_secret在视频索引器/generateAccessToken点上请求令牌。

此注册应用程序的范围为'https://management.azure.com/user_impersonation'图像描述,并将注册应用程序添加为视频索引器RBAC上的贡献者(不认为这是必要的,但我这样做是为了确保)

当我从'*https://login.microsoftonline.com/fbe3354f-$$$$-404a-8d93-da9b01b57c28/oauth2/v2.0/token*'获得令牌并使用它来请求'*https://management.azure.com/subscriptions/665eef5b-$$$$-43ad-9ec5-4afc5cd0a0e5/resourceGroups/ween-global/providers/Microsoft.VideoIndexer/accounts/ween-video-indexer/generateAccessToken?api-version=2022-04-13-preview*'上的视频索引令牌时,我得到以下响应:

{
"error": {
"code": "ResourcePostActionFailed",
"message": "ResourcePostActionFailed: Access Denied"
}

有谁知道该怎么做吗?我甚至不知道我所做的是对还是错…(

我一步一步做了什么

第一轮:

  • 通过门户创建ARM Video Indexer帐户,
  • 我为视频索引器创建了一个用户管理的身份来连接到媒体服务(系统管理的身份有问题)
  • 添加此托管身份作为Media服务的贡献者。
  • 生成一个"贡献者/账户"使用门户
  • 的视频索引令牌我用这个令牌上传了一个视频。回合成功!👍

第二轮:

我现在需要一种方法来生成这个"门户生成"。视频索引令牌,因为它持续1小时。作为一个守护应用程序,要做到这一点:

  • 我在活动目录上创建了一个App注册,
  • 我为这个应用程序设置了一个客户端秘密,
  • 我添加了一个Api权限'https://management.azure.com/user_impersonation'图像描述
  • 我添加了这个注册应用程序作为视频索引资源的贡献者,
  • 我现在可以在这个端点上为这个应用程序检索范围为'https://management.azure.com/.default'的Azure基本凭据令牌:https://login.microsoftonline.com/fbe3354f-$$$$-404a-8d93-da9b01b57c28/oauth2/v2.0/token
  • 当我尝试使用此凭据生成"贡献者/帐户"时在端点上的视频索引令牌:https://management.azure.com/subscriptions/665eef5b-$$$$-43ad-9ec5-4afc5cd0a0e5/resourceGroups/ween-global/providers/Microsoft.VideoIndexer/accounts/ween-video-indexer/generateAccessToken?api-version=2022-04-13-preview我得到了以下错误
{
"error": {
"code": "ResourcePostActionFailed",
"message": "ResourcePostActionFailed: Access Denied"
}

}

这就像注册的应用程序不允许访问视频索引api。不知道为什么,因为我所理解的是视频索引器的访问现在由RBAC政策管理,我添加了注册应用程序作为视频索引器资源的贡献者。我一定是做错了什么,或者错过了什么重要的事情……😟

✔️分辨率

我正在发送一个额外的标头'Ocp-Apim-Subscription-Key',这不是预期的,这导致了这个错误响应。删除这个额外的标题允许我检索视频索引令牌!:)

经过2天的痛苦和与微软支持的长尾电子邮件交流,我得到了将工作的顺序。至少到目前为止2022年7月7日。

  • 你必须做一个通用的HTTP调用来获取访问令牌。您可以通过以下链接在浏览器中测试此调用:https://learn.microsoft.com/en-gb/rest/api/videoindexer/generate/access-token#code-try-0,但它使用您的登录名和密码,以便通过header
  • 中的身份验证承载
  • 所以,如果你在逻辑应用程序或函数中这样做你需要有一个身份传递它是AD OAuth令牌
  • 你可以为系统分配的管理身份生成它,或者在这种情况下,它将成为你自己的应用程序注册身份,下面你可以看到一个表单详细信息的例子,他们是谁在逻辑应用https://i.stack.imgur.com/EyUqJ.png
  • 如果你决定使用自己的应用程序注册身份,你需要给它视频索引和相关媒体服务的贡献者权限,但主要是你必须创建和分配一个自定义角色,将有微软。VideoIndexer/账户/generateAccessToken/行动许可

一旦你有了访问令牌,你就可以上传和索引视频文件,没有任何问题。

相关内容

最新更新