我试图通过REST Api调用为AD用户提供对容器的IAM访问(存储Blob数据读取器)。
我的存储结构如下:-订阅>> ResourceGroup >>资源(即存储帐户)>>
许多容器>>每个容器下面都有一些斑点
能够使用以下方法通过REST调用为用户(我的Active Directory中的用户)提供对StorageAccount级别的读者访问权限:-
https://management.azure.com/subscriptions/SUBSCRIPTION-ID/resourceGroups/RESOURCE-GROUP-NAME/providers/Microsoft.Storage/storageAccounts/STORAGE-ACCOUNT-NAME/providers/Microsoft.Authorization/roleAssignments/ANY-UNIQUE-GUID?api-version=2015-07-01
HEADER:
[{"key":"Content-Type","value":"application/json"}]
[{"key":"Authorization","value":"Bearer Token"}]
BODY:
{
"properties": {
"roleDefinitionId": "/subscriptions/SUBSCRIPTION-ID/resourceGroups/RESOURCE-GROUP-NAME/providers/Microsoft.Storage/storageAccounts/STORAGE-ACCOUNT-NAME/providers/Microsoft.Authorization/roleDefinitions/READER-ACCESS-GUID",
"principalId": "AD-USER-OBJECT-ID"
}
}
请帮助我在存储帐户下的任何特定容器(不是全部)级别为该用户分配一个角色,以便他/她可以读取/写入该容器内的任何Blob。
谢谢!
在邮递员中,它返回状态代码201,并且在Azure门户中角色分配数量显示为1,但是用户看不到该Container内的任何Blob。
如果您需要更多信息,请帮助或让我知道。
答案 0 :(得分:1)
根据我的理解,您想使用Azure AD Auth访问Azure Blob存储。您需要为用户分配Azure RABC角色(例如Storage Blob数据读取器)。有关更多详细信息,请参阅https://docs.microsoft.com/da-dk/azure/storage/common/storage-auth-aad
关于如何使用rest api为一个用户分配tole,请参考以下步骤
注册Azure AD应用程序
调用邮递员中的其余api
b。获取角色名称和角色ID
GET https://management.azure.com/subscriptions/<subscription id>/providers/Microsoft.Authorization/roleDefinitions?$filter=roleName eq '<the role your need such as Storage Blob Data Contributor>'&api-version=2018-01-01-preview
Header:
Authorization: Bearer <token>
c。分配角色
PUT https://management.azure.com/<your scope> /providers/Microsoft.Authorization/roleAssignments/<role name>?api-version=2018-01-01-preview
Header:
Authorization: Bearer <token>
Content-Type: application/json
Body
{ "properties": {
"roleDefinitionId": "<role id>",
"principalId": "<The principal ID assigned to the role. This maps to the ID inside the Active Directory. It can point to a user, service principal, or security group.>"
}}
请注意,容器范围应类似于subscriptions/<subscription id>/resourceGroups/<group name>/providers/Microsoft.Storage/storageAccounts/<account name>/blobServices/default/containers/<container name>
使用Storage Explorer进行检查。有关更多详细信息,请参阅document 一种。选择 Connect 符号以打开 Connect to Azure Storage 。
b。如果尚未这样做,请使用添加Azure帐户选项登录到有权访问该资源的Azure帐户。登录后,返回到连接到Azure存储。
c。选择通过Azure Active Directory添加资源(Azure AD),然后选择下一步。
d。选择一个Azure帐户和租户。这些值必须有权访问要附加到的存储资源。选择下一步。e。选择要附加的资源类型。输入连接所需的信息。
您在此页面上输入的信息取决于您要添加的资源类型。确保选择正确的资源类型。输入所需的信息后,选择下一步。
f。查看连接摘要,以确保所有信息正确无误。如果是,请选择连接。否则,选择返回返回上一页以更正所有错误信息。