0

我正在尝试使用 REST API 为 Azure 存储获取用户委托 SAS 令牌。

我有一个帐户,该帐户具有存储帐户所需的角色,并且该帐户已成功通过身份验证并从登录端点返回了 Bearer 令牌。

当我请求用户委托密钥时,我不断收到以下错误:

<?xml version="1.0" encoding="utf-8"?>
<Error>
    <Code>InvalidXmlNodeValue</Code>
    <Message>The value for one of the XML nodes is not in the correct format.
RequestId:9b7a22e3-601e-0082-7bee-060981000000
Time:2021-02-19T18:38:48.1286734Z</Message>
    <XmlNodeName>Expiry</XmlNodeName>
    <XmlNodeValue>2021-02-19T19:30:00</XmlNodeValue>
</Error>

我提交的正文是从Azure docs复制的,:

<?xml version="1.0" encoding="utf-8"?>  
<KeyInfo>  
    <Start>2021-02-19T18:30:00</Start>
    <Expiry>2021-02-19T19:30:00</Expiry>
</KeyInfo>

知道我做错了什么或错过了什么导致失败吗?

在 Azure 上分配的角色是:

Azure 用户角色

以及请求标头:

Authorization: Bearer ...
x-ms-version: 2020-04-08
Content-Type: text/xml
User-Agent: PostmanRuntime/7.26.10
Accept: */*
Postman-Token: df276a57-747c-45dd-a849-15ac6ad7b45b
Host: ....blob.core.windows.net
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Content-Length: 147
4

1 回答 1

1

问题可能是您的令牌生命周期太短而无法使其生效。我的建议是,将到期时间设置为比开始时间长8 小时以上。

到期时间的值最多可以是从开始时间算起的 7 天。

像这样格式化您的到期时间:

2021-02-19T19:30:00Z

参考:https ://docs.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values

于 2021-02-22T07:11:44.683 回答