Access control: Steam authentication and CAMI-based permissions #38
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Implement access control for the web spectator client using Steam for authentication and CAMI for permission checks. This controls who can connect, what they can see, and what actions they can perform (once entity editing / RPC is implemented).
Authentication: Steam API
Web clients authenticate via Steam's OpenID or web API to prove their identity (SteamID). This ties each web session to a real Steam account.
Flow
Considerations
Authorization: CAMI
CAMI is the Common Admin Mod Interface — a standardized Lua API that admin mods (ULX, SAM, Serverguard, etc.) implement. Using CAMI means the permission system works with whatever admin mod the server runs, without hardcoding support for any specific one.
Permission levels (proposed)
webstream_view— Can connect and spectate (view the stream)webstream_edit— Can modify entity properties (once #32/#36 are implemented)webstream_admin— Can invoke destructive actions, change server settingsIntegration
webstream_viewdefaults to all authenticated users,webstream_editdefaults to admin)CAMI.PlayerHasAccessforwebstream_viewwebstream_editorwebstream_adminas appropriateEdge cases
superadmin/adminusergroups from the default GMod permission system, or allow all authenticated users forwebstream_view.Protocol changes
webstream_edit)Related
webstream_editpermission)Labels
feature,design