問題タブ [azure-sas]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
87 参照

azure - Azure Get User Delegation が有効期限フォーマットで失敗する

REST API を使用して、Azure Storageのユーザー委任 SAS トークンを取得しようとしています。

ストレージ アカウントに必要なロールを持つアカウントを取得しました。アカ​​ウントは正常に認証され、ログイン エンドポイントから Bearer トークンが返されました。

ユーザー委任キーを要求すると、次のエラーが発生し続けます。

送信する本文は、Azure ドキュメントからコピーしたものです。

これが失敗するために私が間違っていることや欠けていることは何か分かりますか?

Azure で割り当てられるロールは次のとおりです。

Azure ユーザー ロール

そしてリクエストヘッダー:

0 投票する
1 に答える
217 参照

azure-blob-storage - ブラウザーの JavaScript を使用した Azure BLOB ユーザー委任 SAS の生成に関する問題

私は、次のことを可能にする Web ページを作成しようとしています。

  1. msal-browser ライブラリを使用して Windows ID プラットフォーム ログイン ポップアップを生成し、ベアラー トークンを取得します。
  2. それを使用して、ブロブ レスト API からユーザー委任キーを取得し、
  3. キーを使用してユーザー委任 SAS を生成し、コンテナーの内容を一覧表示します。

SAS コードを生成するステップに到達しましたが、生成している署名が無効です。私は多くの答えを探しましたが、自分で問題を特定できず、助けが必要です.

ベアラートークンを取得し、ユーザー委任キーを取得しているポイントから始めます (これは機能します):

次に、 https : //docs.microsoft.com/en-us/rest/api/storageservices/create-user-delegation-sas に基づいた形式で "StringToSign" を作成します。

msdn によると、StringToSign を作成したら、"HMAC-SHA256(URL.Decode(UTF8.Encode(StringToSign)))" を生成する必要があります。ドキュメントで入力と出力のサンプルを提供して、関数の作成を余儀なくされた場合に関数を検証できるようにしてほしいと思います。

私がまとめたHMAC関数は次のとおりです。

次のように HMAC を取得します。

最終的に、この URL にその値をサフィックスして、Postman で使用します。

応答:

示唆されているように、フィールドにはいくつかの問題があります。StringToSign のフィールドは、Blob REST API にクエリ パラメーターとして渡されるフィールドと正確に一致する必要がありますか? StringToSign には、未使用のオプション パラメータに対して空の文字列を含める必要があることを読んだことは確かです。それが GET 要求のクエリ パラメータとしてどのように処理されるかはわかりません。[1]: https://gauravmantri.com/2020/02/21/avoiding-authorizationfailed-error-when-hand-crafting-shared-access-signature-for-azure-storage/#disqus_thread