增加 Azure 媒体服务 SWT 令牌到期时间

Increase Azure Media Services SWT Token expiry time

默认情况下,Azure 媒体服务 SWT 令牌会在几分钟后过期。这意味着,无法再次使用该令牌对视频进行加密。这是一个很棒的推荐功能,可以为每次播放生成密钥令牌,因为 keys/token 是纯文本。但我想从代码中控制这个到期时间。 出于测试目的,我使用 Mingfeiy's blog.

上建议的 Azure 媒体资源管理器工具

这是设置结束日期时间的工具的屏幕截图,效果很好。



你能建议如何从代码中实现这一点吗?这是我将用来设置 Issuer 和 Audience 信息的代码。我想也会有一些方法来设置它。

    static private string GenerateTokenRequirements()
    {
        Uri _issuer = new Uri(ConfigurationManager.AppSettings["Issuer"]);
        Uri _audience = new Uri(ConfigurationManager.AppSettings["Audience"]);

        TokenRestrictionTemplate template = new TokenRestrictionTemplate(TokenType.SWT);

        template.PrimaryVerificationKey = new SymmetricVerificationKey();
        template.AlternateVerificationKeys.Add(new SymmetricVerificationKey());
        template.Audience = _issuer.ToString();
        template.Issuer = _audience.ToString();

        // Maybe here            

        template.RequiredClaims.Add(TokenClaim.ContentKeyIdentifierClaim);

        return TokenRestrictionTemplateSerializer.Serialize(template);
    }

提前致谢。

您可以使用以下方法生成带有有效期的令牌: 字符串 testToken = TokenRestrictionTemplateSerializer.GenerateTestToken(tokenTemplate, null, rawkey, DateTime.UtcNow.AddDays(365));

此方法的签名在此源代码中:https://github.com/Azure/azure-sdk-for-media-services/blob/07a536cb1b3f5fb19ac0f25c12c7a360794db7d3/src/net/Client/ContentKeyAuthorization/Templates/TokenRestrictionTemplateSerializer.cs

DateTime.UtcNow.AddDays(365) 是 expiryOn 日期时间。