Andreas Svanberg dce824b5dd
Switch from OIDC UserInfo to OAuth 2.0 Token Introspection
The UserInfo endpoint is for fetching the users profile (name, email, phone number, picture, and so on). Token introspection is for inspecting the access token and determining the authorities the user has (subject (principal), entitlements, and scopes granted).
2025-03-24 11:03:03 +01:00
2025-02-19 18:11:53 +01:00
2025-02-18 17:55:37 +01:00
2025-03-11 16:58:42 +01:00

wg-selfserve

Prerequisites

The tested setup is to host the service on apache, with uwsgi running the python application. Example configs for apache and uwsgi are provided in the examples/ subdirectory.

All python dependencies are listed in requirements.txt. It is recommended to run the application in a virtualenv.

Wireguard must be installed with the wg binary available in $PATH.

You will need to register the service with an oauth server, probably toker.dsv.su.se. Oauth settings are saved in config.ini along with all other settings.

Setup

  • Clone the repo
  • Create server keys:
    wg genkey | tee server-priv.key | wg pubkey > server-pub.key
  • Create a suitable directory for user client data:
    mkdir user-data
  • Set up config.ini:
    cp config.ini.example config.ini && editor config.ini
    The comments in the file should explain each option.
  • Ensure the web server user can write to the work/ subdirectory:
    chown www-data work/
  • Configure apache and uwsgi, see examples under examples/.
  • Start apache and uwsgi
  • Create a symbolic link to the wireguard server config:
    ln -s /path/to/repo/work/<tunnel-id>.conf /etc/wireguard/
  • Activate the wg-quick systemd unit:
    systemctl enable wg-quick@<tunnel-id>.service
  • Start the wg-quick systemd unit:
    systemctl start wg-quick@<tunnel-id>.service
Description
No description provided
Readme 360 KiB
Languages
Python 46%
JavaScript 22.8%
Shell 12.1%
CSS 11.3%
HTML 7.8%