Comment configurer l'utilisateur et le mot de passe pour Neo4j cluster sans L'API REST

La version que j'utilise est neo4j-entreprise-2.2.0-M02

ma question Est : Comment puis-je configurer un utilisateur (comme Ajouter un nouvel utilisateur, modifier le mot de passe ,etc.) dans le backend ou le navigateur, au lieu de L'API REST? Puis-je le faire via Neo4j-shell? imaginez que je suis un DBA, il n'est pas très commode de faire cela par API REST.

Toute aide sera grandement appréciée!

29
demandé sur zxz 2014-12-25 12:30:33

8 réponses

Vous pouvez utiliser le navigateur au lieu de l'API. Il suffit d'aller à http://localhost:7474 (ou N'importe quelle adresse IP à laquelle la console web est liée) et vous serez invité à changer le mot de passe. Une fois authentifié, utilisez la commande :server change-password modifier le mot de passe de nouveau.

Il n'est pas encore possible de créer plusieurs comptes utilisateur dans le système.

Vous pouvez utiliser la commande :help server pour voir les commandes d'authentification disponibles.

46
répondu subvertallchris 2014-12-26 19:20:36

bien que j'utilise toujours L'API REST, je vais jeter l'option cURL là-bas à quiconque n'a pas accès à un navigateur web (exemple AWS, par exemple):

$ curl -H "Content-Type: application/json" -X POST -d '{"password":"WHATEVER THE PASSWORD IS"}' -u neo4j:neo4j http://localhost:7474/user/neo4j/password
40
répondu Brent Barbata 2015-08-22 01:58:32

une autre option est de modifier le fichier auth directement et de redémarrer neo. En faisant cela, vous pouvez même changer le nom d'utilisateur!

Exécuter

find / -name sgbd

Pour moi, cela a donné un coup:

/var/lib/neo4j/données/sgbd/auth

Enregistrer le présent code comme build_auth_string.sh:

#!/bin/bash

DEFAULT_IFS="$IFS"
SALT_LEN=32

# either read from stdin or use the argument
if [ -z "" ]; then
  read INPUT
else
  INPUT=""
fi

if [ -z "$INPUT" ]; then
 echo "correct format <uname:pass>"
 exit
fi

IFS=':'
read -a UNAME_PASS <<< "$INPUT"

UNAME="${UNAME_PASS[0]}"
PASS="${UNAME_PASS[1]}"

# representing the password in hex format like \xAB\x0C etc
# HEX_PASS=$(echo -n $PASS | xxd -p | awk '{print toupper();}' | sed -r 's/(.{2})/\x/g')
HEX_PASS=$(echo -n $PASS | hexdump -v -e '"\\x" 1/1 "%02X"')
# echo $HEX_PASS


# create the salt and store it in hex format
SALT=$(cat /dev/urandom | tr -dc 'a-f0-9' | fold -w $SALT_LEN | head -n 1)
# SALT="28FD26AD92D6D2D8820E969F3F3732B4"
HEX_SALT=$(echo -n $SALT | sed -r 's/(.{2})/\x/g')


# calculate the sha256 sum of the salt and password value
# need to split the output because the output ends with a hyphen
IFS=' '
read -a PASSWORD_HASH_ARRAY <<< $(printf $HEX_SALT$HEX_PASS | sha256sum)
PASSWORD_HASH="${PASSWORD_HASH_ARRAY[0]}"

# echo "$UNAME;$PASS;$SALT"
# echo "$PASSWORD_HASH"

# and print out the auth string
COMBINED=$(echo -n "$PASSWORD_HASH,$SALT" | awk '{print toupper();}')
echo "$UNAME:SHA-256,$COMBINED:"

IFS="$DEFAULT_IFS"

le code de ce qui précède vient de https://github.com/artsince/docker-neo4j-auth/blob/master/build_auth_string.sh - Je l'affiche ici juste encas..

Et puis il suffit d'exécuter le script ci-dessus comme

build_auth_string.sh myUsername:myP@ssw0rd

copier/coller cela dans votre fichier auth en remplaçant ce qui était là avant, et redémarrez neo4j:)

7
répondu J.J 2015-07-13 22:50:28

Une nouvelle installation de Neo4j 2.2.x a un utilisateur 'neo4j', avec un mot de passe initial'neo4j'. Vous devez changer le mot de passe avant de pouvoir faire quoi que ce soit.

il est facile de faire cela depuis la ligne de commande, en appelant httpie pour interagir avec L'API REST. Par exemple, pour définir un nouveau mot de passe de "foobar", exécutez cette commande:

http -a neo4j:neo4j POST http://localhost:7474/user/neo4j/password password=foobar
4
répondu Jason McVetta 2015-08-18 08:19:15

pour les utilisateurs Mac, version 2.3.1 de Neo4J, la meilleure façon de réinitialiser les informations d'identification est de supprimer le fichier contenant les informations d'identification et de redémarrer le service.

étapes à suivre

  1. trouver où se trouve le fichier qui contient les justificatifs d'identité à partir de la console du navigateur (localhost:7474). Aller à Star (favoris) - > System - > Server configuration
  2. Recherche sgbd.sécurité.auth_store.emplacement propriété pour voir où il indique. Dans mon cas, c' / Users / felipe/Documents/Neo4j / default.graphdb/./sgbd/auth
  3. Supprimer ce fichier.
  4. redémarrez le service et retournez à la console (localhost: 7474).

Par défaut, il vous sera demandé de définir un mot de passe pour l'utilisateur neo4j.

j'espère que cela aide.

1
répondu felipe 2016-01-18 10:53:29

Actuellement, il n'est pas possible de configurer l'autorisation en utilisant neo4j-shell. Comme vous l'avez mentionné, L'API REST est la solution. Utiliser un client de repos pratique c'est très facile.

mes outils de choix sont soit facteur (un plugin pour navigateur chrome) ou httpie pour la ligne de commande. Par exemple: avec httpie changer le mot de passe pour un utilisateur est aussi simple que:

 http localhost:7474/user/neo4j/password password=neo4j new_password=mypass

soyez conscient que le mot de passe (et les autres paramètres d'autorisation) ne sont pas distribué automatiquement dans un cluster, voir le manuel Comment copier les paramètres entre les instances.

0
répondu Stefan Armbruster 2014-12-25 10:13:25

pour développer la réponse de felipe (puisque je n'ai pas assez de répliques pour commenter): J'ai arrêté le serveur, j'ai supprimé les fichiers auth dans les DEUX:

  • DBROOT\data\auth
  • DBROOT\dbms\auth

redémarré le serveur, et connecté à celui-ci via le localhost:7474, utilisé le nom d'utilisateur/mot de passe par défaut (neo4j/neo4j) et puis il m'a demandé un nouveau mot de passe.

0
répondu Bunni H 2016-11-21 00:07:05

Si vous souhaitez réinitialiser le mot de passe et vous ne connaissez pas l'ancien mot de passe : puis pour L'utilisateur Windows aller sur ce chemin:

C:\Users\xyz\Documents\Neo4j\default.graphdb\sgbd

et supprimer auth fichier. Redémarrez le neo4j ils vont de nouveau demander de définir le nom d'utilisateur et le mot de passe!! par défaut nom d'utilisateur:neo4j mot de passe:neo4j

0
répondu Urmay Shah 2018-05-29 10:36:10