@@ -285,6 +285,107 @@ function Test-SetRemoveAccessPolicyByObjectId
285
285
Assert-AreEqual 0 $vault.AccessPolicies.Count
286
286
}
287
287
288
+ function Test-SetRemoveAccessPolicyByCompoundId
289
+ {
290
+ Param ($existingVaultName , $rgName , $upn , $appId )
291
+
292
+ Assert-NotNull $appId
293
+
294
+ $user = Get-AzureADUser - UserPrincipalName $upn
295
+ if ($user -eq $null )
296
+ {
297
+ $user = Get-AzureADUser - Mail $upn
298
+ }
299
+ Assert-NotNull $user
300
+ $objId = $user.Id
301
+
302
+ $PermToKeys = @ (" encrypt" , " decrypt" )
303
+ $PermToSecrets = @ ()
304
+ $vault = Set-AzureKeyVaultAccessPolicy - VaultName $existingVaultName - ResourceGroupName $rgName - ObjectId $objId - ApplicationId $appId - PermissionsToKeys $PermToKeys - PassThru
305
+
306
+ CheckVaultAccessPolicy $vault $PermToKeys $PermToSecrets
307
+
308
+ Assert-AreEqual $objId $vault.AccessPolicies [0 ].ObjectId
309
+ Assert-AreEqual $appId $vault.AccessPolicies [0 ].ApplicationId
310
+
311
+ $vault = Remove-AzureKeyVaultAccessPolicy - VaultName $existingVaultName - ResourceGroupName $rgName - ObjectId $objId - ApplicationId $appId - PassThru
312
+ Assert-AreEqual 0 $vault.AccessPolicies.Count
313
+ }
314
+
315
+ function Test-RemoveAccessPolicyWithCompoundIdPolicies
316
+ {
317
+ Param ($existingVaultName , $rgName , $upn , $appId1 , $appId2 )
318
+
319
+ Assert-NotNull $appId1
320
+ Assert-NotNull $appId2
321
+
322
+ $user = Get-AzureADUser - UserPrincipalName $upn
323
+ if ($user -eq $null )
324
+ {
325
+ $user = Get-AzureADUser - Mail $upn
326
+ }
327
+ Assert-NotNull $user
328
+ $objId = $user.Id
329
+
330
+ # Add three access policies: ObjectId, (ObjectId, App1), (ObjectId, App2)
331
+ $PermToKeys = @ (" encrypt" , " decrypt" )
332
+ $PermToSecrets = @ ()
333
+ $vault = Set-AzureKeyVaultAccessPolicy - VaultName $existingVaultName - ResourceGroupName $rgName - ObjectId $objId - PermissionsToKeys $PermToKeys - PassThru
334
+ $vault = Set-AzureKeyVaultAccessPolicy - VaultName $existingVaultName - ResourceGroupName $rgName - ObjectId $objId - ApplicationId $appId1 - PermissionsToKeys $PermToKeys - PassThru
335
+ $vault = Set-AzureKeyVaultAccessPolicy - VaultName $existingVaultName - ResourceGroupName $rgName - ObjectId $objId - ApplicationId $appId2 - PermissionsToKeys $PermToKeys - PassThru
336
+ Assert-AreEqual 3 $vault.AccessPolicies.Count
337
+
338
+ # Remove one policy if specify compound id
339
+ $vault = Remove-AzureKeyVaultAccessPolicy - VaultName $existingVaultName - ResourceGroupName $rgName - ObjectId $objId - ApplicationId $appId1 - PassThru
340
+ Assert-AreEqual 2 $vault.AccessPolicies.Count
341
+
342
+ # Remove remaining two policies if specify object id
343
+ $vault = Remove-AzureKeyVaultAccessPolicy - VaultName $existingVaultName - ResourceGroupName $rgName - ObjectId $objId - PassThru
344
+ Assert-AreEqual 0 $vault.AccessPolicies.Count
345
+ }
346
+
347
+ function Test-SetCompoundIdAccessPolicy
348
+ {
349
+ Param ($existingVaultName , $rgName , $upn , $appId )
350
+
351
+ Assert-NotNull $appId
352
+
353
+ $user = Get-AzureADUser - UserPrincipalName $upn
354
+ if ($user -eq $null )
355
+ {
356
+ $user = Get-AzureADUser - Mail $upn
357
+ }
358
+ Assert-NotNull $user
359
+ $objId = $user.Id
360
+
361
+ # Add one compound id policy
362
+ $PermToKeys = @ (" encrypt" , " decrypt" )
363
+ $PermToSecrets = @ ()
364
+ $vault = Set-AzureKeyVaultAccessPolicy - VaultName $existingVaultName - ResourceGroupName $rgName - ObjectId $objId - ApplicationId $appId - PermissionsToKeys $PermToKeys - PassThru
365
+
366
+ CheckVaultAccessPolicy $vault $PermToKeys $PermToSecrets
367
+
368
+ Assert-AreEqual $objId $vault.AccessPolicies [0 ].ObjectId
369
+ Assert-AreEqual $appId $vault.AccessPolicies [0 ].ApplicationId
370
+
371
+ # Add one object id policy
372
+ $vault = Set-AzureKeyVaultAccessPolicy - VaultName $existingVaultName - ResourceGroupName $rgName - ObjectId $objId - PermissionsToKeys $PermToKeys - PassThru
373
+ Assert-AreEqual 2 $vault.AccessPolicies.Count
374
+
375
+ # Change compound id policy shall not affect object id policy
376
+ $vault = Set-AzureKeyVaultAccessPolicy - VaultName $existingVaultName - ResourceGroupName $rgName - ObjectId $objId - ApplicationId $appId - PermissionsToKeys @ (" encrypt" ) - PassThru
377
+ Assert-AreEqual 2 $vault.AccessPolicies.Count
378
+ $vault = Remove-AzureKeyVaultAccessPolicy - VaultName $existingVaultName - ResourceGroupName $rgName - ObjectId $objId - ApplicationId $appId - PassThru
379
+ CheckVaultAccessPolicy $vault $PermToKeys $PermToSecrets
380
+ Assert-AreEqual $objId $vault.AccessPolicies [0 ].ObjectId
381
+ Assert-AreEqual $vault.AccessPolicies [0 ].ApplicationId $null
382
+
383
+ $vault = Remove-AzureKeyVaultAccessPolicy - VaultName $existingVaultName - ResourceGroupName $rgName - ObjectId $objId - PassThru
384
+ Assert-AreEqual 0 $vault.AccessPolicies.Count
385
+ }
386
+
387
+
388
+
288
389
function Test-ModifyAccessPolicy
289
390
{
290
391
Param ($existingVaultName , $rgName , $upn )
@@ -416,4 +517,4 @@ function CheckVaultAccessPolicy
416
517
Assert-Null $compare
417
518
$compare = Compare-Object $vault.AccessPolicies [0 ].PermissionsToSecrets $expectedPermsToSecrets
418
519
Assert-Null $compare
419
- }
520
+ }
0 commit comments