Autenticazione
L'autenticazione è legata al plugin di autenticazione che si sta utilizzando. Anche le restrizioni di pacchetto sono gestite dall'Accesso al Pacchetto.
L'autenticazione del client viene gestita dal npm
client stesso. Una volta che si effettua il login all'applicazione:
npm adduser --registry http://localhost:4873
Un token viene generato nel file di configurazione npm
ospitato nella cartella home dell'utente. Per ulteriori informazioni su .npmrc
leggere la documentazione ufficiale.
cat .npmrc
registry=http://localhost:5555/
//localhost:5555/:_authToken="secretVerdaccioToken"
//registry.npmjs.org/:_authToken=secretNpmjsToken
Pubblicazione anonima
verdaccio
ti consente di abilitare la pubblicazione anonima. verdaccio
permette di attivare la pubblicazione anonima, per riuscirci sarà necessario impostare correttamente l'accesso ai pacchetti.
Ad esempio:
'my-company-*':
access: $anonymous
publish: $anonymous
proxy: npmjs
Come è descritto nel caso #212 fino al npm@5.3.0
e in tutte le versioni minori **non vi sarà permesso pubblicare senza un token **.
Comprensione dei Gruppi
Il significato di $all
e $anonymous
Come è noto, Verdaccio utilizza di default htpasswd
. Quel plugin non implementa i metodi allow_access
, allow_publish
e allow_unpublish
. Dunque, Verdaccio lo gestirà nel seguente modo:
- Se non si è loggati (si è anonimi),
$all
e$anonymous
significano esattamente la stessa cosa. - Se si è loggati,
$anonymous
non sarà parte dei tuoi gruppi e$all
coinciderà con ogni utente loggato. Un nuovo gruppo$authenticated
verrà aggiunto all'elenco.
Il concetto chiave è che $all
** coinciderà con tutti gli utenti, indipendentemente dal fatto che siano loggati o meno**.
Il comportamento precedente si applica esclusivamente al plugin di autenticazione predefinito. Se si sta utilizzando un plugin personalizzato e tale plugin implementa allow_access
, allow_publish
o allow_unpublish
, la risoluzione dell'accesso dipende dal plugin stesso. Verdaccio imposterà esclusivamente i gruppi predefiniti.
Ricapitolando:
- acceduti:
$all
e$authenticated
, + gruppi aggiunti dal plugin. - disconnessi (anonimi):
$all
e$anonymous
.
Impostazione predefinita htpasswd
Per semplificare la configurazione, verdaccio
utilizza un plugin basato su htpasswd
. A partire dalla versione v3.0.x il plugin verdaccio-htpasswd
viene utilizzato di default.
auth:
htpasswd:
file: ./htpasswd
# Numero massimo di utenti autorizzati a registrarsi, da quelli predefiniti a "+inf".
# È possibile impostarlo su -1 per disabilitare la registrazione.
# max_users: 1000
# Algoritmo di hash, sono opzioni possibili: "bcrypt", "md5", "sha1", "crypt".
algorithm: bcrypt # di default è crypt, ma è consigliato usare bcrypt per le nuove installazioni
# Arrotonda il numero per "bcrypt", sarà ignorato per gli altri algoritmi.
rounds: 10
L'algoritmo predefinito è
crypt
, considerato non sicuro per gli ambienti di produzione, è invece consigliato usarebcrypt
per le nuove installazioni. Nota che dopo Verdaccio 6.x il valore predefinito saràbcrypt
.
Proprietà | Tipo | Richiesto | Esempio | Supporto | Descrizione |
---|---|---|---|---|---|
file | stringa | Sì | . / htpasswd | tutti | file che ospita le credenziali crittografate |
max_users | numero | No | 1000 | tutti | imposta limite di utenti |
algoritmo | stringa | No | bcrypt/md5/sha1/crypt | >=5.13.0 | imposta l'algoritmo di hashing della password |
arrotonda | numero | No | 10 | >=5.13.0 | Arrotonda il numero per "bcrypt", sarà ignorato per gli altri algoritmi |
Nel caso tu decida di impedire agli utenti di accedere, puoi impostare
max_users: -1
.