|
88 | 88 |
|
89 | 89 | //Authorization handlers
|
90 | 90 | builder.Services.AddScoped<IAuthorizationHandler, UserInfoOkHandler>();
|
91 |
| -builder.Services.AddScoped<IAuthorizationHandler, UserRolesAuthorizationOkHandler>(); |
92 |
| - |
93 |
| -//Available policies (can be written in an extension) |
94 |
| -builder.Services.AddAuthorizationBuilder() |
95 |
| - .AddPolicy("IsUser", policy => |
96 |
| - policy.Requirements.Add(new UserInfoOnlyRequirement(RoleRequirement.User))) |
97 |
| - .AddPolicy("IsMegaAdmin", policy => |
98 |
| - policy.Requirements.Add(new UserInfoOnlyRequirement(RoleRequirement.MegaAdmin))) |
99 |
| - .AddPolicy("IsSubOwner", policy => |
100 |
| - policy.Requirements.Add(new UserInfoOnlyRequirement(RoleRequirement.SubscriptionOwner))) |
101 |
| - .AddPolicy("CanReadTenant", policy => |
102 |
| - policy.Requirements.Add(new UserTenantRolesOrAuthorizationsRequirement(["tenant:read"], PermissionMode.Authorization, true))) |
103 |
| - .AddPolicy("CanReadTenantAndReadUser", policy => |
104 |
| - policy.Requirements.Add(new UserTenantRolesOrAuthorizationsRequirement(["tenant:read", "user:read"], PermissionMode.Authorization, true))) |
105 |
| - .AddPolicy("CanReadTenantAndWriteUserRole", policy => |
106 |
| - policy.Requirements.Add(new UserTenantRolesOrAuthorizationsRequirement(["tenant:read", "user:read", "tenant-user-role:write"], PermissionMode.Authorization, true))) |
107 |
| - .AddPolicy("CanReadTenantAndReadTenantRoles", policy => |
108 |
| - policy.Requirements.Add(new UserTenantRolesOrAuthorizationsRequirement(["tenant:read", "tenant-role:read"], PermissionMode.Authorization, true))); |
| 91 | +builder.Services.AddScoped<IAuthorizationHandler, UserRolesAuthorizationOkHandler>(); |
| 92 | + |
| 93 | +//Available policies (can be written in an extension) |
| 94 | +builder.Services.AddAuthorizationBuilder() |
| 95 | + .AddPolicy("IsUser", policy => |
| 96 | + { |
| 97 | + policy.Requirements.Add(new UserInfoOnlyRequirement(RoleRequirement.User)); |
| 98 | + policy.RequireAuthenticatedUser(); |
| 99 | + policy.AuthenticationSchemes.Add(JwtBearerDefaults.AuthenticationScheme); |
| 100 | + }) |
| 101 | + .AddPolicy("IsMegaAdmin", policy => |
| 102 | + { |
| 103 | + policy.Requirements.Add(new UserInfoOnlyRequirement(RoleRequirement.MegaAdmin)); |
| 104 | + policy.RequireAuthenticatedUser(); |
| 105 | + policy.AuthenticationSchemes.Add(JwtBearerDefaults.AuthenticationScheme); |
| 106 | + }) |
| 107 | + .AddPolicy("IsSubOwner", policy => |
| 108 | + { |
| 109 | + policy.Requirements.Add(new UserInfoOnlyRequirement(RoleRequirement.SubscriptionOwner)); |
| 110 | + policy.RequireAuthenticatedUser(); |
| 111 | + policy.AuthenticationSchemes.Add(JwtBearerDefaults.AuthenticationScheme); |
| 112 | + }) |
| 113 | + .AddPolicy("CanReadTenant", policy => |
| 114 | + { |
| 115 | + policy.Requirements.Add(new UserTenantRolesOrAuthorizationsRequirement(new[] { "tenant:read" }, PermissionMode.Authorization, true)); |
| 116 | + policy.RequireAuthenticatedUser(); |
| 117 | + policy.AuthenticationSchemes.Add(JwtBearerDefaults.AuthenticationScheme); |
| 118 | + }) |
| 119 | + .AddPolicy("CanReadTenantAndReadUser", policy => |
| 120 | + { |
| 121 | + policy.Requirements.Add(new UserTenantRolesOrAuthorizationsRequirement(new[] { "tenant:read", "user:read" }, PermissionMode.Authorization, true)); |
| 122 | + policy.RequireAuthenticatedUser(); |
| 123 | + policy.AuthenticationSchemes.Add(JwtBearerDefaults.AuthenticationScheme); |
| 124 | + }) |
| 125 | + .AddPolicy("CanReadTenantAndWriteUserRole", policy => |
| 126 | + { |
| 127 | + policy.Requirements.Add(new UserTenantRolesOrAuthorizationsRequirement(new[] { "tenant:read", "user:read", "tenant-user-role:write" }, PermissionMode.Authorization, true)); |
| 128 | + policy.RequireAuthenticatedUser(); |
| 129 | + policy.AuthenticationSchemes.Add(JwtBearerDefaults.AuthenticationScheme); |
| 130 | + }) |
| 131 | + .AddPolicy("CanReadTenantAndReadTenantRoles", policy => |
| 132 | + { |
| 133 | + policy.Requirements.Add(new UserTenantRolesOrAuthorizationsRequirement(new[] { "tenant:read", "tenant-role:read" }, PermissionMode.Authorization, true)); |
| 134 | + policy.RequireAuthenticatedUser(); |
| 135 | + policy.AuthenticationSchemes.Add(JwtBearerDefaults.AuthenticationScheme); |
| 136 | + }); |
109 | 137 |
|
110 | 138 |
|
111 | 139 | //Proxy
|
|
0 commit comments