jesustorresdev / slack-badges-bot

2 stars 1 forks source link

Seguridad en la API de administración #22

Closed mbdaso closed 5 years ago

mbdaso commented 5 years ago

Fix #20

Ahora al ejecutar el servidor pregunta por una contraseña del administrador de la aplicación

Con la ayuda de https://github.com/bugov/aiohttp-basicauth-middleware todas las solicitudes que van por la url https://vituin-chat.iaas.ull.es/api les pide autenticación:


 $  curl -i https://vituin-chat.iaas.ull.es/api/persons/list    

HTTP/1.1 401 Unauthorized
Server: nginx/1.17.1
Date: Thu, 22 Aug 2019 19:03:07 GMT
Content-Type: text/plain; charset=utf-8
Content-Length: 17
Connection: keep-alive
WWW-Authenticate: Basic

401: Unauthorized%
$ curl -i --user admin:password https://vituin-chat.iaas.ull.es/api/persons/list

HTTP/1.1 200 OK
Server: nginx/1.17.1
Date: Thu, 22 Aug 2019 19:03:03 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 498
Connection: keep-alive

[{"id": "4df82eb378ea4e07af20de9096f754f0", "email": "jmtorres@ull.edu.es", "slack_id": "UJ7HEC01M", "slack_name": "jmtorres", "real_name": "Jes\u00fas Torres", "permissions": ["badges:list", "awards:list:self"]}, {"id": "a7bf98b8b4424d1d816a7c29cf9c627f", "email": "alu0100832211@ull.edu.es", "slack_id": "UHYNH5UL9", "slack_name": "alu0100832211", "real_name": "Mart\u00edn", "permissions": ["awards:create:self", "awards:create:others", "badges:list", "awards:list:self", "awards:list:others"]}]%      

Fix #19 Ahora hay un subcomando config que permite configurar tres parametros: usuario, contraseña y servidor

$ badgecli config --help
Usage: badgecli config [OPTIONS] [PARAMETER]

  Configurar parámetros de la línea de comandos

Options:
  -u, --user      Nombre de usuario
  -p, --password  Contraseña del administrador
  -s, --server    Ruta de administracion del servidor
  -l, --list      mostrar toda la config
  --help          Show this message and exit.
jesustorresdev commented 5 years ago

Ahora al ejecutar el servidor pregunta por una contraseña del administrador de la aplicación

Ok. Vale como solución temporal. Pero debes saber que esto no suele gustar a los administradores de sistemas. Cuando un ordenador arranca debería arrancar los servicios que presta, como este, de forma no atendida. Si pregunta la password ya no puede ser. El admin debe estar pendiente.

A apache le pasa en ciertos casos (certificado SSL) y todo dios acaba quitando lo de la password. Lo tipico es tener un archivo secret con la password. Así el administrador puede ponerle permisos en el sistema de archivos para que solo el servicio puede leer la password y no otras cuentas de usuario del sistema.