246 Commits
Author SHA1 Message Date
Jordan Dominion 64bbbbaff9 Remove the need to call .AsQueryable() on IDatabaseCollection. Remove IAsyncEnumerable support 2025-08-15 22:40:54 -04:00
Jordan Dominion 5987ba5869 Initial setup of instance-based authorities. Implement IChatBotAuthority.Create for REST 2025-08-09 17:12:52 -04:00
Jordan Dominion 8bda399adf Fix whitespace 2025-07-27 18:53:47 -04:00
Jordan Dominion 9709aa64c2 Minor syntax cleanup 2025-07-27 18:47:51 -04:00
Jordan Dominion fca363e430 Merge branch 'HttpClientSanity' into TheGreatAuthenticationRework 2025-07-27 17:57:53 -04:00
Jordan Dominion 9e8bdde30c Remove HttpClient abstractions
Now implement mocked `HttpMessageHandler`s as recommended: https://stackoverflow.com/a/36427274/3976486
2025-07-27 15:34:33 -04:00
Jordan Dominion f98813d859 WIP 2025-04-26 22:27:11 -04:00
Jordan Dominion 4955e678db WIP 2025-04-26 15:29:34 -04:00
Jordan Dominion cdb7bd9f15 WIP 2025-04-26 14:00:42 -04:00
Jordan Dominion 7363682b20 WIP 2025-04-25 21:40:18 -04:00
Jordan Dominion fb0323cc5a WIP 2025-04-20 14:09:29 -04:00
Jordan Dominion b4e7c6f915 Implement the RightsAuthorizationHandler
Note the workaround for https://github.com/dotnet/aspnetcore/issues/56272
2025-04-18 15:54:55 -04:00
Jordan Dominion 4d53be23c6 First implementation of rights conditionals 2025-04-18 14:21:09 -04:00
Jordan Dominion 30658a5173 Move TGS user ID parsing from ClaimsPrincipal into an extension 2025-04-18 14:10:06 -04:00
Jordan Dominion 877830036a Bro, I can NOT give a shit 2025-03-24 17:31:34 -04:00
Jordan Dominion 59cd745676 Allow group ID claim name to be configurable 2025-03-23 20:32:20 -04:00
Jordan Dominion 12e22939a9 Fix an IDE message 2025-03-23 20:14:44 -04:00
Jordan Dominion 7a0f893f22 Fix string.Contains call 2025-03-15 09:13:29 -04:00
Jordan Dominion abf12000cc Fixes for OIDC stuff 2025-03-10 18:09:28 -04:00
Jordan Dominion ffc5bccfd1 Add OIDC strict mode 2025-03-09 22:06:57 -04:00
Jordan Dominion 2e75125860 OIDC First Implementation 2025-03-09 17:53:43 -04:00
Jordan Dominion ff8473b73c Remove support for old /tg/ forums OAuthValidator 2025-03-02 11:24:33 -05:00
Jordan Dominion e7b1189620 Fix UserEnabled role being OR'd with action authorization roles FUUUUUCCCKK!!!!
Fixes #2064
2025-01-03 18:50:20 -05:00
Jordan Dominion be6960d942 Move long-running delay task fix to AsyncDelayer
Fixes #1985
2024-11-03 10:28:09 -05:00
Jordan Dominion d98bc2918e Fix an IDE0001 message VS was screaming about 2024-11-03 10:27:45 -05:00
Jordan Dominion d6a8e102e6 Use default 2024-11-02 13:10:38 -04:00
Jordan Dominion 362913db3c Fix null reference exceptions 2024-11-02 13:09:57 -04:00
Jordan Dominion 266e9867d8 Setup OAuth Gateways
Closes #1996
2024-11-02 12:06:43 -04:00
Jordan Dominion f38a21f42e Move to saner namespace 2024-09-23 21:26:51 -04:00
Jordan Dominion e14d99823c Correct GQL Authorize policies 2024-09-23 21:21:22 -04:00
Jordan Dominion 0b87147385 Fix issue with GQL auth and no roles 2024-09-23 20:46:31 -04:00
Jordan Dominion af60f4f778 Fix warnings, test build errors, and disable IDE0290 2024-09-23 20:11:26 -04:00
Jordan Dominion d0d2db5f04 Implement basic session invalidation subscriptions 2024-09-23 20:04:29 -04:00
Jordan Dominion d7c5374a9f Fold TokenValidator into AuthenticationContextFactory 2024-09-23 17:28:13 -04:00
Jordan Dominion 07a317ed81 Apply some code suggestions 2024-09-21 16:39:17 -04:00
Jordan Dominion 2223063b81 Apply code suggestion 2024-09-21 13:15:00 -04:00
Jordan Dominion f37883a438 Hopefully fix issues with auth pipeline for good 2024-09-21 10:58:17 -04:00
Jordan Dominion 5f0fa339d1 Fix invalid AuthenticationContexts being able to be dispatched to GQL resolvers 2024-09-18 22:50:01 -04:00
Jordan Dominion ff262b2584 Improve LoginPayload 2024-09-14 14:54:54 -04:00
Jordan Dominion 30f3bd58f2 API surface restructuring for GraphQL. Lockdown some API information that wasn't present previously. Validate nodes can be resolved 2024-09-13 23:57:36 -04:00
Jordan Dominion e2188539f8 Merge branch 'PrivateKeySharing' into MoreGraphQL 2024-09-13 00:02:44 -04:00
Jordan Dominion b52938545c Fix dynamic signing key switching 2024-09-12 23:38:41 -04:00
Jordan Dominion c400e7af8d Expose ITokenFactory's signing key 2024-09-12 17:07:27 -04:00
Jordan Dominion ed2de22f79 More GraphQL development
- Setup query structure for the potential for `RemoteGateway`s.
  - Add new `ErrorCode` indicating they are not implemented.
- Rename `ServerInformationBase` to `GatewayInformationBase`.
- Fix `TgsRestAuthorizeAttribute` lacking an `IAuthorizationFilter`.
2024-09-10 23:12:39 -04:00
Jordan Dominion 9ac92d1abc Further GraphQL API Implementation
- Introduce the concept of `IAuthority`s to handle business logic for both REST and GraphQL.
- Add new authorize attributes so roles can be defined on `IAuthority`s and inherited on REST/GraphQL API surface.
- Implement `ILoginAuthority`, converting REST methods to use it.
- Partially implement `IUserAuthority`, converting REST methods to use it.
- Setup `ErrorMessageResponse` filtering for GraphQL fields.
2024-09-10 21:52:18 -04:00
a15d5f27c8 Update src/Tgstation.Server.Host/Security/WindowsSystemIdentity.cs
Co-authored-by: Jordan Dominion <Cyberboss@users.noreply.github.com>
2024-08-18 23:50:05 -04:00
ZephyrTFA 3d231cfcef remove nullable 2024-08-18 13:48:25 -04:00
ZephyrTFA 259fd60ddf move to IsSuperUser 2024-08-18 13:41:06 -04:00
ZephyrTFA 8da2424909 move IsRoot to posix identity
move checking root to CheckSystemCompatibility
use Syscall internal getuid
2024-08-18 13:26:09 -04:00
Jordan Dominion a42dafb3ab Add support for GitHub App installation authentication to IGitHubClientFactory 2024-08-13 21:51:59 -04:00