예제 #1
0
        internal PSKeyVaultRoleDefinition CreateOrUpdateHsmRoleDefinition(string hsmName, string scope, PSKeyVaultRoleDefinition role)
        {
            CreateOrUpdateRoleDefinitionOptions createOptions;

            if (string.IsNullOrEmpty(role.Name))
            {
                createOptions = new CreateOrUpdateRoleDefinitionOptions(new KeyVaultRoleScope(scope));
            }
            else
            {
                createOptions = new CreateOrUpdateRoleDefinitionOptions(new KeyVaultRoleScope(scope), Guid.Parse(role.Name));
            }
            createOptions.RoleName    = role.RoleName;
            createOptions.Description = role.Description;
            role.AssignableScopes.ForEach(x => createOptions.AssignableScopes.Add(x));
            role.Permissions.ForEach(x => createOptions.Permissions.Add(x.ToSdkType()));
            var client       = CreateRbacClient(hsmName);
            var roleResponse = client.CreateOrUpdateRoleDefinitionAsync(createOptions, default).ConfigureAwait(false).GetAwaiter().GetResult().Value;

            return(new PSKeyVaultRoleDefinition(roleResponse));
        }
 public PSKeyVaultRoleDefinition CreateOrUpdateHsmRoleDefinition(string hsmName, string scope, PSKeyVaultRoleDefinition role)
 {
     return(HsmClient.CreateOrUpdateHsmRoleDefinition(hsmName, scope, role));
 }