Skip to content

Commit d59d13d

Browse files
Implement additional tests for ApiMethods and Resource Action definitions
1 parent 8da6f12 commit d59d13d

File tree

6 files changed

+258
-37
lines changed

6 files changed

+258
-37
lines changed

src/Certify.Models/Hub/AccessControlConfig.cs

Lines changed: 118 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,12 @@ namespace Certify.Models.Hub
99
{
1010
public class StandardRoles
1111
{
12+
internal static Role BackupOperator { get; } = new Role("backup_operator_role", "Backup Operator", "Can perform import and export operations",
13+
policies: new List<string> {
14+
StandardPolicies.ManagedInstanceSystemExport,
15+
StandardPolicies.ManagedInstanceSystemImport
16+
});
17+
1218
public static Role Administrator { get; } = new Role("sysadmin_role", "Administrator", "Certify Server Administrator",
1319
policies: new List<string> {
1420
StandardPolicies.ManagementHubAdmin,
@@ -18,9 +24,12 @@ public class StandardRoles
1824
StandardPolicies.StoredCredentialAdmin,
1925
StandardPolicies.ManagedChallengeAdmin,
2026
StandardPolicies.AccessAdmin,
27+
StandardPolicies.AccessTokenAdmin,
2128
StandardPolicies.CertificateConsumer,
22-
StandardPolicies.AccessAdmin,
23-
StandardPolicies.ManagedChallengeAdmin
29+
StandardPolicies.ManagedChallengeAdmin,
30+
StandardPolicies.ManagedInstanceSystemExport,
31+
StandardPolicies.ManagedInstanceSystemImport,
32+
StandardPolicies.SystemUser
2433
});
2534

2635
public static Role CertificateManager { get; } = new Role("cert_manager_role", "Certificate Manager", "Can manage and administer all certificates",
@@ -66,6 +75,7 @@ public class ResourceTypes
6675
{
6776
public static string System { get; } = "system";
6877
public static string SecurityPrinciple { get; } = "securityprinciple";
78+
public static string Role { get; } = "role";
6979
public static string AccessToken { get; } = "accesstoken";
7080
public static string Domain { get; } = "domain";
7181
public static string ManagedItem { get; } = "manageditem";
@@ -122,6 +132,8 @@ public static class StandardResourceActions
122132
public const string SecurityPrinciplePasswordValidate = "securityprinciple_password_validate_action";
123133
public const string SecurityPrincipleCheckAccess = "securityprinciple_access_check_action";
124134

135+
public const string RoleList = "role_list_action";
136+
125137
public const string ManagedChallengeList = "managedchallenge_list_action";
126138
public const string ManagedChallengeUpdate = "managedchallenge_update_action";
127139
public const string ManagedChallengeDelete = "managedchallenge_update_action";
@@ -134,14 +146,16 @@ public static class StandardResourceActions
134146
public const string ManagementHubInstanceAdd = "managementhub_instance_add_action";
135147
public const string ManagementHubInstanceUpdate = "managementhub_instance_update_action";
136148

149+
public const string ManagementHubInstanceExport = "managementhub_instance_export_action";
150+
public const string ManagementHubInstanceImport = "managementhub_instance_import_action";
151+
137152
public const string AccessTokenList = "accesstoken_list_action";
138153
public const string AccessTokenAdd = "accesstoken_add_action";
139154
public const string AccessTokenUpdate = "accesstoken_update_action";
140155
public const string AccessTokenDelete = "accesstoken_delete_action";
141156

142157
public const string SystemGeneralAction = "system_general_action";
143-
public const string SystemExport = "system_export_action";
144-
public const string SystemImport = "system_import_action";
158+
145159
public const string SystemStatusList = "system_status_list_action";
146160
public const string SystemServiceConfigList = "system_serviceconfig_list_action";
147161
public const string SystemCoreSettingsList = "system_coresettings_list_action";
@@ -157,13 +171,14 @@ public static class StandardResourceActions
157171
public const string ChallengeProviderDnsZonesList = "challengeprovider_dnszones_list_action";
158172

159173
public const string DeploymentTaskExecute = "deploymenttask_execute_action";
174+
public const string DeploymentTaskListProviders = "deploymenttask_list_providers_action";
160175

161-
public const string CertificateDelete = "certificate_delete_action";
162176
}
163177

164178
public class StandardPolicies
165179
{
166180
public const string AccessAdmin = "access_admin_policy";
181+
public const string AccessTokenAdmin = "accesstoken_admin_policy";
167182
public const string ManagedItemAdmin = "manageditem_admin_policy";
168183
public const string CertificateConsumer = "certificate_consumer_policy";
169184
public const string CertificateAuthorityAdmin = "ca_admin_policy";
@@ -175,6 +190,10 @@ public class StandardPolicies
175190
public const string ManagementHubAdmin = "managementhub_admin_policy";
176191
public const string ManagementHubReader = "managementhub_reader_policy";
177192
public const string ManagedInstance = "managementhub_managedinstance_policy";
193+
public const string ManagedInstanceSystemImport = "system_import_policy";
194+
public const string ManagedInstanceSystemExport = "system_export_policy";
195+
public const string SystemUser = "system_user_policy";
196+
178197
}
179198

180199
public static class Policies
@@ -188,7 +207,8 @@ public static List<Role> GetStandardRoles()
188207
StandardRoles.CertificateConsumer,
189208
StandardRoles.StoredCredentialConsumer,
190209
StandardRoles.ManagedChallengeConsumer,
191-
StandardRoles.ManagedInstance
210+
StandardRoles.ManagedInstance,
211+
StandardRoles.BackupOperator
192212
};
193213
}
194214

@@ -218,8 +238,18 @@ public static List<ResourceAction> GetStandardResourceActions()
218238
new(StandardResourceActions.SecurityPrincipleList, "List Security Principles", ResourceTypes.SecurityPrinciple),
219239
new(StandardResourceActions.SecurityPrincipleAdd, "Add New Security Principle", ResourceTypes.SecurityPrinciple),
220240
new(StandardResourceActions.SecurityPrincipleUpdate,"Update Security Principles", ResourceTypes.SecurityPrinciple),
241+
new(StandardResourceActions.SecurityPrincipleUpdateAssignedRoles,"Update Security Principle Assigned Roles", ResourceTypes.SecurityPrinciple),
221242
new(StandardResourceActions.SecurityPrinciplePasswordUpdate, "Update Security Principle Passwords", ResourceTypes.SecurityPrinciple),
222243
new(StandardResourceActions.SecurityPrincipleDelete, "Delete Security Principle", ResourceTypes.SecurityPrinciple),
244+
new(StandardResourceActions.SecurityPrincipleCheckAccess, "Check Security Principle Access", ResourceTypes.SecurityPrinciple),
245+
new(StandardResourceActions.SecurityPrinciplePasswordValidate, "Validate Security Principle Passwords", ResourceTypes.SecurityPrinciple),
246+
247+
new(StandardResourceActions.AccessTokenAdd, "Add Access Token", ResourceTypes.AccessToken),
248+
new(StandardResourceActions.AccessTokenDelete, "Delete Access Token", ResourceTypes.AccessToken),
249+
new(StandardResourceActions.AccessTokenList, "List Access Tokens", ResourceTypes.AccessToken),
250+
new(StandardResourceActions.AccessTokenUpdate, "Update Access Token", ResourceTypes.AccessToken),
251+
252+
new(StandardResourceActions.RoleList, "List Roles", ResourceTypes.Role),
223253

224254
new(StandardResourceActions.ManagedItemRequest, "Request New Managed Items", ResourceTypes.ManagedItem),
225255

@@ -247,9 +277,12 @@ public static List<ResourceAction> GetStandardResourceActions()
247277
new(StandardResourceActions.ManagementHubInstancesList, "List managed instances", ResourceTypes.ManagedInstance),
248278
new(StandardResourceActions.ManagementHubInstanceJoin, "Join management hub as a managed instance", ResourceTypes.ManagedInstance),
249279
new(StandardResourceActions.ManagementHubInstanceDelete, "Delete managed instance from the hub", ResourceTypes.ManagedInstance),
280+
new(StandardResourceActions.ManagementHubInstanceAdd, "Add managed instance details to the hub", ResourceTypes.ManagedInstance),
281+
new(StandardResourceActions.ManagementHubInstanceUpdate, "Update managed instance detail in the hub", ResourceTypes.ManagedInstance),
282+
283+
new(StandardResourceActions.ManagementHubInstanceExport, "Export system configuration", ResourceTypes.ManagedInstance),
284+
new(StandardResourceActions.ManagementHubInstanceImport, "Import system configuration", ResourceTypes.ManagedInstance),
250285

251-
new(StandardResourceActions.SystemExport, "Export system configuration", ResourceTypes.System),
252-
new(StandardResourceActions.SystemImport, "Import system configuration", ResourceTypes.System),
253286
new(StandardResourceActions.SystemStatusList, "List system status", ResourceTypes.System),
254287
new(StandardResourceActions.SystemServiceConfigList, "List system service configuration", ResourceTypes.System),
255288
new(StandardResourceActions.SystemCoreSettingsList, "List system core settings", ResourceTypes.System),
@@ -264,7 +297,8 @@ public static List<ResourceAction> GetStandardResourceActions()
264297
new(StandardResourceActions.ChallengeProviderList, "List challenge providers", ResourceTypes.ChallengeProvider),
265298
new(StandardResourceActions.ChallengeProviderDnsZonesList, "List challenge provider DNS zones", ResourceTypes.ChallengeProvider),
266299

267-
new(StandardResourceActions.DeploymentTaskExecute, "Execute deployment task", ResourceTypes.DeploymentTask)
300+
new(StandardResourceActions.DeploymentTaskExecute, "Execute deployment task", ResourceTypes.DeploymentTask),
301+
new(StandardResourceActions.DeploymentTaskListProviders, "List deployment task providers", ResourceTypes.DeploymentTask)
268302

269303
};
270304
}
@@ -287,7 +321,15 @@ public static List<ResourcePolicy> GetStandardPolicies()
287321
StandardResourceActions.ManagedItemTaskAdd,
288322
StandardResourceActions.ManagedItemTaskUpdate,
289323
StandardResourceActions.ManagedItemTaskDelete,
290-
StandardResourceActions.ManagedItemLogView
324+
StandardResourceActions.ManagedItemLogView,
325+
StandardResourceActions.TargetIPAddressesList,
326+
StandardResourceActions.TargetServiceItemIdentifiersList,
327+
StandardResourceActions.TargetServiceItemsList,
328+
StandardResourceActions.TargetTypesList,
329+
StandardResourceActions.ChallengeProviderList,
330+
StandardResourceActions.ChallengeProviderDnsZonesList,
331+
StandardResourceActions.DeploymentTaskExecute,
332+
StandardResourceActions.DeploymentTaskListProviders
291333
}
292334
},
293335
new() {
@@ -299,9 +341,22 @@ public static List<ResourcePolicy> GetStandardPolicies()
299341
StandardResourceActions.SecurityPrincipleAdd,
300342
StandardResourceActions.SecurityPrincipleUpdate,
301343
StandardResourceActions.SecurityPrincipleDelete,
302-
StandardResourceActions.SecurityPrinciplePasswordUpdate
344+
StandardResourceActions.SecurityPrinciplePasswordUpdate,
345+
StandardResourceActions.SecurityPrincipleUpdateAssignedRoles
346+
303347
}
304348
},
349+
new() {
350+
Id = StandardPolicies.AccessTokenAdmin,
351+
Title = "Access Token Administration",
352+
SecurityPermissionType = SecurityPermissionType.ALLOW,
353+
ResourceActions = new List<string> {
354+
StandardResourceActions.AccessTokenList,
355+
StandardResourceActions.AccessTokenAdd,
356+
StandardResourceActions.AccessTokenDelete,
357+
StandardResourceActions.AccessTokenUpdate,
358+
}
359+
},
305360
new() {
306361
Id = StandardPolicies.CertificateConsumer,
307362
Title = "Consume Certificates",
@@ -371,7 +426,8 @@ public static List<ResourcePolicy> GetStandardPolicies()
371426
SecurityPermissionType = SecurityPermissionType.ALLOW,
372427
IsResourceSpecific = true,
373428
ResourceActions = new List<string> {
374-
StandardResourceActions.ManagedChallengeRequest
429+
StandardResourceActions.ManagedChallengeRequest,
430+
StandardResourceActions.ManagedChallengeCleanup
375431
}
376432
},
377433
new() {
@@ -382,7 +438,15 @@ public static List<ResourcePolicy> GetStandardPolicies()
382438
IsResourceSpecific = true,
383439
ResourceActions = new List<string> {
384440
StandardResourceActions.ManagementHubInstancesList,
385-
StandardResourceActions.ManagementHubInstanceDelete
441+
StandardResourceActions.ManagementHubInstanceAdd,
442+
StandardResourceActions.ManagementHubInstanceUpdate,
443+
StandardResourceActions.ManagementHubInstanceDelete,
444+
StandardResourceActions.SystemStatusList,
445+
StandardResourceActions.SystemCoreSettingsList,
446+
StandardResourceActions.SystemCoreSettingsUpdate,
447+
StandardResourceActions.SystemServiceConfigList,
448+
StandardResourceActions.SystemServiceConfigUpdate,
449+
386450
}
387451
},
388452
new() {
@@ -396,15 +460,47 @@ public static List<ResourcePolicy> GetStandardPolicies()
396460
}
397461
},
398462
new() {
399-
Id = StandardPolicies.ManagedInstance,
400-
Title = "Management Hub Managed Instance",
401-
Description = "Join management hub and alow to be managed by hub.",
402-
SecurityPermissionType = SecurityPermissionType.ALLOW,
403-
IsResourceSpecific = true,
404-
ResourceActions = new List<string> {
405-
StandardResourceActions.ManagementHubInstanceJoin
406-
}
407-
}
463+
Id = StandardPolicies.ManagedInstance,
464+
Title = "Management Hub Managed Instance",
465+
Description = "Join management hub and allow to be managed by hub.",
466+
SecurityPermissionType = SecurityPermissionType.ALLOW,
467+
IsResourceSpecific = true,
468+
ResourceActions = new List<string> {
469+
StandardResourceActions.ManagementHubInstanceJoin
470+
}
471+
},
472+
new() {
473+
Id = StandardPolicies.ManagedInstanceSystemImport,
474+
Title = "Instance Configuration Import",
475+
Description = "Import system configuration and apply to a target instance",
476+
SecurityPermissionType = SecurityPermissionType.ALLOW,
477+
IsResourceSpecific = true,
478+
ResourceActions = new List<string> {
479+
StandardResourceActions.ManagementHubInstanceImport
480+
}
481+
},
482+
new() {
483+
Id = StandardPolicies.ManagedInstanceSystemExport,
484+
Title = "Instance Configuration Export",
485+
Description = "Export system configuration for a target instance",
486+
SecurityPermissionType = SecurityPermissionType.ALLOW,
487+
IsResourceSpecific = true,
488+
ResourceActions = new List<string> {
489+
StandardResourceActions.ManagementHubInstanceExport
490+
}
491+
},
492+
new() {
493+
Id = StandardPolicies.SystemUser,
494+
Title = "System User",
495+
Description = "Perform general system use actions",
496+
SecurityPermissionType = SecurityPermissionType.ALLOW,
497+
IsResourceSpecific = true,
498+
ResourceActions = new List<string> {
499+
StandardResourceActions.SecurityPrincipleCheckAccess,
500+
StandardResourceActions.SecurityPrinciplePasswordValidate,
501+
StandardResourceActions.RoleList,
502+
}
503+
}
408504
};
409505
}
410506
}

0 commit comments

Comments
 (0)