Azure active directory 如何使用powershell命令为Azure DataLake存储中的Azure Active directory应用程序设置权限

Azure active directory 如何使用powershell命令为Azure DataLake存储中的Azure Active directory应用程序设置权限,azure-active-directory,azure-powershell,azure-data-lake,Azure Active Directory,Azure Powershell,Azure Data Lake,嗨 我正在尝试使用powershell命令在ADLS(Azure DataLakeStore)中设置AAD(Azure Active Directory)应用程序权限(读/写/执行和其他设置) 我尝试使用下面的powershell命令: 设置azurermdatalakestreitemaclentry-AccountName“adls”-路径/ -AceType用户-Id(获取AzureRmADApplication-应用程序Id 490eee0-2ee1-51ee-88er-0F53AERR

我正在尝试使用powershell命令在ADLS(Azure DataLakeStore)中设置AAD(Azure Active Directory)应用程序权限(读/写/执行和其他设置)

我尝试使用下面的powershell命令:

设置azurermdatalakestreitemaclentry-AccountName“adls”-路径/
-AceType用户-Id(获取AzureRmADApplication-应用程序Id 490eee0-2ee1-51ee-88er-0F53AERR7B)。应用程序Id-所有权限

但此命令在ADL中的“访问”属性下设置/显示ApplicationId,仅具有读/写/执行访问权限。但此设置不正确,因为我在ADLS中执行手动服务身份验证步骤。


在ADLS中设置AAD应用程序的权限还有其他方法吗?

您需要将ObjectId(而不是应用程序id)设置为id参数,以
设置AzureRmDataLakeStoreItemAclEntry

Set-AzureRmDataLakeStoreItemAclEntry -AccountName "adls" -Path / -AceType User -Id (Get-AzureRmADApplication -ApplicationId 490eee0-2ee1-51ee-88er-0f53aerer7b).Id -Permissions All

Set-AzureRmDataLakeStoreItemAclEntry
命令的参数
User
应该是要修改ACE的AzureActive Directory用户、组或服务主体的对象ID

您可以参考下面的命令来分配权限:

Set-AzureRmDataLakeStoreItemAclEntry -AccountName "accountName" -Path / -AceType User -Id
(Get-AzureRmADServicePrincipal -ServicePrincipalName "{applicationId}").Id -Permissions All
有关此命令的更多详细信息,请参阅下面的链接:


(获取AzureRmADApplication-应用程序ID 490eee0-2ee1-51ee-88er-0F53AERR7B)。对象ID。。这将返回一个空值。.如果我仅使用(Get AzureRmADApplication-ApplicationId 490eee0-2ee1-51ee-88er-0F53AERR7B)尝试上述答案。Id解决了问题。好的,谢谢你的回复..Doh..是的,的确房产名称不是ObjectId而是Id。谢谢你的确认。我改变了反应以反映。请标记为答案以供将来参考。嗨,薛菲,上面的命令设置了根级别的ADL权限。不显示子文件夹的AAD应用程序权限。如何使用PowerShell设置根目录及其子文件夹的权限?@Amruta要授予可以由子目录继承的权限,我们需要授予默认ACL,而不是访问ACL。要授予默认ACL,请在命令中添加
Default
参数。有关Azure Data Lake中权限的更多详细信息,请参阅文档。非常感谢费雪的回复。这解决了问题