Skip to content

Authentication

GFN uses JWT-based authentication for both client-server communication and inter-service authentication on the rig.

Client Authentication

JWT Token

From vendor_beautified.js:

javascript
// JWT token injection into WebRTC/streaming requests
case 1: st("GFNJWT ", token)   // Prepends "GFNJWT " to token
authTokenCallback()             // Callback for token refresh

The GFNJWT prefix distinguishes GFN tokens from other auth schemes.

IPC Bridge Commands

SET_AUTH_INFO    ← Full authentication info object
SET_AUTH_TOKEN   ← JWT token string

LOFN Key

The LofnKeyInfoDef protobuf and lofnDataSendTimeoutMs suggest an encryption key exchange mechanism (LOFN = likely "Local On-Rig Negotiation"):

json
{
  "GcisConnector": {
    "lofnDataSendTimeoutMs": 3000
  }
}

Server-Side Authentication

Provision Manager (PM) Auth

PM communication uses mutual TLS:

json
{
  "PMConnector": {
    "authEnabled": true,
    "nonceLengthBytes": 16,
    "crlCacheTimeMin": 720,
    "cipherList": "ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:..."
  }
}

Server certificate requirements:

  • CN: pm.np-ams-06.svc.cluster.local
  • Issuer: GFN PM - API Server Zone NP-AMS-06 CA 02

GSG (Game Seat Gateway) Auth

API key-based authentication, refreshed every 5 minutes:

json
{
  "GSGConnector": {
    "apiKeyRefreshPeriodSec": 300
  }
}

Auth Info Protobuf

AuthInfoDef covers:

  • Authentication protocol types
  • Error codes for auth failures
  • Token validation states

AuthorizationInfoDef covers:

  • User authorization time limits
  • Storage authorization
  • User identity data

Entitlement Codes

From AuthInfoDef and EntitlementInfoDef:

CodeDescription
INVALID__AUTHENTICATION_MALFORMED_STATUSMalformed auth token
INVALID__AUTHENTICATION_NOT_FOUND_STATUSAuth not found
INVALID__AUTHENTICATION_EXPIRED_STATUSToken expired
INVALID__AUTHENTICATION_CREDENTIALS_STATUSBad credentials
INVALID__AUTHENTICATION_UNKNOWN_TOKEN_STATUSUnknown token type
INVALID__AUTHENTICATION_EMAIL_NOT_VERIFIED_STATUSEmail unverified
INVALID__AUTHENTICATION_UNSUPPORTED_PROTOCOL_STATUSUnsupported protocol
AUTH__FAILURE_STATUSGeneric auth failure
ENTITLEMENT__FAILURE_STATUSEntitlement check failed
EULA__UNACCEPTED_STATUSEULA not accepted

Steam Authentication

Steam sessions use dedicated protobuf types:

  • SteamSessionDef — Steam session with launch parameters
  • SteamTokenFilesSessionDef — Steam auth token files for login

Steam-specific error codes:

CodeDescription
STEAM__GUARD_REQUIRED_STATUSSteam Guard 2FA required
STEAM__GUARD_INVALID_STATUSInvalid Steam Guard code
STEAM__LOGIN_REQUIRED_STATUSSteam login required
STEAM__PROFILE_PRIVATE_STATUSSteam profile is private

UEK (User Encryption Key)

UEK__RETRIEVAL_FAILED

The User Encryption Key is used for encrypting user save data in cloud storage. If retrieval fails, cloud saves may be unavailable.

admindesk.top — Reversed & documented from Asgard rig backups and GCIS plugin binaries.