2 votes

Comment ajouter les autorisations requises à une application Azure Active Directory (AAD) à l'aide du SDK Azure PowerShell ?

Dans mon scénario, j'essaie d'automatiser la création d'une de mes applications AAD afin qu'elle fasse des appels à un autre service WebAPI (une autre application AAD) en utilisant les instructions présentées ici pour les processus Daemon :

https://azure.microsoft.com/en-us/resources/samples/active-directory-dotnet-daemon/

J'ai pu automatiser la création de l'application AAD et de la clé d'accès requise via PowerShell.

Voici comment je crée l'application avec la clé ajoutée :

# Generate all the keys (secrets) for the AAD application.
$passwordCredentials = @()

foreach ($key in $activeDirectoryApplication.Keys.Key)
{
    $keyKeyVaultName = $key.KeyVaultName
    $keyName = $key.KeyVaultKeyName
    $expiration = $key.Expiration

    LogInfo "Generating key with key name '$keyName' into key vault '$keyKeyVaultName' with key expiry of '$expiration'."
    $passwordCredential = GenerateActiveDirectoryApplicationKeyPasswordCredential $key
    $passwordCredentials += $passwordCredential

    PublishActiveDirectoryApplicationKeyToKeyVault $key $passwordCredential
}

$existingApplication = New-AzureRmADApplication -DisplayName $applicationName -HomePage $applicationHomePage -IdentifierUris @($applicationIdentifier) -PasswordCredentials $passwordCredentials

Ce que je n'arrive pas à comprendre, c'est comment automatiser l'étape 8 dans le lien ci-dessus où il accorde des autorisations pour accéder à l'application WebAPI :

  1. Configurez les autorisations pour votre application - dans le menu Paramètres, choisissez la section "Autorisations requises", cliquez sur Ajouter, puis sélectionnez une API et tapez "TodoListService" dans la zone de texte. Ensuite, cliquez sur Select Permissions et sélectionnez 'Access TodoListService'.

Quelqu'un sait-il si cela est possible avec le SDK Azure PowerShell ou dois-je le faire d'une autre manière (peut-être l'API graphique AAD) ?

Merci !

0voto

4c74356b41 Points 23968

Pour attribuer des permissions, vous devez utiliser New-AzureRmRoleAssignment . Cela vous permettra d'attribuer des autorisations à un objet (utilisateur \group\application ) à une certaine portée. Si vous avez besoin d'un rôle intégré, vous êtes prêt à partir. Si vous avez besoin de créer un rôle, utilisez New-AzureRmRoleDefinition .

$role = Get-AzureRmRoleDefinition "Virtual Machine Contributor"
$role.Id = $null
$role.Name = "Classic storage reader"
$role.Actions.Clear()
$role.Actions.Add("Microsoft.ClassicStorage/storageAccounts/read")
$role.AssignableScopes.Clear()
$role.AssignableScopes.Add("/subscriptions/xxxx")
New-AzureRmRoleDefinition -Role $role

Lecture :
https://docs.microsoft.com/en-us/azure/active-directory/role-based-access-control-manage-access-powershell
https://docs.microsoft.com/en-us/powershell/module/azurerm.resources/new-azurermroleassignment?view=azurermps-4.1.0
https://docs.microsoft.com/en-us/powershell/module/azurerm.resources/new-azurermroledefinition?view=azurermps-4.1.0

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X