Ejemplo n.º 1
0
        public async Task KeyVaultManagementRecoverDeletedVault()
        {
            var parameters = new VaultCreateOrUpdateParameters(Location, VaultProperties);

            parameters.Tags.InitializeFrom(Tags);
            var createdVault = await VaultsClient.StartCreateOrUpdateAsync(
                resourceGroupName : ResGroupName,
                vaultName : VaultName,
                parameters : parameters
                );

            var vaultValue = await WaitForCompletionAsync(createdVault);

            // Delete
            await VaultsClient.DeleteAsync(
                resourceGroupName : ResGroupName,
                vaultName : VaultName);

            // Get deleted vault
            Assert.ThrowsAsync <RequestFailedException>(async() =>
            {
                await VaultsClient.GetAsync(
                    resourceGroupName: ResGroupName,
                    vaultName: VaultName);
            });

            parameters = new VaultCreateOrUpdateParameters(Location, VaultProperties);
            parameters.Tags.InitializeFrom(Tags);
            // Recover in default mode
            var recoveredRawVault = await VaultsClient.StartCreateOrUpdateAsync(
                resourceGroupName : ResGroupName,
                vaultName : VaultName,
                parameters : parameters
                );

            var recoveredVault = await WaitForCompletionAsync(recoveredRawVault);

            Assert.True(recoveredVault.Value.IsEqual(vaultValue.Value));

            // Get recovered vault
            await VaultsClient.GetAsync(
                resourceGroupName : ResGroupName,
                vaultName : VaultName);

            // Delete
            await VaultsClient.DeleteAsync(
                resourceGroupName : ResGroupName,
                vaultName : VaultName);

            VaultProperties.CreateMode = CreateMode.Recover;
            parameters = new VaultCreateOrUpdateParameters(Location, VaultProperties);

            // Recover in recover mode
            var recoveredRawVault2 = await VaultsClient.StartCreateOrUpdateAsync(
                resourceGroupName : ResGroupName,
                vaultName : VaultName,
                parameters : parameters
                );

            var recoveredVault2 = await WaitForCompletionAsync(recoveredRawVault);

            Assert.True(recoveredVault2.Value.IsEqual(vaultValue.Value));

            // Get recovered vault
            await VaultsClient.GetAsync(
                resourceGroupName : ResGroupName,
                vaultName : VaultName);

            // Delete
            await VaultsClient.DeleteAsync(
                resourceGroupName : ResGroupName,
                vaultName : VaultName);
        }
