Cette composition lance :
proxy: reverse-proxy nginx expose surhttp://localhostmviewer: le code statique de../mviewerservi par nginx avec les apps dekeycloak/resources/mviewer/appsmviewerstudio: image construite depuis../mviewerstudioavec la configurationkeycloak/resources/mviewerstudio/config.jsonpostgres: base PostgreSQL de Keycloakkeycloak: Keycloak expose derriere/keycloakavec import du realmresources/keycloak/mviewer-realm.jsonoauth2-proxy: proxy OIDC qui protege l'acces a mviewerstudio avec Keycloak
cd docker
cp .env.example .env
docker compose up --buildSi la stack avait deja ete lancee avant l'ajout du client OIDC, recreer le volume Keycloak pour rejouer l'import du realm :
docker compose down -v
docker compose up --buildURLs par defaut :
- mviewerstudio :
http://localhost/mviewerstudio/ - mviewer :
http://localhost/mviewer/ - Keycloak :
http://localhost/keycloak/
Identifiants Keycloak par defaut : admin / admin.
Realm importe par defaut : mviewer.
Utilisateurs de test du realm :
admin/adminjohn.doe/john
L'acces a http://localhost/mviewerstudio/ redirige vers Keycloak. oauth2-proxy autorise uniquement les utilisateurs qui ont le role Keycloak configuré dans OAUTH2_PROXY_ALLOWED_ROLE. Par defaut, ce rôle est MVIEWER_ACCESS (disponible par défaut à l'installation).
Le role importe par defaut dans Keycloak est MVIEWER_ACCESS. Les utilisateurs de test admin et john.doe le possedent deja. mviewerstudio verifie uniquement qu'une identite authentifiee est transmise par oauth2-proxy; la regle d'autorisation par role reste geree dans Keycloak et oauth2-proxy.
Le client OIDC importé dans Keycloak est mviewerstudio. Ses valeurs locales par défaut sont definies dans docker/.env.example :
OAUTH2_PROXY_CLIENT_ID=mviewerstudioOAUTH2_PROXY_CLIENT_SECRET=mviewerstudio-local-secretOAUTH2_PROXY_COOKIE_SECRET=0123456789abcdef0123456789abcdefOAUTH2_PROXY_ALLOWED_ROLE=MVIEWER_ACCESS
Pour utiliser un autre role d'acces, creer ou attribuer ce role dans Keycloak, puis adapter :
OAUTH2_PROXY_ALLOWED_ROLE=<role_keycloak>
Pour utiliser un autre hote ou un autre port public, adapter aussi :
KEYCLOAK_HOSTNAMEOAUTH2_PROXY_OIDC_ISSUER_URLOAUTH2_PROXY_LOGIN_URLOAUTH2_PROXY_REDIRECT_URL
et ajouter l'URL de callback correspondante dans le client Keycloak mviewerstudio.
- Les mots de passe de
.env.examplesont uniquement prevus pour un environnement local. - Les secrets
OAUTH2_PROXY_CLIENT_SECRETetOAUTH2_PROXY_COOKIE_SECRETdoivent etre remplaces avant tout deploiement partage ou expose. - Le dossier local
resources/mviewer/appsest partage entre mviewer, mviewerstudio et le proxy pour les configurations generees. - Pour changer le port HTTP local, modifier
PROXY_HTTP_PORTdans.env.