[{"data":1,"prerenderedAt":209},["ShallowReactive",2],{"seo-verification":3,"blog-pocket-id-oidc-self-hosted-vps-fr":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-pocket-id-oidc-self-hosted-vps-fr",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":30,"intro":33,"sections":34,"ctaTitle":153,"ctaBody":154,"ctaButton":155,"ctaUrl":156,"relatedPosts":157},443,"pocket-id-oidc-self-hosted-vps",{"fr":10,"en":12,"ar":13,"es":14},"pocket-id-lightweight-oidc-provider-in-one-container","pocket-id-على-vps-مزود-oidc-خفيف-بحاوية-واحدة","pocket-id-proveedor-oidc-ligero-en-un-solo-contenedor","Pocket ID : fournisseur OIDC léger en un conteneur","Pocket ID v2.18.0 : fournisseur OpenID Connect en un seul conteneur Docker, sans base externe, passkeys uniquement, moins de 50 Mo de RAM au repos.",9,0,false,"2026-10-15T00:00:00+00:00","2026-10-16T01:57:35+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},8,"Sécurité & Monitoring","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fpocket-id-oidc-self-hosted-vps-poster.svg","Maintenir un Keycloak ou un Authentik complet pour trois ou quatre services auto-hébergés, c'est déployer une JVM ou un orchestrateur de conteneurs pour résoudre un problème qui tient en un seul binaire Go. Pocket ID v2.18.0 (4 octobre 2026) est un fournisseur OpenID Connect certifié qui fonctionne en un seul conteneur, stocke ses données dans SQLite et consomme moins de 50 Mo de RAM au repos — là où Keycloak en réclame plusieurs centaines de mégaoctets. Il ne fait qu'OIDC, il n'accepte que les passkeys, et c'est précisément ce qui le rend déployable en cinq minutes sur n'importe quel VPS.",[35,39,51,54,82,85,89,92,100,150],{"type":36,"title":37,"body":38},"h2","Pourquoi auto-héberger son fournisseur OIDC","Chaque service auto-hébergé qui implémente sa propre base d'utilisateurs introduit une dépendance que vous devez gérer : mot de passe à réinitialiser, compte à révoquer, session à invalider. Multiplié par cinq ou dix services, cela devient un problème d'exploitation réel. Un fournisseur d'identité (IdP) centralise ce travail : une seule source d'identité, une révocation qui s'applique partout, un seul point de configuration MFA.\n\nLa question n'est pas de savoir s'il faut un IdP, mais lequel — et sur quelle base vous êtes prêt à l'opérer.",{"type":40,"title":41,"items":42},"ul","Ce que vous obtenez avec un IdP OIDC self-hosted",[43,44,45,46,47,48,49,50],"**Identité centralisée** — un seul compte pour Gitea, Nextcloud, Grafana et tous les services compatibles OIDC.","**Révocation globale** — désactiver un compte dans Pocket ID coupe l'accès à toutes les applications connectées au prochain renouvellement de token.","**Authentification par passkeys** — Touch ID, Face ID ou clé FIDO2 comme seul facteur, sans mot de passe à faire circuler.","**Aucune dépendance cloud** — vos identités restent sous votre juridiction, sans quota d'utilisateurs ni tarification à l'acte.","**Empreinte minimale** — Pocket ID consomme moins de 50 Mo de RAM au repos, contre 300 à 600 Mo pour Authentik et 1 à 2 Go pour Keycloak.","**SQLite embarqué** — aucun moteur de base de données externe à provisionner ou à sauvegarder séparément.","**Back-channel logout (v2.18.0)** — lorsqu'un utilisateur est désactivé ou révoque un client, Pocket ID notifie les applications enregistrées et invalide leurs sessions côté serveur.","**Un seul conteneur** — l'ensemble du service tient dans une image Docker de 30 Mo environ, sans dépendance Redis, sans worker séparé.",{"type":36,"title":52,"body":53},"Prérequis chiffrés","Pocket ID est pensé pour les petites stacks. Ses prérequis sont intentionnellement bas :\n\n- **Docker 24+** et Docker Compose v2 — versions requises par l'image officielle.\n- **512 Mo de RAM minimum** sur le VPS — Pocket ID tourne sous les 50 Mo au repos, le reste sert au système et au reverse proxy.\n- **Un domaine et un certificat TLS** — OIDC exige HTTPS sans exception ; sans domaine joignable publiquement (ou en réseau interne avec TLS), l'installation ne peut pas fonctionner.\n- **Aucune base de données externe** — SQLite est embarquée. Si vous préférez PostgreSQL pour une sauvegarde simplifiée, le passage se fait en changeant une variable d'environnement.\n\nPocket ID ne gère ni SAML, ni LDAP, ni fédération d'annuaires. Si votre stack inclut des applications qui n'acceptent que SAML ou que vous devez fédérer un Active Directory, orientez-vous vers Authentik ou Keycloak. Pour une stack de services web modernes compatibles OIDC, Pocket ID couvre le besoin sans surplus.",{"type":55,"title":56,"steps":57},"steps","Installation de Pocket ID",[58,61,64,67,70,73,76,79],{"title":59,"body":60},"Préparer le VPS et le domaine","Commandez un VPS avec Ubuntu 22.04 ou Debian 12 et au moins 512 Mo de RAM. Créez un enregistrement DNS de type A pointant `auth.votre-domaine.com` vers l'IP de votre VPS. Ce sous-domaine est l'URL publique de votre instance Pocket ID — elle doit être joignable avant la première configuration, car les redirections OIDC s'y appuient.\n\nInstallez Docker et le plugin Compose :\n```bash\ncurl -fsSL https:\u002F\u002Fget.docker.com | sh\n```",{"title":62,"body":63},"Créer le répertoire de travail","Sur le serveur, créez un répertoire dédié et placez-y le fichier Compose :\n```bash\nmkdir -p \u002Fopt\u002Fpocket-id && cd \u002Fopt\u002Fpocket-id\n```",{"title":65,"body":66},"Écrire le fichier docker-compose.yml","Créez `\u002Fopt\u002Fpocket-id\u002Fdocker-compose.yml` avec le contenu suivant :\n```yaml\nservices:\n  pocket-id:\n    image: ghcr.io\u002Fpocket-id\u002Fpocket-id:v2.18.0\n    container_name: pocket-id\n    restart: unless-stopped\n    ports:\n      - \"1411:1411\"\n    volumes:\n      - .\u002Fdata:\u002Fapp\u002Fdata\n    environment:\n      APP_URL: \"https:\u002F\u002Fauth.votre-domaine.com\"\n      TRUST_PROXY: \"true\"\n```\n\nLa variable `APP_URL` doit correspondre exactement à l'URL publique de votre instance, schéma HTTPS compris. `TRUST_PROXY: \"true\"` indique à Pocket ID de faire confiance aux en-têtes `X-Forwarded-*` transmis par le reverse proxy.",{"title":68,"body":69},"Configurer le reverse proxy nginx","Créez le vhost nginx pour `auth.votre-domaine.com`. Pocket ID écoute en HTTP sur le port 1411 ; le reverse proxy se charge de TLS.\n\n```nginx\nserver {\n    listen 443 ssl http2;\n    server_name auth.votre-domaine.com;\n\n    ssl_certificate     \u002Fetc\u002Fletsencrypt\u002Flive\u002Fauth.votre-domaine.com\u002Ffullchain.pem;\n    ssl_certificate_key \u002Fetc\u002Fletsencrypt\u002Flive\u002Fauth.votre-domaine.com\u002Fprivkey.pem;\n\n    # Augmenter les buffers pour les en-têtes OIDC\n    proxy_buffer_size   256k;\n    proxy_buffers       4 512k;\n    proxy_busy_buffers_size 512k;\n\n    location \u002F {\n        proxy_pass         http:\u002F\u002F127.0.0.1:1411;\n        proxy_set_header   Host              $host;\n        proxy_set_header   X-Real-IP         $remote_addr;\n        proxy_set_header   X-Forwarded-For   $proxy_add_x_forwarded_for;\n        proxy_set_header   X-Forwarded-Proto $scheme;\n    }\n}\n```\n\nProcurez le certificat avec Certbot avant de recharger nginx :\n```bash\ncertbot certonly --nginx -d auth.votre-domaine.com\nnginx -t && systemctl reload nginx\n```\n\n**Note sur les buffers** : Pocket ID produit des en-têtes de réponse plus grands que la valeur nginx par défaut. Sans les directives `proxy_buffer_size` et `proxy_buffers`, les pages peuvent répondre avec une erreur 502 silencieuse.",{"title":71,"body":72},"Démarrer le conteneur","Depuis `\u002Fopt\u002Fpocket-id` :\n```bash\ndocker compose up -d\ndocker compose logs -f pocket-id\n```\n\nLa ligne de log `Starting Pocket ID on :1411` confirme que le serveur est prêt. Accédez à `https:\u002F\u002Fauth.votre-domaine.com` pour terminer la configuration initiale.",{"title":74,"body":75},"Créer le compte administrateur et enregistrer un passkey","À la première visite, Pocket ID propose de créer le compte administrateur. Renseignez votre e-mail, puis enregistrez immédiatement un passkey : cliquez sur **Paramètres → Passkeys → Ajouter** et suivez l'invite de votre navigateur (Touch ID, Windows Hello ou clé FIDO2). Une fois le passkey enregistré, c'est le seul facteur requis pour les connexions suivantes.",{"title":77,"body":78},"Déclarer votre première application OIDC","Dans l'interface d'administration, ouvrez **OIDC Clients → Nouveau client**. Renseignez :\n- **Nom** : l'identifiant lisible de l'application (ex. `Gitea`)\n- **Callback URL** : l'URL de redirection déclarée dans l'application cliente (ex. `https:\u002F\u002Fgit.votre-domaine.com\u002Fuser\u002Foauth2\u002Fpocket-id\u002Fcallback`)\n\nPocket ID v2.18.0 crée automatiquement un `client_secret` à la création — récupérez-le immédiatement, il ne sera plus affiché en clair par la suite.\n\nNotez le `Client ID` et l'URL de découverte `https:\u002F\u002Fauth.votre-domaine.com\u002F.well-known\u002Fopenid-configuration` : ce sont les deux valeurs à saisir dans l'application cliente.",{"title":80,"body":81},"Tester le flux depuis l'application cliente","Dans Gitea, allez dans **Administration → Sources d'authentification → Ajouter → OAuth2**. Sélectionnez le fournisseur `OpenID Connect`, renseignez le `Client ID`, le `Client Secret` et l'URL de découverte. Déclenchez une connexion de test : le navigateur doit être redirigé vers `auth.votre-domaine.com`, vous proposer le passkey enregistré, puis vous renvoyer vers Gitea en étant connecté.",{"type":36,"title":83,"body":84},"Configuration post-installation","Après la mise en service initiale, quelques réglages améliorent la robustesse de l'instance.",{"type":86,"title":87,"body":88},"tip","Durcissement de l'instance","**Restreindre les inscriptions** : par défaut, Pocket ID autorise tout visiteur à créer un compte. En production, désactivez l'inscription publique dans **Paramètres → Général → Autoriser l'inscription** et invitez les utilisateurs individuellement.\n\n**Sauvegarder le volume de données** : toute la persistance (base SQLite, clés de signature OIDC) vit dans `.\u002Fdata`. Un `rsync` quotidien vers un stockage externe suffit pour une petite instance. Si vous migrez vers PostgreSQL, ajoutez `DB_PROVIDER=postgresql` et `DB_CONNECTION_STRING=...` à votre fichier Compose.\n\n**Épingler la version de l'image** : l'exemple ci-dessus utilise `v2.18.0` explicitement. Ne laissez pas `latest` en production — une mise à jour automatique peut introduire une migration de schéma que votre backup n'a pas encore couverte.\n\n**Limiter l'exposition réseau** : si Pocket ID ne doit être accessible que depuis le réseau interne du VPS (pour une stack Docker entièrement locale), remplacez `ports: \"1411:1411\"` par une liaison sur l'interface locale et faites communiquer nginx avec le conteneur via le réseau Docker interne.",{"type":36,"title":90,"body":91},"Dépannage","Les erreurs les plus fréquentes lors de la mise en service de Pocket ID suivent des patrons bien identifiés.",{"type":40,"title":93,"items":94},"Erreurs courantes et solutions",[95,96,97,98,99],"**502 Bad Gateway sur toutes les pages** — cause la plus fréquente : les buffers nginx sont trop petits pour les en-têtes de réponse OIDC de Pocket ID. Ajoutez `proxy_buffer_size 256k`, `proxy_buffers 4 512k` et `proxy_busy_buffers_size 512k` dans votre bloc `location \u002F` et rechargez nginx.","**`redirect_uri_mismatch` lors du login** — la `Callback URL` déclarée dans Pocket ID ne correspond pas exactement à celle envoyée par l'application cliente. Vérifiez la présence ou l'absence d'un slash final, le schéma `http` vs `https` et le port. La correspondance doit être exacte, caractère pour caractère.","**`invalid_client` au moment de l'échange du code** — le `client_secret` envoyé par l'application ne correspond pas. En v2.18.0, Pocket ID crée un secret automatiquement à la création du client ; si vous n'avez pas noté ce secret, régénérez-en un depuis la fiche client dans l'administration.","**Passkey refusé : `NotAllowedError`** — votre navigateur ne peut pas accéder aux API WebAuthn sans HTTPS. Vérifiez que `APP_URL` est bien en `https:\u002F\u002F...` et que le certificat TLS est valide (ni auto-signé, ni expiré) ; Certbot doit avoir émis un certificat pour le bon domaine.","**Les sessions ne sont pas invalidées après révocation** — le back-channel logout nécessite que l'application cliente déclare une `Backchannel Logout URL` dans sa fiche OIDC. Sans cette URL, Pocket ID ne peut pas notifier l'application ; les sessions existantes expireront à leur durée naturelle. Vérifiez que le champ est renseigné et joignable depuis le conteneur Pocket ID.",{"type":101,"title":102,"headers":103,"rows":109},"comparison","Pocket ID, Authentik, Keycloak, Authelia : que choisir",[104,105,106,107,108],"Critère","Pocket ID 2.18","Authelia 4.39","Authentik 2026.8","Keycloak 26",[110,116,121,127,133,138,144],[111,112,113,114,115],"Protocoles IdP","OIDC\u002FOAuth2","OIDC\u002FOAuth2 (beta)","OIDC, SAML 2.0, LDAP, SCIM","OIDC, SAML 2.0, LDAP, Kerberos",[117,118,119,119,120],"Authentification","Passkeys uniquement (FIDO2)","Mot de passe + MFA, passkeys","Mot de passe + MFA, OTP",[122,123,124,125,126],"RAM au repos","\u003C 50 Mo","~30 Mo","200–400 Mo","1–2 Go",[128,129,130,131,132],"Base de données","SQLite embarqué (ou PostgreSQL)","Fichier YAML (ou base externe)","PostgreSQL requis","PostgreSQL recommandé",[134,135,135,136,137],"Nombre de conteneurs","1","3 (server, worker, PostgreSQL)","2 (Keycloak + base)",[139,140,141,142,143],"Gestion des utilisateurs","Annuaire intégré, invitation par e-mail","Fichier ou provider externe","Annuaire intégré, LDAP, proxy social","Annuaire intégré, fédération LDAP\u002FAD",[145,146,147,148,149],"Cas d'usage cible","Stack légère, passkeys, IdP simple","Couche forward-auth devant un proxy","SSO complet, SAML, flows visuels","SSO d'entreprise, multi-tenant, conformité",{"type":36,"title":151,"body":152},"Conclusion","Pocket ID v2.18.0 répond à un besoin précis : centraliser l'authentification d'une stack de services auto-hébergés sans payer le coût d'exploitation d'un Keycloak ou d'un Authentik. Un conteneur, SQLite, des passkeys, et moins de 50 Mo de RAM au repos. La v2.18.0 ajoute le back-channel logout pour invalider les sessions côté application dès qu'un compte est révoqué, et restaure la création automatique du client secret pour simplifier l'enregistrement des applications.\n\nSi votre stack inclut des applications qui n'acceptent que SAML ou que vous avez besoin de fédérer un annuaire Active Directory, Authentik ou Keycloak sont plus adaptés. Pour tout le reste — des services web modernes compatibles OIDC sur un VPS de 1 ou 2 Go — Pocket ID est le choix qui vous laisse la RAM pour autre chose.\n\nConsultez également nos guides sur \u003Ca href=\"\u002Fblog\u002Fself-host-authentik-vps\">Authentik\u003C\u002Fa> et \u003Ca href=\"\u002Fblog\u002Fkeycloak-sso-vps\">Keycloak\u003C\u002Fa> pour choisir en connaissance de cause.","Déployez votre fournisseur OIDC sur VPS","Un VPS ServOrbit avec Docker 24+ suffit pour faire tourner Pocket ID en production. Un seul conteneur, une IPv4 dédiée, et vos applications sécurisées sans dépendance cloud.","Déployer sur VPS","\u002Fvps-cloud",[158,176,191],{"id":159,"slug":160,"slugs":161,"title":165,"excerpt":166,"readTime":167,"views":18,"isPinned":19,"publishedAt":168,"updatedAt":169,"category":170,"categories":171,"featuredImage":30,"bgImage":31,"posterImage":173,"relatedSolution":174},192,"self-host-authentik-vps",{"fr":160,"en":162,"ar":163,"es":164},"self-host-authentik-on-a-vps-open-source-auth0-alternative","استضافة-authentik-على-vps-بديل-auth0-مفتوح-المصدر","alojar-authentik-en-un-vps","Héberger Authentik sur un VPS : alternative Auth0 OIDC\u002FSAML","Déployez Authentik sur un VPS ServOrbit : un IdP complet (OIDC, SAML 2.0, passkeys, flux visuels) pour unifier l'authentification de votre stack self-hosted.",4,"2026-07-26T00:00:00+00:00","2026-09-11T11:34:11+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[172],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fself-host-authentik-vps-poster.svg",{"categorySlug":27,"appSlug":175},"authentik",{"id":177,"slug":178,"slugs":179,"title":183,"excerpt":184,"readTime":167,"views":18,"isPinned":19,"publishedAt":185,"updatedAt":186,"category":187,"categories":188,"featuredImage":30,"bgImage":31,"posterImage":190,"relatedSolution":30},112,"keycloak-sso-vps",{"fr":178,"en":180,"ar":181,"es":182},"deploy-keycloak-for-sso-on-your-vps","نشر-keycloak-لتسجيل-الدخول-الموحد-sso-على-خادمك-vps","desplegar-keycloak-sso-en-un-vps","Déployer Keycloak pour le SSO sur votre VPS","Déployez Keycloak sur votre VPS pour un SSO de niveau entreprise : OIDC, SAML, realms et fédération. Guide Docker complet et comparatif.","2026-02-28T00:00:00+00:00","2026-09-07T11:26:10+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[189],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fkeycloak-sso-vps-poster.svg",{"id":192,"slug":193,"slugs":194,"title":198,"excerpt":199,"readTime":200,"views":201,"isPinned":19,"publishedAt":202,"updatedAt":186,"category":203,"categories":204,"featuredImage":30,"bgImage":31,"posterImage":206,"relatedSolution":207},272,"authentik-vs-authelia-keycloak-sso-vps-2026",{"fr":193,"en":195,"ar":196,"es":197},"authentik-authelia-or-keycloak-choosing-your-sso-on-vps","authentik-أو-authelia-أو-keycloak-اختيار-sso-على-vps","authentik-authelia-o-keycloak-elegir-sso-en-vps","Authentik, Authelia ou Keycloak : choisir son SSO sur VPS","Authentik, Authelia ou Keycloak sur VPS : comparez l'empreinte mémoire réelle, les protocoles couverts et les CVE de Keycloak 26.7.1 pour choisir le bon SSO self-hosted.",6,1,"2026-08-16T00:00:00+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[205],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fauthentik-vs-authelia-keycloak-sso-vps-2026-poster.svg",{"categorySlug":208,"appSlug":175},"cybersecurity",1792123507838]