Ejemplo n.º 2
0
        public async Task KeyVaultManagementVaultCreateUpdateDelete()
        {
            VaultProperties.EnableSoftDelete = null;

            var parameters = new VaultCreateOrUpdateParameters(Location, VaultProperties);

            parameters.Tags.InitializeFrom(Tags);

            var rawVault = await VaultsClient.StartCreateOrUpdateAsync(
                ResGroupName,
                VaultName,
                parameters);

            var createdVault = (await WaitForCompletionAsync(rawVault)).Value;

            ValidateVault(createdVault,
                          VaultName,
                          ResGroupName,
                          TestEnvironment.SubscriptionId,
                          TenantIdGuid,
                          Location,
                          "A",
                          SkuName.Standard,
                          true,
                          true,
                          true,
                          true, // enableSoftDelete defaults to true
                          new[] { AccessPolicy },
                          VaultProperties.NetworkAcls,
                          Tags);

            //Update
            AccessPolicy.Permissions.Secrets.Clear();
            AccessPolicy.Permissions.Secrets.Add(SecretPermissions.Get);
            AccessPolicy.Permissions.Secrets.Add(SecretPermissions.Set);
            (AccessPolicy.Permissions.Keys as ChangeTrackingList <KeyPermissions>).Reset();

            AccessPolicy.Permissions.Storage.Clear();
            AccessPolicy.Permissions.Storage.Add(StoragePermissions.Get);
            AccessPolicy.Permissions.Storage.Add(StoragePermissions.Regeneratekey);

            createdVault.Properties.AccessPolicies.Clear();
            createdVault.Properties.AccessPolicies.Add(AccessPolicy);
            createdVault.Properties.Sku.Name = SkuName.Premium;

            parameters = new VaultCreateOrUpdateParameters(Location, createdVault.Properties);
            parameters.Tags.InitializeFrom(Tags);
            var rawUpdateVault = await VaultsClient.StartCreateOrUpdateAsync(
                resourceGroupName : ResGroupName,
                vaultName : VaultName,
                parameters : parameters
                );

            var updateVault = (await WaitForCompletionAsync(rawUpdateVault)).Value;

            ValidateVault(updateVault,
                          VaultName,
                          ResGroupName,
                          TestEnvironment.SubscriptionId,
                          TenantIdGuid,
                          Location,
                          "A",
                          SkuName.Premium,
                          true,
                          true,
                          true,
                          true,
                          new[] { AccessPolicy },
                          VaultProperties.NetworkAcls,
                          Tags);

            var rawRetrievedVault = await VaultsClient.GetAsync(
                resourceGroupName : ResGroupName,
                vaultName : VaultName);

            var retrievedVault = rawRetrievedVault.Value;

            ValidateVault(retrievedVault,
                          VaultName,
                          ResGroupName,
                          TestEnvironment.SubscriptionId,
                          TenantIdGuid,
                          Location,
                          "A",
                          SkuName.Premium,
                          true,
                          true,
                          true,
                          true,
                          new[] { AccessPolicy },
                          VaultProperties.NetworkAcls,
                          Tags);

            // Delete
            await VaultsClient.DeleteAsync(
                resourceGroupName : ResGroupName,
                vaultName : VaultName);

            Assert.ThrowsAsync <RequestFailedException>(async() =>
            {
                await VaultsClient.GetAsync(
                    resourceGroupName: ResGroupName,
                    vaultName: VaultName);
            });
        }
Ejemplo n.º 3
0
        public async Task KeyVaultManagementVaultTestCompoundIdentityAccessControlPolicy()
        {
            AccessPolicy.ApplicationId       = Guid.Parse(TestEnvironment.ClientId);
            VaultProperties.EnableSoftDelete = null;

            var parameters = new VaultCreateOrUpdateParameters(Location, VaultProperties);

            parameters.Tags.InitializeFrom(Tags);

            var createVault = await VaultsClient.StartCreateOrUpdateAsync(
                resourceGroupName : ResGroupName,
                vaultName : VaultName,
                parameters : parameters
                );

            var vaultResponse = await WaitForCompletionAsync(createVault);

            ValidateVault(vaultResponse.Value,
                          VaultName,
                          ResGroupName,
                          TestEnvironment.SubscriptionId,
                          TenantIdGuid,
                          Location,
                          "A",
                          SkuName.Standard,
                          true,
                          true,
                          true,
                          true,
                          new[] { AccessPolicy },
                          Tags);

            // Get
            var retrievedVault = await VaultsClient.GetAsync(
                resourceGroupName : ResGroupName,
                vaultName : VaultName);

            ValidateVault(retrievedVault.Value,
                          VaultName,
                          ResGroupName,
                          TestEnvironment.SubscriptionId,
                          TenantIdGuid,
                          Location,
                          "A",
                          SkuName.Standard,
                          true,
                          true,
                          true,
                          true,
                          new[] { AccessPolicy },
                          Tags);


            // Delete
            await VaultsClient.DeleteAsync(
                resourceGroupName : ResGroupName,
                vaultName : VaultName);

            Assert.ThrowsAsync <RequestFailedException>(async() =>
            {
                await VaultsClient.GetAsync(
                    resourceGroupName: ResGroupName,
                    vaultName: VaultName);
            });
        }