【问题标题】:Azure create blob container using REST api and managed identity - 403 errorAzure 使用 REST api 和托管标识创建 blob 容器 - 403 错误
【发布时间】:2021-09-02 03:47:59
【问题描述】:

我正在尝试使用 REST api 在存储帐户下创建 blob 容器

我正在使用托管标识(用于应用服务、节点应用)与存储帐户进行交互。此托管标识对资源组和存储帐户具有必要的权限 - 存储帐户参与者和存储 Blob 数据参与者

这是我正在遵循的步骤:

我在第二步中发送的强制性标题是:

  • 授权:不记名访问令牌
  • x-ms-日期:2021-06-17T09:01:48.667Z
  • x-ms-版本:2020-04-08

我得到: statusCode: 403, statusMessage: '服务器未能验证请求。确保 Authorization 标头的值格式正确,包括签名。'

在发送授权标头时我有什么遗漏吗?找不到任何使用托管标识调用创建容器 api 的示例。

另一种选择是使用 blob 存储 sdk (https://docs.microsoft.com/en-us/azure/storage/blobs/storage-quickstart-blobs-nodejs),但找不到任何使用托管标识创建容器的示例。

非常感谢任何使这项工作的指针。

谢谢,

【问题讨论】:

    标签: node.js azure azure-storage azure-managed-identity azure-rest-api


    【解决方案1】:

    首先,您无法使用托管标识调用 Rest APIAuthorization header 需要授权方案、账户名和签名。

    在 Node.js 中使用 JavaScript v12 SDK 管理 blob:

    您可以将@azure/identity 用于托管身份。

    const { ManagedIdentityCredential } = require("@azure/identity");
    const { BlobServiceClient } = require("@azure/storage-blob");
    
    const credential = new ManagedIdentityCredential("<USER_ASSIGNED_MANAGED_IDENTITY_CLIENT_ID>");
    
    const blobServiceClient = new BlobServiceClient(
        `https://${account}.blob.core.windows.net`,
        credential
    );
    

    【讨论】:

    猜你喜欢
    • 2015-04-23
    • 1970-01-01
    • 1970-01-01
    • 2020-05-02
    • 2022-06-13
    • 2018-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多