tag:linuxfr.org,2005:/tags/firefox_sync/publicLinuxFr.org : les contenus étiquetés avec « firefox_sync »2020-12-04T18:27:28+01:00/favicon.pngtag:linuxfr.org,2005:Post/416432020-12-04T18:15:32+01:002020-12-04T18:15:32+01:00Perte des Mots de passe dans Firefox<p>Salut,</p>
<p>Aujourd'hui, il m'est arrivé quelque chose de très bizarre : j'ai perdu tous mes mots de passe stockées dans <em>Firefox</em>.<br>
Comme la plupart (tous ?) des browsers web modernes <em>Firefox</em> permet de stocker ces mots de passe en interne pour ne pas avoir à les retaper quand on revient sur un site où on a déjà enregistré le mot de passe.<br>
Avec le service <em>Firefox Sync</em>, on peut même synchroniser ses données y compris les mot de passe entre plusieurs machines (5) via le cloud (ce que j'ai fait).</p>
<p>Et aujourd'hui, je me retrouve sans plus aucun mot de passe !<br>
Sur toutes mes machines, la base de mot de passe est vide.</p>
<p>J'ai cherché un peu sur le net et j'ai trouvé <a href="https://support.mozilla.org/fr/kb/perte-informations-connexion-lockwise-mise-a-jour-firefox">cette page d'aide</a> mais ce qui est proposé c'est de re-générer le fichier <em>key4.db</em> … qui chez moi date du 5 février <strong>2018</strong>, donc je ne pense pas que cela soit le problème !</p>
<p>Du coup, je me demandais si quelqu'un avait déjà eu le même problème et s'il avait trouvé une solution !</p>
<p>Ce n'est pas un très grave problème en soi : tous les mots de passe importants sont stockées dans <em>UPM</em>, et pour les autres, je cliquerai sur le bouton "Mot de passe oublié" … si j'arrive à me rappeler quel e-mail j'ai utilisé.</p>
<p>Merci d'avance,<br>
L@u</p>
<div><a href="https://linuxfr.org/forums/general-general/posts/perte-des-mots-de-passe-dans-firefox.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/122445/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/forums/general-general/posts/perte-des-mots-de-passe-dans-firefox#comments">ouvrir dans le navigateur</a>
</p>
ComputingFroggyhttps://linuxfr.org/nodes/122445/comments.atomtag:linuxfr.org,2005:Diary/364082016-02-22T21:22:28+01:002016-02-22T21:22:28+01:00Installer un serveur Firefox Accounts et Firefox SyncLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<h2 class="sommaire">Sommaire</h2>
<ul class="toc">
<li><a href="#pr%C3%A9-requis-globaux">Pré-requis globaux</a></li>
<li><a href="#backend-mysql">Backend MySQL</a></li>
<li><a href="#fxa-auth-server">fxa-auth-server</a></li>
<li><a href="#fxa-content-server">fxa-content-server</a></li>
<li><a href="#serveur-de-synchronisation">Serveur de synchronisation</a></li>
<li><a href="#configuration-de-firefox">Configuration de firefox</a></li>
</ul><blockquote>
<p>Depuis longtemps Firefox, comme d'autres navigateurs, permet de stocker ses données dans le Cloud pour pouvoir les sauvegarder et facilement les partager entre plusieurs instances du navigateur. Et en plus, on peut l'auto-héberger ! Suivez le guide.</p>
</blockquote>
<h2 id="pré-requis-globaux">Pré-requis globaux</h2>
<p>On va partir du principe qu'on veut un backend sous MySQL.</p>
<ul>
<li>git</li>
<li><a href="https://nodejs.org/en/download/">node</a></li>
<li><a href="http://bower.io/">bower</a></li>
<li>mysql ou équivalent</li>
</ul><p>Je recommande de tout mettre dans <em>/opt</em>, mais vous êtes libres de faire comme bon vous semble.</p>
<p>L'ensemble préfère naturellement les connexions chiffrées. Équipez-vous donc de certificats (personnellement, j'opte pour un par serveur accessible de l'extérieur), faut de quoi votre serveur de synchronisation ne fonctionnera pas correctement.</p>
<h2 id="backend-mysql">Backend MySQL</h2>
<p>On récupère les sources:</p>
<pre><code>git clone https://github.com/mozilla/fxa-auth-db-mysql.git
cd fxa-auth-db-mysql
npm install
</code></pre>
<p>On créé le fichier de configuration:</p>
<pre><code>nano config/prod.json
</code></pre>
<pre><code>{
"master": {
"host": "127.0.0.1",
"user": "root",
"password": "",
"database": "fxaccounts"
},
"slave": {
"host": "127.0.0.1",
"user": "root",
"password": "",
"database": "fxaccounts"
}
}
</code></pre>
<p>Notez que comme <em>fxa-auth-server</em> et <em>fxa-content-server</em> que nous verrons plus loin, <em>fxa-auth-db-mysql</em> fait appel à <a href="https://github.com/mozilla/node-convict">convict</a> pour la gestion de la configuration. Si vous avez besoin d'autres paramètres de configuration que ceux que nous venons de créer, regardez le fichier <em>config/config.js</em>, et modifiez le fichier <em>config/prod.json</em> en conséquence.</p>
<p>Notez également que la base de données n'a pas besoin d'être créée à l'avance.</p>
<p>Vous pouvez ensuite démarrer le serveur et vous assurer que tout va bien:</p>
<pre><code>npm start
</code></pre>
<h2 id="fxa-auth-server">fxa-auth-server</h2>
<pre><code>cd /opt
git clone https://github.com/mozilla/fxa-auth-server.git
cd fxa-auth-server
npm install
</code></pre>
<p>Lancez une première fois le serveur pour générer les clés de chiffrement:</p>
<pre><code>npm start
</code></pre>
<p>Vous devriez voir la sortie suivante:</p>
<pre><code>> npm start
> fxa-auth-server@1.56.0 start /opt/fxa-auth-server
> NODE_ENV=dev scripts/start-local.sh 2>&1
Generating keypair
Secret Key saved: /opt/fxa-auth-server/config/secret-key.json
Public Key saved: /opt/fxa-auth-server/config/public-key.json
fxa-auth-server.INFO: [...]
</code></pre>
<p>Arrêtez ensuite le serveur en faisant Control + C</p>
<p>Modifiez le fichier de configuration:</p>
<pre><code>nano .env.dev
</code></pre>
<pre><code>PUBLIC_URL=https://ffaccounts.example.org
IP_ADDRESS=0.0.0.0
CONTENT_SERVER_URL=https://ffcontent.example.org
[...]
USE_TLS=true
TLS_KEY_PATH=/etc/ssl/private/ffaccounts.key
TLS_CERT_PATH=/etc/ssl/private/ffaccounts.crt
</code></pre>
<p>Dans le cas présent, remplacez les domaines par les vôtres. Notez que l'on va <a href="https://fr.wikipedia.org/wiki/Proxy_inverse">reverse-proxyfier</a> tout ça, donc dans votre serveur web préféré, il faudra configurer un reverse proxy pour <em>ffaccounts.example.org</em> pointant sur l'adresse de votre serveur (127.0.0.1 si le serveur web et le serveur de comptes firefox sont sur la même machine) et sur le port 9000.</p>
<p>De même, le reverse proxy de <em>ffcontent.example.org</em> pointera sur le serveur de contenu (voir plus bas) sur le port 3030.</p>
<p>Démarrez le serveur afin de vous assurer que tout va bien:</p>
<pre><code>npm start
</code></pre>
<p>Vous devriez voir un bloc JSON avec votre configuration.</p>
<h2 id="fxa-content-server">fxa-content-server</h2>
<pre><code>cd /opt
git clone https://github.com/mozilla/fxa-content-server.git
cd fxa-content-server
npm install
</code></pre>
<p>Si vous installez <em>fxa-content-server</em> en tant que root, entrez la commande suivante:</p>
<pre><code>bower --allow-root update --config.interactive=false -s
</code></pre>
<p>Si vous ne l'installez pas en tant que root:</p>
<pre><code>npm postinstall
</code></pre>
<p>Lancez le serveur:</p>
<pre><code>npm start
</code></pre>
<p>Ce qui aura pour effet de créer le fichier <em>server/config/local.json</em>.</p>
<p>Il se peut que cette commande s'arrête brusquement:</p>
<pre><code>fxa-content-server.CRITICAL: uncaughtException Error: ENOENT: no such file or directory, open '/opt/fxa-content-server/node_modules/express-able/node_modules/able/bundle.js'
</code></pre>
<p>Lancez la commande suivante pour corriger le problème:</p>
<pre><code>cd /opt/fxa-content-server/node_modules/express-able/node_modules/able/
npm run bundle
</code></pre>
<p>Puis, relancez le serveur:</p>
<pre><code>cd /opt/fxa-content-server
npm start
</code></pre>
<p>Cette fois, il ne devrait plus y avoir d'erreur. Arrêtez le serveur avec Control + C, il faut maintenant le configurer.</p>
<pre><code>nano server/config/local.json
</code></pre>
<pre><code>{
"public_url": "https://ffcontent.example.org",
"fxaccount_url": "https://ffaccounts.example.org",
"oauth_client_id": "98e6508e88680e1a",
"oauth_url": "http://127.0.0.1:9010",
"profile_url": "http://127.0.0.1:1111",
"profile_images_url": "http://127.0.0.1:1112",
"client_sessions": {
"cookie_name": "session",
"secret": "YOU MUST CHANGE ME",
"duration": 86400000
},
"env": "development",
"use_https": false,
"static_max_age" : 0,
"i18n": {
"supportedLanguages": ["af", "an", "ar", "as", "ast", "az", "be", "bg", "bn-BD", "bn-IN", "br", "bs", "ca", "cs", "cy", "da", "de", "dsb", "el", "en", "en-GB", "en-ZA", "eo", "es", "es-AR", "es-CL", "es-MX", "et", "eu", "fa", "ff", $
},
"route_log_format": "dev_fxa",
"logging": {
"fmt": "pretty",
"level": "debug"
},
"static_directory": "app",
"allowed_parent_origins": ["http://127.0.0.1:8080"],
"csp": {
"enabled": true,
"reportUri": "/_/csp-violation"
}
}
</code></pre>
<p>Le plus important est de changer l'URL public pour qu'il corresponde à la variable <em>CONTENT_SERVER_URL</em>, que l'on a spécifié dans la configuration de <em>fxa-auth-accounts</em>. Assurez-vous aussi de rajouter <em>fxaccount_url</em> puisque ce paramètre n'existe pas dans la configuration générée automatiquement.</p>
<p>Une fois la configuration faite, on relance le serveur:</p>
<pre><code>npm start
</code></pre>
<p>On devrait maintenant pouvoir se connecter, créer son compte et le valider par mail. Accédez à votre serveur avec l'adresse <em><a href="https://ffcontent.example.org">https://ffcontent.example.org</a></em> (en remplaçant bien sûr par votre propre domaine), et créez le compte.</p>
<p>Une fois la validation par mail effectuée, une "erreur inattendue" apparaitra. Je ne sais pas à quoi elle est dûe, mais ne semble pas affecter négativement la suite. On ne s'en soucie donc pas pour l'instant, mais si quelqu'un a une explication/solution, je suis preneur !</p>
<h2 id="serveur-de-synchronisation">Serveur de synchronisation</h2>
<p>Enfin, dernière pièce de notre puzzle, le serveur de synchronisation. La <a href="http://docs.services.mozilla.com/howtos/run-sync-1.5.html">page dédiée</a> de la documentation fournie par Mozilla est plus accessible et plus à jour que celles concernant le serveur Firefox Accounts. Voici tout de même mon guide, par soucis de centralisation et d'exhaustivité.</p>
<p>Les paquets suivants sont requis:</p>
<pre><code>python-dev git-core python-virtualenv g++
</code></pre>
<p>On récupère les sources et on compile:</p>
<pre><code>cd /opt
git clone https://github.com/mozilla-services/syncserver
cd syncserver
make build
</code></pre>
<p>On configure:</p>
<pre><code>nano syncserver.ini
</code></pre>
<pre><code>[syncserver]
public_url = https://ffsync.example.org/
sqluri = pymysql://root:motdepasse@127.0.0.1/fxsync
force_wsgi_environ = true
[browserid]
backend = tokenserver.verifiers.LocalVerifier
audiences = https://ffsync.example.org
</code></pre>
<p>Contrairement à <em>fxa-auth-db-mysql</em>, ici la base de données doit être créée avant de lancer le serveur. Dans mon cas, je l'ai nommée <em>fxsync</em>.</p>
<p>Là aussi, on va créer un reverse proxy dans son serveur web préféré, pour <em>ffsync.example.org</em> vers l'adresse du serveur de synchronisation, sur le port 5000.</p>
<p>On place la variable <em>force_wsgi_environ</em> à <em>true</em> pour éviter que le scheme ne pose problème avec le reverse proxy (qui est en HTTPs) et ce serveur (qui est en HTTP).</p>
<p>Mettez à jour la valeur de <em>secret</em>, comme indiqué en commentaire dans le fichier.</p>
<p>On peut lancer le serveur:</p>
<pre><code>make serve
</code></pre>
<h2 id="configuration-de-firefox">Configuration de firefox</h2>
<p>Maintenant que tout est installé, reste à configurer firefox pour prendre en compte notre propre serveur de synchronisation. Fiez-vous à la capture d'écran suivante pour ajuster vos paramètres (dans <em>about:config</em>):</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f7777772e617468616c6961736f66742e636f6d2f696d616765732f6f726967696e616c2f64613230313761336437613938383834653536393130343437396331326663302f66662e6a706567/ff.jpeg" alt="firefox" title="Source : https://www.athaliasoft.com/images/original/da2017a3d7a98884e569104479c12fc0/ff.jpeg"></p>
<p>Remplacez les domaines par les vôtres, bien entendu.</p>
<p>Remarquez qu'une option <em>identity.fxaccounts.allowHttp</em> a été créée. Si vous voulez vous aventurer à créer un serveur de synchronisation sans chiffrement, positionnez cette valeur à <em>true</em>.</p>
<p>Enfin, rendez-vous dans les options, onglet "Sync", et connectez-vous avec le compte précédemment créé. Firefox devrait pouvoir se synchroniser sans problème.</p>
<p>À noter que si vous cliquez sur le lien "Gérer le compte" une fois configuré, vous aurez la même erreur inattendue que précédemment, ce qui m'incite à croire qu'elle est liée à l'absence d'un serveur d'identité. Mais je laisse ça à un hypothétique futur article.</p><div><a href="https://linuxfr.org/users/richarddern/journaux/installer-un-serveur-firefox-accounts-et-firefox-sync.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/108278/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/richarddern/journaux/installer-un-serveur-firefox-accounts-et-firefox-sync#comments">ouvrir dans le navigateur</a>
</p>
Richard Dernhttps://linuxfr.org/nodes/108278/comments.atom