Skip to content

Commit 0eca745

Browse files
authored
Merge pull request #85 from HydrelioxGitHub/oidc-voidauth
Add VoidAuth OIDC documentation
2 parents bc59b1b + 103a006 commit 0eca745

4 files changed

Lines changed: 61 additions & 3 deletions

File tree

docs/Navigation.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ search:
3434
- [Keycloak](administration/oidc/keycloak.md)
3535
- [PocketID](administration/oidc/pocketid.md)
3636
- [Zitadel](administration/oidc/zitadel.md)
37+
- [VoidAuth](administration/oidc/voidauth.md)
3738
- [Scanning & Watcher](administration/scanning-and-watcher.md)
3839
- [Scheduled Tasks](administration/scheduled-tasks.md)
3940
- [Server Stats](administration/server-stats.md)

docs/administration/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ The end-user equivalent (how to actually play the games, build collections, uplo
1616
- **[Users & Roles](users-and-roles.md)**: roles, the scope model, how permissions add up
1717
- **[Invitations & Registration](invitations-and-registration.md)**: invite links, public signup, first-user setup
1818
- **[Authentication](authentication.md)**: session config, password reset, Client API Tokens for devices
19-
- **[OIDC Setup](oidc/index.md)**: Authelia, Authentik, Keycloak, PocketID, Zitadel, SSO + role mapping
19+
- **[OIDC Setup](oidc/index.md)**: Authelia, Authentik, Keycloak, PocketID, Zitadel, VoidAuth, SSO + role mapping
2020

2121
### Content & library
2222

docs/administration/oidc/index.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ description: Wire up to an OpenID Connect provider for SSO and centralised user
55

66
# OIDC Setup
77

8-
OpenID Connect (OIDC) lets users sign in through an external identity provider: Authelia, Authentik, Keycloak, PocketID, Zitadel, Okta, Auth0, or anything standards-compliant. Single sign-on across your homelab, no app-specific password to manage, centralised MFA, and map OIDC groups/claims to roles.
8+
OpenID Connect (OIDC) lets users sign in through an external identity provider: Authelia, Authentik, Keycloak, PocketID, Zitadel, Okta, Auth0, VoidAuth, or anything standards-compliant. Single sign-on across your homelab, no app-specific password to manage, centralised MFA, and map OIDC groups/claims to roles.
99

1010
<!-- prettier-ignore -->
1111
!!! note "OIDC is optional"
@@ -28,6 +28,7 @@ Pick your provider and follow the step-by-step instructions. They all end with t
2828
- [Keycloak](keycloak.md)
2929
- [PocketID](pocketid.md)
3030
- [Zitadel](zitadel.md)
31+
- [VoidAuth](voidauth.md)
3132

3233
Not listed? Most standards-compliant OIDC providers work: Okta, Auth0, Google Workspace, Microsoft Entra, etc. Use one of the above as a template and consult your provider's docs for the registration side.
3334

@@ -38,7 +39,7 @@ Whichever provider you pick, set these in the `romm` service's environment:
3839
```yaml
3940
environment:
4041
- OIDC_ENABLED=true
41-
- OIDC_PROVIDER=<authelia|authentik|keycloak|pocketid|zitadel|generic>
42+
- OIDC_PROVIDER=<authelia|authentik|keycloak|pocket-id|zitadel|voidauth|generic>
4243
- OIDC_CLIENT_ID=<from your provider>
4344
- OIDC_CLIENT_SECRET=<from your provider>
4445
- OIDC_SERVER_APPLICATION_URL=https://auth.example.com
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
---
2+
title: OIDC with VoidAuth
3+
description: Wire up SSO to VoidAuth
4+
---
5+
6+
# OIDC with VoidAuth
7+
8+
[VoidAuth](https://voidauth.app/) is an open-source SSO authentication and user management provider that stands guard in front of your self-hosted application. Before starting, read the [OIDC Setup overview](index.md), as it covers the RomM-side settings common to every provider.
9+
10+
## 1. Prerequisites
11+
12+
VoidAuth installed and running via their [self-hosted deployment docs](https://voidauth.app/#/?id=quick-start). We'll use the `APP_URL` from the example `compose.yml` in those docs as `https://auth.example.com`.
13+
Your RomM instance will be referenced as `https://demo.romm.app`.
14+
15+
## 2. Create a new app
16+
17+
Log in as an admin in the VoidAuth web interface. Create a new OIDC app (e.g. `RomM`).
18+
19+
- **Name**: `RomM`
20+
- **Home Page URL**: `https://demo.romm.app`
21+
- **Logo URL**: `https://docs.romm.app/resources/romm/isotipo.png`
22+
- **Group**: You could add a group that the user must belong to get access to your RomM instance. If left empty, any user created in your VoidAuth instance will be allowed.
23+
- **Skip Consent** and **MFA Required**: These options can be enabled or left disabled as you prefer.
24+
- **Client ID**: Generate an ID using the button.
25+
- **Auth Method**: `Client Secret Basic`
26+
- **Client Secret**: Generate a secret using the button.
27+
- **Redirect URLs**: add `https://demo.romm.app/api/oauth/openid`
28+
- **Response Types**: check `code`
29+
- **Grant Types**: check `authorization_code` and `refresh_token`
30+
- **Post Logout URL**: `https://demo.romm.app/`
31+
32+
Don't forget to click the `Create` button to validate your app.
33+
34+
## 3. Configure
35+
36+
```yaml
37+
environment:
38+
- OIDC_ENABLED=true
39+
- OIDC_PROVIDER=voidauth
40+
- OIDC_CLIENT_ID=<from VoidAuth>
41+
- OIDC_CLIENT_SECRET=<from VoidAuth>
42+
- OIDC_REDIRECT_URI=https://demo.romm.app/api/oauth/openid
43+
- OIDC_SERVER_APPLICATION_URL=https://auth.example.com
44+
- OIDC_SERVER_METADATA_URL=https://auth.example.com/oidc/.well-known/openid-configuration
45+
- ROMM_BASE_URL=https://demo.romm.app
46+
```
47+
48+
VoidAuth's OIDC discovery URL can be found at the top of your OIDC App page, by clicking on OIDC Endpoints.
49+
50+
For role mapping from VoidAuth, see [OIDC Setup → Role mapping](index.md#role-mapping).
51+
52+
## 4. Test
53+
54+
Restart, navigate to `/login` and click the **Login with VoidAuth** button. You're redirected to VoidAuth → authenticate → bounced back and signed in!
55+
56+
If it doesn't work, head to [Authentication Troubleshooting](../../troubleshooting/authentication.md).

0 commit comments

Comments
 (0)