azure media service aes jwt token

时间:2016-07-08 10:59:38

标签: azure aes azure-media-services

我使用带有内容保护的azure媒体播放器。 登录我们的服务器获取令牌,但在html或javascript中设置令牌。 如果我们的用户复制令牌并粘贴到自己的html页面。 我的内容保护将返回密钥。 有没有办法限制一个令牌一个用户? 非常感谢。

2 个答案:

答案 0 :(得分:1)

您可以查看http://gtrifonov.com/2015/01/24/mvc-owin-azure-media-services-ad-integration/,了解如何根据jwt令牌用户组声明限制视频播放。从技术上讲,您可以通过检查令牌中的任何声明来创建限制。例如用户电子邮件或ID。但是您需要使用sdks为视频配置这些限制。

可以在https://github.com/Azure/azure-sdk-for-media-services/blob/d543e77ec47691110575078e8df71c55c2d7128e/test/net/unit/TokenRestrictionTemplateSerializerTests.cs找到一些单元测试。

例如,

下面的代码将创建限制,只有那些令牌包含声明“租借”的用户才能获得密钥。

TokenRestrictionTemplate template = new TokenRestrictionTemplate(TokenType.JWT);
            template.Audience = _sampleAudience;
            template.Issuer = _sampleIssuer;
    template.RequiredClaims.Add(new TokenClaim("Rental", "true"));
            try
            {
                TokenRestrictionTemplateSerializer.Serialize(template);
            }

如果您使用Azure AD,则可以在此处找到支持的声明列表https://azure.microsoft.com/en-us/documentation/articles/active-directory-token-and-claims/。 例如,您可以使用声明“unique_name”进行检查。

实际上,您可能会使用安全组声明,因为与授予各个用户名的权限相比,它易于管理。

没有任何东西可以阻止经过身份验证的用户复制令牌并减轻这种情况,您可以执行以下操作:

  • 切换到PlayReady和Widewine等DRM保护。更多保护和限制选项
    • 通过制作您自己的令牌而不是使用来自Active Directory或其他提供程序的用户会话令牌来最小化令牌生存期。在用户实际播放视频之前,您需要有一些机制来请求令牌。内容密钥检索需要执行一次才能解密回放,因此如果两个事件靠得很近,则可以最大限度地减少重用相同令牌的可能性。
    • 您可以创建基于自定义逻辑检索内容密钥的代理 - 例如,仅为内容密钥提供一次。并使用代理作为内容密钥的端点。

答案 1 :(得分:0)

您可以将到期时间设置为少于5分钟 - 因此令牌会在很短的时间内到期,足以让用户检索密钥。因此,当用户将令牌传递给另一个令牌时,该令牌将不再有用(可能已过期)。如上所述,你提到的是一次性令牌,我们今天不支持。