我正在制作一个演示来演示 Azure AD 工作负载身份联合与 SPIFFE 和 SPIRE。关注这个blog。除验证步骤外,所有步骤均有效。在验证步骤中 - 它应该获取 JWT 令牌交换 AD 令牌并使用此令牌获取 Azure Blob。它失败了:
有一个获取令牌的端点,这似乎按预期工作。我屏蔽了以下输出中返回的令牌。
$ curl -XGET 20.83.89.207:80/exchanged
{"token":"eyJ0sdfsdfsdfsdfsdfsdfsdfig","expiresOnTimestamp":1678485060000}
当我发出以下命令来获取 blob 时,它因 AuthorizationPermissionMismatch 而失败:
$ curl -XGET <workload svc ip>/<storage container>/<blob name>
错误:
“详细信息”:{“错误代码”:“AuthorizationPermissionMismatch”,“内容长度”:“279”,“内容类型”:“应用程序/ xml”,“日期”:“2023 年 3 月 6 日星期一 15:40: 45 GMT","server":"Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0","x-ms-client-request-id":"1d2cbecb-09b2-4395-93ee-918136ee2fbe","x- ms-request-id":"cf2283f1-d01e-003f-4642-5077a4000000","x-ms-version":"2021-10-04","message":"This request is not authorized to perform this operation using这个许可。 RequestId:cf2283f1-d01e-003f-4642-5077a4000000 时间:2023-03-06T15:40:46.3857513Z","code":"AuthorizationPermissionMismatch"}}
我有一个 Azure 存储帐户,我的委托人分配了以下角色: 贡献者、存储 Blob 委托者、存储 Blob 数据贡献者、存储 Blob 数据读取者和存储队列数据贡献者、存储 Blob 数据所有者、所有者和许多其他角色。
我不确定我错过了什么。
我尝试添加上面列出的不同角色。