0

Azure メディア サービスをテストするための簡単な Azure 関数をセットアップしました。アップロードした動画を保護しようとしていますが、JWT を正しく取得できないようです。簡単な関数コードを次に示します。

    [FunctionName("Test")]
    public static async Task<IActionResult> Run(
        [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
        ILogger log)
    {
        var expires = DateTimeOffset.UtcNow.AddMinutes(20);
        var securityKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("RYhzAnz....VP0uQ==")); // removed full key for brevity
        var credentials = new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha256);
        var claims = new List<Claim>
        {
        };

        var token = new JwtSecurityToken("http://test.net/",
            "urn:user",
            claims.AsEnumerable(),
            expires: expires.LocalDateTime,
            signingCredentials: credentials
        );

        return new OkObjectResult(new JwtSecurityTokenHandler().WriteToken(token));
    }

Azure 設定の内容と一致するように、トークンの発行者/対象者を入力しました。

ここに画像の説明を入力

jwt.ioでそのトークンを検証したところ、正しく検証されました

ここに画像の説明を入力

しかし、Azure Media Player でテストすると、応答は AuthorizationPolicyEvaluationFailure を伴う 401 です。

ここに画像の説明を入力

Azure キー配信サービスからの応答は次のとおりです。

{
  "Error": {
    "Message": "Failed content key policy evaluation.",
    "Code": "AuthorizationPolicyEvaluationFailure"
  }
}
4

3 に答える 3