0

REST API を使用して、Azure Storageのユーザー委任 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 ドキュメントからコピーしたものです。

<?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 に答える