Skip to content

Adarnof/adarnauth

Repository files navigation

adarnauth

Live Demo

Started as a rewrite of the core of AllianceAuth but has ballooned to a standalone auth system.

Wow such rewrite!

A major shift in project direction is in progress for two reasons:

  1. CCP released their own version of an ACL system with CREST endpoints on the way.
  2. I want to release a multitude of apps, many of which share functional components.

One means a complete rewrite of the access management system with the goal of mirroring the in-game system for an easy crossover. Imagine a world where you can import and export your auth ACL with citadels...

Two means repackaging all the functions into little lego blocks I can play with to create a range of apps quickly and easily.

I've come up with a series of django apps I need to create:

SSO Token Management - Done!

This app is responsible for storing SSO tokens for use with CREST-capable apps. It handles redirects and callbacks, and is able to filter tokens by granted scopes.

adarnauth-eve-sso

EVE Model Management

This app will house all the EVE-related models: characters, corps, alliances, API keys. It needs to be able to update model information and understand when they're no longer needed.

API keys need to be sorted by granted masks. I'll probably do this in a manner similar to SSO scopes, with pre-defined Mask models.

ACL

This app will house Access Lists. It will depend on the EVE Model Management app.

It will have to provide a model mixin for determining if a character has access.

Standings

This app will populate ACLs from standings, either API keys or CREST. It will depend on the SSO Management and EVE Model Management apps.

Standings will have to update automatically and trigger ACL reassessment upon change.

Group Management

This app will house the ExtendedGroup models. Maybe with an ACL mixin.

Base Service Model

This app will be the abstract base from which every other service is constructed.

It will contain a generic base service with the required functions (Add, Remove users).

Further abstract base services will include dabatase support and API support.

Another mixin will provide group functionality.

No true models will be created here, but will serve as a template for every service to come.

This list will expand as I see fit.

As apps are written, they will be integrated into this repo to form Voltron Adarnauth.

Old Project Outline

EVE Models

  • Character
    • Fetch from public API
    • Async update task
    • Determine owning user
    • Handle character deletion
  • Corp
    • Fetch from public API
    • Async update task
    • Handle corp closure
  • Alliance
    • Fetch from public API
    • Async update task
    • Handle alliance closure
  • API Key
    • Update from authorized API
    • Populate characters
    • Populate corp
    • API verified permission
    • Verify via SSO
  • Standings
    • Pull from authorized API

Access Rules

  • Character
    • Auto-populate
  • Corp
    • Auto-populate
  • Alliance
    • Auto-populate
  • Standing
    • Auto-populate
  • Site access permission

Groups

  • Extend Group Model
    • Owner/Admin/Member tiers
    • Nesting (parent/child)
  • Auto Assignment

SSO

  • Process SSO callback
  • Generate missing user accounts
  • Owner hash matching
  • Internal redirect
    • Hash matching
    • Session identity verification
    • View redirect
    • Auto-cleanup

Explicit Service Support

  • Mumble
    • Base service functions
    • Group mapping
    • Front-end creation
    • Signals
  • Openfire
    • Base service functions
    • Broadcast
    • Group mapping
    • Front-end creation
    • Signals
  • Phpbb3
    • Base service functions
    • Group mapping
    • Front-end creation
    • Signals
  • Discord
    • Base service functions
    • Broadcast
    • Group mapping
    • Front-end creation
    • Signals

App Admin Hardening

Tolerate users pushing buttons on the admin site I might not like.

  • access
  • authentication
  • eveonline
  • groupmanagement
  • ldap_service
  • mumble
  • openfire
  • phpbb

Suggestions?

About

Djang-based auth system for EVE Online

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published