1

enter image description hereComment configurer l'autorisation d'Azure application Active Directory dans Azure DataLake Store à l'aide des commandes Powershell

Salut,

Je suis en train de régler la DAA (Azure Active Directory) l'autorisation d'application (lecture/écriture/exécution & autres paramètres) dans ADLS (Azure DataLakeStore) à l'aide des commandes powershell.

J'ai essayé d'utiliser la commande ci-dessous powershell:

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

Mais cette commande permet de définir/affiche les ApplicationId sous les propriétés "Access" en ADLS avec seulement lecture/écriture/exécution accès. Mais ce paramètre n'est pas correct car j'effectue les étapes manuelles d'authentification du service dans ADLS.

enter image description here

Y at-il une autre façon de définir des autorisations d'application de DAA dans ADLS?

Répondre

2

Le paramètre User de Set-AzureRmDataLakeStoreItemAclEntry commandes doivent être l'ID d'objet de l'utilisateur AzureActive Directory, un groupe ou service principal pour lequel modifier un ACE.

Vous pouvez consulter la commande ci-dessous pour attribuer l'autorisation:

Set-AzureRmDataLakeStoreItemAclEntry -AccountName "accountName" -Path/-AceType User -Id 
(Get-AzureRmADServicePrincipal -ServicePrincipalName "{applicationId}").Id -Permissions All 

Plus de détails sur cette commande, vous pouvez lien ci-dessous se référer:

Set-AzureRmDataLakeStoreItemAclEntry

+0

Merci Fei Xue. Cette commande a résolu mon problème. – Amruta

+0

Salut Fei Xue, la commande ci-dessus définit l'autorisation ADLS au niveau de la racine. L'autorisation Application AAD n'est pas affichée pour les dossiers enfants. Comment puis-je définir les autorisations pour root et son dossier enfant en utilisant PowerShell? – Amruta

+0

@Amruta Pour accorder l'autorisation qui pourrait être héritée par les enfants, nous devons accorder les ** ACL par défaut ** au lieu de ** ACL Access **. Pour accorder les ** ACL par défaut **, ajoutez le paramètre 'Default' dans la commande. Plus de détails sur les autorisations dans Azure Data Lake, s'il vous plaît se référer au document [ici] (https://docs.microsoft.com/en-us/azure/data-lake-store/data-lake-store-access-control) . –

1

Vous devez définir le ObjectId (pas id application) comme paramètre Id à Set-AzureRmDataLakeStoreItemAclEntry

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

(Get-AzureRmADApplication -ApplicationId 490eee0- 2ee1-51ee-88er-0f53aerer7b) .ObjectId .. Cela renvoie une valeur vide..Si j'essaie de répondre ci-dessus avec seulement (Get-AzureRmADApplication -ApplicationId 490eee0-2ee1-51ee-88er-0f53aerer7b) .Id résolu le problème. Eh bien merci pour votre réponse .. – Amruta

+0

Doh..Yes en effet le nom de la propriété n'est pas ObjectId mais Id. Merci de confirmer. J'ai changé la réponse pour réfléchir. Veuillez marquer comme réponse pour référence future. –