Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Security Model

Overview

SlideRule Earth leverages GitHub authentication and account membership status within the GitHub SlideRuleEarth organization to authorize access to SlideRule services. Credentials are provided by users using a JSON Web Token (JWT) issued by the SlideRule Earth login service (login.slideruleearth.io). A user’s JWT contains claims used and verified by SlideRule services to allow access.

Model Components

Roles

Services

Requests

Permissions

Authorization Flows

FlowEndpointsHighest Allowed RoleNotes
Device/auth/github/device, /auth/github/device/pollOwnerpreferred method for python client
OAuth2.1 Web/auth/github/register, /auth/github/login, /auth/github/callback, /auth/github/tokenMemberpreferred method for web applications
PAT Key/auth/github/patMemberused for CI/CD pipelines
Basic Web/auth/github/basic/loginGuestreturns JWT via cookie

Security Rules

Expirations

At different stages of the authorization flows there are time limits imposed to reduce the risk of compromised credentials.

ElementTime LimitNotes
SlideRule JWT24 hours
OAuth2.1 Web Authorization Session12 hoursOnce a client is dynamically registered it must complete all authorization requests within this time
OAuth2.1 Web Authorization Code2 minutesOnce a client receives an authorization code it has this long to exchange it for a token; after its first use the code is no longer valid
GitHub HTTP Requests15 secondsAll requests to GitHub APIs must complete promptly
GitHub Authentication Session1 minuteOnce the SlideRule server initiates the authentication flow with GitHub it has this long to complete the authentication
Signed Request1 minuteAll signatures on signed requests must be timestamped within this amount of time (+/-) of the signature verification

Cluster Access

Members of the SlideRuleEarth organization have permission to deploy, access, and destroy private clusters namespaced to the organization teams they belong to. Owners within the organization can deploy, access, and destroy any cluster with a valid namespace (obeying url rules and AWS cloud formation stack name restrictions). Both members and owners are restricted to node capacity and time-to-live constraints imposed by the the provisioner.

RoleMax Node CapacityMax TTL
Owner1001 year
Member5012 hours

Web Client Restrictions

When logging into SlideRule using the SlideRule Web Client, the client restricts the user permission set to sliderule:access and provisioner:access. This prevents a leaked token from being used for administrator access or for access to any of the other services

Request Signing

The following services require request signing:

Flow Diagrams

Basic Web Flow (OAuth 2.0 Authorization Code)

basic flow