-
Notifications
You must be signed in to change notification settings - Fork 84
oidc pocket id
Pocket ID is a lightweight self-hosted OIDC provider that authenticates users with passkeys instead of passwords. It's a popular choice in homelab setups because the entire IdP is one small container.
This guide gets Muximux signing in against Pocket ID with group memberships flowing through to admin_groups.
- A running Pocket ID instance, accessible to whichever browser will use Muximux. The default port is
1411; you'll typically reverse-proxy it at something likehttps://id.example.com. - Admin access to Pocket ID.
- Muximux on a stable URL.
- In Pocket ID admin, open OIDC Clients and click Add OIDC Client.
- Fill in:
- Name:
Muximux - Callback URLs:
https://muximux.example.com/api/auth/oidc/callback - Logout Callback URLs: leave empty unless you've configured a Muximux logout redirect.
- Public Client: Off (we want a confidential client with a secret)
- PKCE: leave at the default.
- Name:
- Save. Pocket ID shows you a Client ID and Client Secret. Copy both.
Pocket ID emits the groups claim only when the client is allowed to read it.
- In the same OIDC client edit page, find the Allowed User Groups section.
- Add the groups you want Muximux to see. Anyone who belongs to one of these groups can sign in to Muximux; everyone else gets refused at the IdP. Add at least:
-
Muximux-Admins(or whatever you want admin status to map to) - any other group you'll later use for per-app filtering
-
- Save.
If you don't have those groups yet, create them under Groups first and assign members.
Edit config.yaml:
auth:
method: oidc
oidc:
enabled: true
issuer_url: https://id.example.com
client_id: <client id from Step 1>
client_secret: ${POCKETID_CLIENT_SECRET}
redirect_url: https://muximux.example.com/api/auth/oidc/callback
scopes:
- openid
- profile
- email
- groups
username_claim: preferred_username
email_claim: email
groups_claim: groups
display_name_claim: name
admin_groups:
- Muximux-Adminsissuer_url is the public URL of Pocket ID, with no trailing path. Pocket ID exposes the OIDC discovery document at https://id.example.com/.well-known/openid-configuration.
Set POCKETID_CLIENT_SECRET in the environment. Restart Muximux.
- Visit
https://muximux.example.com/loginand click Login with SSO. Pocket ID prompts you for a passkey. - After successful sign-in you should land back on the Muximux dashboard.
- Sign in as a member of
Muximux-Adminsand confirm the Settings gear is visible.
| Symptom | Cause | Fix |
|---|---|---|
unauthorized_client from Pocket ID |
The client is set to Public but Muximux is sending a client secret. | Switch the client to confidential (turn Public Client off). |
| Sign-in fails with "user is not allowed to use this client" | The user isn't in any group listed under Allowed User Groups. | Add the user (or one of their groups) to the client's allow list in Step 2. |
| Sign-in works but admin gear is missing | The user's groups don't include any value listed in admin_groups. |
Confirm the group exists in Pocket ID and the user is a member. Check the audit log entry on Muximux: OIDC user logged in lists the resolved role. |
Failed to fetch discovery document |
issuer_url doesn't match Pocket ID's public URL exactly. |
Use the URL shown in your browser when you visit Pocket ID's UI, no trailing path. |
-
Authentication overview for the full
auth.oidcreference. - Other identity providers: Microsoft Entra ID, Keycloak, Authentik, Zitadel, Google, Authelia, Cloudflare Access.
Getting Started
Features
- Apps
- HTTP Actions
- Reverse Proxy
- Docker Discovery
- Navigation
- Split View
- Themes
- Keyboard Shortcuts
- Health Monitoring
- Icons
- Translations
Security
Identity provider guides
Operations