Protéger la doc MkDocs avec Keycloak (même config que le frontend)
MkDocs génère un site statique : il ne gère pas OAuth2 lui-même. Pour protéger la documentation avec la même config Keycloak que le frontend Angular, on place un proxy d'authentification devant le site. On garde le même client (admin-angular), le même realm (minsante) : mêmes utilisateurs, mêmes identifiants, SSO possible.
Config Keycloak (identique au frontend)
| Paramètre | Valeur (prod) |
|---|---|
| URL Keycloak | https://authentification.minsante.bf |
| Realm | minsante |
| Client | admin-angular |
| Redirect URI app | https://garde.minsante.bf/dashboard |
| Post-logout | https://garde.minsante.bf |
Modification à faire dans Keycloak
- Ouvrir le client admin-angular du realm minsante.
- Ajouter une Valid Redirect URI pour la doc :
https://faq.garde.minsante.bf/*(et l’URL de callback du proxy, ex.https://faq.garde.minsante.bf/oauth2/callback). - Si le proxy utilise un client secret : s'assurer qu'un secret existe pour admin-angular (Credentials) et l'utiliser dans oauth2-proxy.
Aucune autre modification de config Keycloak : même realm, même client.
Configuration oauth2-proxy (Keycloak OIDC)
Variables d'environnement ou fichier de config pour oauth2-proxy :
# Même config que le frontend
OIDC_ISSUER_URL="https://authentification.minsante.bf/realms/minsante"
OIDC_JWKS_URL="https://authentification.minsante.bf/realms/minsante/protocol/openid-connect/certs"
OIDC_CLIENT_ID="admin-angular"
OIDC_CLIENT_SECRET="<secret du client admin-angular>"
OAUTH2_PROXY_REDIRECT_URL="https://faq.garde.minsante.bf/oauth2/callback"
OAUTH2_PROXY_COOKIE_DOMAIN=".garde.minsante.bf" # optionnel, pour partager le cookie avec l'app
Exemple de nginx devant MkDocs + oauth2-proxy :
location / {
auth_request /oauth2/auth;
error_page 401 = /oauth2/sign_in;
alias /var/www/docs/;
}
location /oauth2/ {
proxy_pass http://127.0.0.1:4180;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
}
Résumé
| Élément | Config |
|---|---|
| Realm | minsante (identique au frontend). |
| Client | admin-angular (identique au frontend). |
| Modification | Ajouter dans Keycloak la Valid Redirect URI du site docs (callback du proxy). |
| Où ça se passe | Dans l'infra (proxy / oauth2-proxy), pas dans MkDocs. |
On garde donc exactement la même config Keycloak que le frontend ; seule l'ajout d'une redirect URI pour la doc est nécessaire.