gpt4 book ai didi

c# - Azure 媒体服务 AAD token C#

转载 作者:行者123 更新时间:2023-12-03 02:58:15 28 4
gpt4 key购买 nike

目前,我在尝试将 AAD 与 Azure 媒体服务集成时遇到了很大的困难。我必须从 AAD 获取不记名 token ,然后将该 token 传递给 Azure Media Player 才能播放加密视频,但我总是收到以下错误:无法解密加密视频源。 (0x20500004)。

这是我正在使用的代码的两个片段。C# 代码:

string tenant = "xxxxxxxxxcom.onmicrosoft.com";
string clientId = "xxxxxxxx-xxxx-xxx-xxxx-xxxxxxxxxxx";
string clientSecret = "xxxXXXXXXXXXXXXXXXXXXXXXXXxxxx=";
var tokenCredentials = new AzureAdTokenCredentials(tenant, new AzureAdClientSymmetricKey(clientId, clientSecret), AzureEnvironments.AzureCloudEnvironment);
var tokenProvider = new AzureAdTokenProvider(tokenCredentials);
var token = tokenProvider.GetAccessToken();

C# Code Integration With Azure AAD

“Microsoft.WindowsAzure.MediaServices.Client”版本为 4.1

Asp.net/JavaScript 代码:

<script>
var playerOptions = {
"nativeControlsForTouch": false,
controls: true,
autoplay: true,
width: "100%",
height: "auto",
techOrder: ["azureHtml5JS", "flashSS", "html5FairPlayHLS", "silverlightSS", "html5"],
logo: {
enabled: true
},
poster: "https://xxxxxxxxxx.blob.core.windows.net/assetxxxxxxxx-xxxx-410d-xxxx-7xxxxxxxxxxxx/xxxxx11563.jpg?sv=2015-07-08&sr=c&si=xxxxxx-xxxx-xxxxxxx-xxxxxx&sig=xxxxxxxxxxxxxxxb%2F%2FTlyHLU6DTcf%2FdfWMaMSqw%3D&se=2078-06-12T16%3A08%3A03Z",
plugins: {
ga: {
'eventsToTrack': ['playerConfig', 'loaded', 'playTime', 'percentsPlayed', 'start', 'end', 'play', 'pause', 'error', 'buffering', 'fullscreen', 'seek', 'bitrate'],
'debug': false
}
}
};
var playerSrc = [{
src: "http://xxxxxxxxx.streaming.mediaservices.windows.net/xxxxxx-xxx-xxxx-xxx-xxxx/xxxxxx.ism/manifest" + "(format=m3u8-aapl)",
"type": "application/vnd.ms-sstr+xml",
"protectionInfo": [{
"type": "AES",
"authenticationToken": "Bearer @ViewBag.Token"
}],
"streamingFormats":["SMOOTH","DASH"]
}];
</script>

Asp.net/JavaScript Code

Azure Player 的链接是:https://ampdemo.azureedge.net/azuremediaplayer.html

最佳答案

终于知道如何解决这个问题了。请按照我所做的步骤操作:

  1. 如果您不使用 Azure 媒体服务资源管理器,请在此处获取:github.com/Azure/Azure-Media-Services-Explorer。这将使您的视频管理更加轻松。
  2. 选择您的视频源并单击右键。选择“编码 → 使用媒体编码器标准 (MES) 编码 Assets ”。

  3. 选择“内容自适应多比特率 MP4”并单击“启动编码”。 Img for step 3

  4. 工作完成后。右键单击生成的文件,然后选择“安全性→为 Assets 添加动态加密和 key 传送策略”。 Img for step 4
  5. 选择保护“信封清除键” Img for step 5
  6. 后续步骤,使用默认值:第 2 步 - 自动生成,第 3 步 - 是,使用 1 个选项为内容 key 定义授权策略。
  7. 第3步,内容 key 的授权策略选项:Token。 token 类型:SWT – 简单 Web token 。代币属性:填写发行者和受众。之后点击“确定” Img for step 7
  8. 在刚刚加密的视频上,右键单击并选择“发布 → 创建定位器”。保留选项不变,然后单击“创建”按钮。 Img for step 8
  9. 右键点击视频,然后点击“显示信息”或按 F4。
  10. 选择“内容 key ”选项卡,然后选择“内容信封”并保留“ID”和“限制要求”(TokenRestrictionTemplate XML)。 Img for step 10
  11. 播放媒体。右键单击视频,然后单击“播放  使用 azure 媒体播放器”。当您要求时,单击“创建测试 token ”按钮。 Img for step 11
  12. 打开浏览器后,查看“Protection Bearer”。您将在此字段中更新 token 。 Img for step 12
  13. 现在是 C# 代码(抱歉,我不知道为什么没有应用代码格式):

    string tokenTemplateString = "{{在此处粘贴您在步骤 10 中获得的 XML(限制要求)}}";TokenRestrictionTemplate tokenTemplate = TokenRestrictionTemplateSerializer.Deserialize(tokenTemplateString);
    string testToken = TokenRestrictionTemplateSerializer.GenerateTestToken(tokenTemplate, tokenTemplate.PrimaryVerificationKey, new Guid("将您在步骤 10 中获得的 ID 粘贴到此处。删除 "nb:kid:UUID:"部分!"), DateTime.Now.AddHours(10 ));Console.WriteLine("授权 token 是:\nBearer {0}", testToken);

  14. 在步骤 12 标记的字段中使用生成的 token 。不要忘记使用单词“Bearer”

关于c# - Azure 媒体服务 AAD token C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51365746/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com