generated from bastian/boilerplate
groups
This commit is contained in:
@@ -14,12 +14,12 @@ DATABASE_SSL=false
|
|||||||
OIDC_ISSUER=https://idp.example.com/realms/internal
|
OIDC_ISSUER=https://idp.example.com/realms/internal
|
||||||
OIDC_CLIENT_ID=business-app
|
OIDC_CLIENT_ID=business-app
|
||||||
OIDC_CLIENT_SECRET=change-me
|
OIDC_CLIENT_SECRET=change-me
|
||||||
OIDC_SCOPES=openid profile email
|
OIDC_SCOPES=openid profile email groups
|
||||||
OIDC_LOGOUT_URL=
|
OIDC_LOGOUT_URL=
|
||||||
OIDC_ALLOWED_ALGORITHMS=RS256
|
OIDC_ALLOWED_ALGORITHMS=RS256
|
||||||
OIDC_HTTP_TIMEOUT_MS=5000
|
OIDC_HTTP_TIMEOUT_MS=5000
|
||||||
OIDC_ADMIN_ROLE=hauspilot-admin
|
OIDC_ADMIN_ROLE=hauspilot-admin
|
||||||
OIDC_ROLES_CLAIM=roles
|
OIDC_ROLES_CLAIM=groups
|
||||||
OIDC_ROLE_MATCH_CASE_SENSITIVE=true
|
OIDC_ROLE_MATCH_CASE_SENSITIVE=true
|
||||||
|
|
||||||
SESSION_COOKIE_NAME=app_session
|
SESSION_COOKIE_NAME=app_session
|
||||||
|
|||||||
@@ -42,6 +42,8 @@ separat ausgefuehrt.
|
|||||||
| `OIDC_LOGOUT_URL` | Optionale IdP-Logout-URL, falls Discovery keine liefert |
|
| `OIDC_LOGOUT_URL` | Optionale IdP-Logout-URL, falls Discovery keine liefert |
|
||||||
| `OIDC_ALLOWED_ALGORITHMS` | Erlaubte ID-Token-Signaturalgorithmen, z. B. `RS256` |
|
| `OIDC_ALLOWED_ALGORITHMS` | Erlaubte ID-Token-Signaturalgorithmen, z. B. `RS256` |
|
||||||
| `OIDC_HTTP_TIMEOUT_MS` | Timeout fuer IdP-HTTP-Requests |
|
| `OIDC_HTTP_TIMEOUT_MS` | Timeout fuer IdP-HTTP-Requests |
|
||||||
|
| `OIDC_ADMIN_ROLE` | Externer Rollen- oder Gruppenname fuer Administratoren |
|
||||||
|
| `OIDC_ROLES_CLAIM` | Claim-Pfad der externen Rollen, z. B. `groups` |
|
||||||
|
|
||||||
Der Callback ist immer:
|
Der Callback ist immer:
|
||||||
|
|
||||||
@@ -101,10 +103,13 @@ DATABASE_SSL=true
|
|||||||
OIDC_ISSUER=https://idp.example.com/realms/internal
|
OIDC_ISSUER=https://idp.example.com/realms/internal
|
||||||
OIDC_CLIENT_ID=business-app
|
OIDC_CLIENT_ID=business-app
|
||||||
OIDC_CLIENT_SECRET=<secret>
|
OIDC_CLIENT_SECRET=<secret>
|
||||||
OIDC_SCOPES=openid profile email
|
OIDC_SCOPES=openid profile email groups
|
||||||
OIDC_LOGOUT_URL=https://idp.example.com/realms/internal/protocol/openid-connect/logout
|
OIDC_LOGOUT_URL=https://idp.example.com/realms/internal/protocol/openid-connect/logout
|
||||||
OIDC_ALLOWED_ALGORITHMS=RS256
|
OIDC_ALLOWED_ALGORITHMS=RS256
|
||||||
OIDC_HTTP_TIMEOUT_MS=5000
|
OIDC_HTTP_TIMEOUT_MS=5000
|
||||||
|
OIDC_ADMIN_ROLE=hauspilot-admin
|
||||||
|
OIDC_ROLES_CLAIM=groups
|
||||||
|
OIDC_ROLE_MATCH_CASE_SENSITIVE=true
|
||||||
SESSION_COOKIE_NAME=app_session
|
SESSION_COOKIE_NAME=app_session
|
||||||
SESSION_IDLE_TIMEOUT_SECONDS=28800
|
SESSION_IDLE_TIMEOUT_SECONDS=28800
|
||||||
SESSION_ABSOLUTE_TIMEOUT_SECONDS=604800
|
SESSION_ABSOLUTE_TIMEOUT_SECONDS=604800
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ der frühere Mechanismus „erster Benutzer wird Administrator“ existiert nich
|
|||||||
|
|
||||||
```env
|
```env
|
||||||
OIDC_ADMIN_ROLE=hauspilot-admin
|
OIDC_ADMIN_ROLE=hauspilot-admin
|
||||||
OIDC_ROLES_CLAIM=roles
|
OIDC_ROLES_CLAIM=groups
|
||||||
OIDC_ROLE_MATCH_CASE_SENSITIVE=true
|
OIDC_ROLE_MATCH_CASE_SENSITIVE=true
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -17,6 +17,18 @@ OIDC_ROLE_MATCH_CASE_SENSITIVE=true
|
|||||||
`realm_access.roles` oder `resource_access.hauspilot.roles`. Der Claim darf ein String oder ein
|
`realm_access.roles` oder `resource_access.hauspilot.roles`. Der Claim darf ein String oder ein
|
||||||
Array aus Strings sein; Leerwerte und Duplikate werden entfernt.
|
Array aus Strings sein; Leerwerte und Duplikate werden entfernt.
|
||||||
|
|
||||||
|
Der konfigurierte Claim muss vom Provider fuer die angeforderten Scopes geliefert werden. Fuer
|
||||||
|
Provider, die Gruppen ueber den standardnahen `groups`-Scope in UserInfo bereitstellen, gilt:
|
||||||
|
|
||||||
|
```env
|
||||||
|
OIDC_SCOPES=openid profile email groups
|
||||||
|
OIDC_ROLES_CLAIM=groups
|
||||||
|
```
|
||||||
|
|
||||||
|
Das Backend liest den `userinfo_endpoint` aus der OIDC-Discovery und ruft ihn serverseitig mit dem
|
||||||
|
Access-Token auf. Der Access-Token und die vollstaendigen Claims werden nicht an den Browser gegeben
|
||||||
|
oder protokolliert.
|
||||||
|
|
||||||
Ist `OIDC_ADMIN_ROLE` leer oder nicht gesetzt, protokolliert der Start eine Warnung. HausPilot
|
Ist `OIDC_ADMIN_ROLE` leer oder nicht gesetzt, protokolliert der Start eine Warnung. HausPilot
|
||||||
fügt dann keine OIDC-Administratorzuweisung hinzu und entfernt auch keine bestehende. Ein gesetztes
|
fügt dann keine OIDC-Administratorzuweisung hinzu und entfernt auch keine bestehende. Ein gesetztes
|
||||||
`OIDC_ADMIN_ROLE` ohne gültiges `OIDC_ROLES_CLAIM` führt zu einem Startfehler.
|
`OIDC_ADMIN_ROLE` ohne gültiges `OIDC_ROLES_CLAIM` führt zu einem Startfehler.
|
||||||
|
|||||||
Reference in New Issue
Block a user