1
0
mirror of https://github.com/verdaccio/verdaccio.git synced 2024-11-17 07:45:52 +01:00
verdaccio/website/translated_docs/es-ES/packages.md
verdacciobot 272e9f614b docs: new Crowdin translations (#770)
* New translations windows.md (Spanish)
docs(website): new translations

* New translations windows.md (Spanish)
docs(website): new translations

* New translations uplinks.md (Spanish)
docs(website): new translations

* New translations uplinks.md (Spanish)
docs(website): new translations

* New translations windows.md (Spanish)
docs(website): new translations

* New translations docker.md (Spanish)
docs(website): new translations

* New translations reverse-proxy.md (Spanish)
docs(website): new translations

* New translations uplinks.md (Spanish)
docs(website): new translations

* New translations chef.md (Spanish)
docs(website): new translations

* New translations chef.md (Spanish)
docs(website): new translations

* New translations notifications.md (Spanish)
docs(website): new translations

* New translations notifications.md (Spanish)
docs(website): new translations

* New translations notifications.md (Spanish)
docs(website): new translations

* New translations notifications.md (Spanish)
docs(website): new translations

* New translations notifications.md (Spanish)
docs(website): new translations

* New translations plugins.md (Spanish)
docs(website): new translations

* New translations plugins.md (Spanish)
docs(website): new translations

* New translations plugins.md (Spanish)
docs(website): new translations

* New translations chef.md (Spanish)
docs(website): new translations

* New translations plugins.md (Spanish)
docs(website): new translations

* New translations ssl.md (Spanish)
docs(website): new translations

* New translations test.md (Spanish)
docs(website): new translations

* New translations test.md (Spanish)
docs(website): new translations

* New translations test.md (Spanish)
docs(website): new translations

* New translations test.md (Spanish)
docs(website): new translations

* New translations test.md (Spanish)
docs(website): new translations

* New translations test.md (Spanish)
docs(website): new translations

* New translations test.md (Spanish)
docs(website): new translations

* New translations test.md (Spanish)
docs(website): new translations

* New translations packages.md (Spanish)
docs(website): new translations

* New translations plugins.md (Spanish)
docs(website): new translations

* New translations packages.md (Spanish)
docs(website): new translations

* New translations plugins.md (Spanish)
docs(website): new translations

* New translations packages.md (Spanish)
docs(website): new translations

* New translations packages.md (Spanish)
docs(website): new translations

* New translations packages.md (Spanish)
docs(website): new translations

* New translations packages.md (Spanish)
docs(website): new translations

* New translations protect-your-dependencies.md (Spanish)
docs(website): new translations

* New translations uplinks.md (Spanish)
docs(website): new translations

* New translations docker.md (Spanish)
docs(website): new translations

* New translations node-api.md (Spanish)
docs(website): new translations

* New translations protect-your-dependencies.md (Spanish)
docs(website): new translations

* New translations docker.md (Spanish)
docs(website): new translations

* New translations install.md (Spanish)
docs(website): new translations

* New translations windows.md (Spanish)
docs(website): new translations

* New translations use-cases.md (Spanish)
docs(website): new translations

* New translations windows.md (Spanish)
docs(website): new translations

* New translations use-cases.md (Spanish)
docs(website): new translations

* New translations windows.md (Spanish)
docs(website): new translations

* New translations use-cases.md (Spanish)
docs(website): new translations

* New translations windows.md (Spanish)
docs(website): new translations

* New translations use-cases.md (Spanish)
docs(website): new translations

* New translations use-cases.md (Spanish)
docs(website): new translations

* New translations use-cases.md (Spanish)
docs(website): new translations

* New translations plugins.md (Spanish)
docs(website): new translations

* New translations plugins.md (Spanish)
docs(website): new translations

* New translations repositories.md (Spanish)
docs(website): new translations
2018-06-20 07:46:52 +02:00

150 lines
5.6 KiB
Markdown

---
id: packages
title: "Acceso a Paquetes"
---
Es una serie de restricciones que permiten o limitan el acceso al almacenamiento local basándose en criterios específicos.
Las restricciones de seguridad permanecen dependientes de la extensión en uso. Por defecto, `verdaccio` utiliza [htpasswd plugin](https://github.com/verdaccio/verdaccio-htpasswd). Si usas una extensión diferente ten en cuenta que el comportamiento podría ser diferente. La extensión por defecto no maneja `allow_access` y `allow_publish` por sí misma, esta usa un recurso de seguridad interno en caso de que la extensión no esté lista para esto.
Para mas información sobre permisos, visite [la sección de autenticación](auth.md).
### Uso
```yalm
packages:
# scoped packages
'@scope/*':
access: all
publish: all
proxy: server2
'private-*':
access: all
publish: all
proxy: uplink1
'**':
# allow all users (including non-authenticated users) to read and
# publish all packages
access: all
publish: all
proxy: uplink2
```
si ninguno esta especificado, por defecto uno se define
```yaml
packages:
'**':
access: all
publish: $authenticated
```
La lista de grupos validos de acuerdo a la extensión por defecto son
```js
'$all', '$anonymous', '@all', '@anonymous', 'all', 'undefined', 'anonymous'
```
Todos los usuarios reciben todos estos conjuntos de permisos, independientemente de si son anonymous o no, además de los grupos proporcionados por la extensión. En caso de `htpasswd` retorna el nombre de usuario como un grupo. Por ejemplo, si has iniciado sesión como ` npmUser` el listado de grupos será.
```js
// groups without '$' are going to be deprecated eventually
'$all', '$anonymous', '@all', '@anonymous', 'all', 'undefined', 'anonymous', 'npmUser'
```
Si deseas proteger paquetes establecidos específicos bajo tu grupo, debes realizar algo similara a esto. Vamos a usar un `Regex` que cubre los todos los páquetes prefijos con`npmuser-`. Recomendamos usar un prefijo para tus paquetes, de esta forma será más sencillo protegerlos.
```yaml
packages:
'npmuser-*':
access: npmuser
publish: npmuser
```
Reinicia `verdaccio` en tu terminal trata de instalar `npmuser-core`.
```bash
$ npm install npmuser-core
npm install npmuser-core
npm ERR! code E403
npm ERR! 403 Forbidden: npmuser-core@latest
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/user/.npm/_logs/2017-07-02T12_20_14_834Z-debug.log
```
Puedes cambiar el comportamiento por defecto usando una diferente extensión de autenticación. `verdaccio` simplemente comprueba si el usuario que intentó acceder o publicar un paquete específico pertenece al grupo correcto.
#### Definir múltiples grupos
Definir múltiples grupos de acceso es bastante sencillo, simplemente defínalos dejando un espacio en blanco entre ellos.
```yaml
'company-*':
access: admin internal
publish: admin
proxy: server1
'supersecret-*':
access: secret super-secret-area ultra-secret-area
publish: secret ultra-secret-area
proxy: server1
```
#### Bloqueando el acceso a paquetes
Si así lo deseas bloquea el acceso/la publicación a un grupo específico de paquetes. Simplemente no definas `access` y `publish`.
```yaml
packages:
'old-*':
'**':
access: all
publish: $authenticated
```
#### Bloqueando proxy a un grupo específico de paquetes
Puede que quieras bloquear para uno o varios paquetes la capacidad de hacer fetching de repositorios remotos., pero, a la misma vez, permitir a otros acceder a *uplinks* diferentes.
Veamos el siguiente ejemplo:
```yaml
packages:
'jquery':
access: $all
publish: $all
'my-company-*':
access: $all
publish: $authenticated
'@my-local-scope/*':
access: $all
publish: $authenticated
'**':
access: all
publish: $authenticated
proxy: npmjs
```
Vamos a describir lo que se desea con el ejemplo anterior:
* Quiero almacenar mi propia dependencia ` jquery` pero necesito evitar que se busque en el proxy.
* Quiero que todas mis dependencias que coincidan con `my-company-*` pero necesito evitar que dichos paquetes se actualicen vía proxy.
* Quiero que todas las dependencias que estén en `my-local-scope` hagan scope pero necesito evitar que estas se actualicen vía proxy.
* Quiero que el resto de las dependencias se actualicen vía proxy.
Se **consciente que el orden de la definición de los paquetes es importante y siempre usa doble wildcard**. Porque si no lo incluyes, `verdaccio` lo incluirá por ti y la forma en que tus dependencias son resueltas se verá afectada.
### Configuración
Puedes definir multiples `paquetes`y cada uno de ellos deben tener un único ` Regex`.
| Propiedad | Tipo | Requerido | Ejemplo | Soporte | Descripción |
| --------- | ------- | --------- | -------------- | ------- | ---------------------------------------------------------- |
| access | string | No | $all | all | define que grupos estan permitidos para acceder al paquete |
| publish | string | No | $authenticated | all | defini que grupos estan permitidos a publicar |
| proxy | string | No | npmjs | all | limita las busquedas a un uplink específico |
| storage | boolean | No | [true,false] | all | TODO |
> Resaltamos que ya no recomendamos usar **allow_access**/**allow_publish** y **proxy_access**, estos son obsoletos y pronto serán removidos, por favor usar las versiones reducidas de estos (**access**/**publish**/**proxy**).