如何扩展文档数据库REST API资源令牌的到期时间

时间:2017-01-20 10:36:15

标签: rest azure authentication token azure-cosmosdb

我通过前端应用程序中的REST API监视文档数据库集合中的条目。

RESP API根据某些过滤条件查询集合中的文档列表。

用于验证REST API调用的令牌是通过.NET SDK生成的。

以下是用于生成令牌的代码段:

 string GenerateAuthToken(string verb, string resourceId, string resourceType, string key, string keyType, string tokenVersion)
    {
        var hmacSha256 = new System.Security.Cryptography.HMACSHA256 { Key = Convert.FromBase64String(key) };

        string verbInput = verb ?? "";
        string resourceIdInput = resourceId ?? "";
        string resourceTypeInput = resourceType ?? "";

        string dateString = DateTime.UtcNow.ToString("r").ToLower();

        string payLoad = string.Format(System.Globalization.CultureInfo.InvariantCulture,
            "{0}\n{1}\n{2}\n{3}\n{4}\n",
                verb.ToLowerInvariant(),
                resourceType.ToLowerInvariant(),
                resourceId,
                dateString,
                ""
        );

        byte[] hashPayLoad = hmacSha256.ComputeHash(System.Text.Encoding.UTF8.GetBytes(payLoad));
        string signature = Convert.ToBase64String(hashPayLoad);

        return System.Web.HttpUtility.UrlEncode(String.Format(System.Globalization.CultureInfo.InvariantCulture, "type={0}&ver={1}&sig={2}",
            keyType,
            tokenVersion,
            signature));
    }

根据API documentation

  

资源令牌必须由中间服务器生成。该   server充当主密钥监护人并生成   不受信任的客户端(如Web浏览器)的时间限制令牌。

此令牌的默认到期时间是多少?有没有办法延长令牌的到期时间?

1 个答案:

答案 0 :(得分:2)

默认情况下,资源令牌的有效期为1小时。有效期可以被覆盖最多5个小时。

如果您正在使用REST,则必须在创建/替换/读取权限时在“x-ms-documentdb-expiry-seconds”标头中进行设置。

有关如何创建一个的更多信息,请参阅https://docs.microsoft.com/en-us/rest/api/documentdb/permissions