Consulta sobre ingreso aplicación web restringida

29 views
Skip to first unread message

Leandro Spadaro

unread,
May 23, 2012, 10:38:19 AM5/23/12
to Grupo Java BS AS, (Grupo Java Google) Lista, Grupo Java Mexico Java
Buena gente,

Estamos desarrollando una aplicación con la cual se permitiera registrar el ingreso y egreso del personal de una empresa, esto se realizará mediante
el ingreso de usuario y clave desde las PC de cada empleado, es decir cada empleado al llegar a su puesto de trabajo deberá ingresar esos datos
y el sistema tomará la hora del servidor para dejar constancia de su ingreso, lo mismo pasa en la salida.

La aplicación es Web y se puede ingresar desde cualquier sitio, esto es por que los supervisores y jefes, del personal deben tener acceso desde sus casas
por si desean alguna información en horarios que no sean laborables.

El problema esta en que no queremos que los empleados se registren desde la casa, es decir que no marquen entrada y salida  desde la casa.
Se nos ocurrió dos forma de hacerlo:

a) Instalar unos archivos testigos en las maquinas de los empleados y de esta forma validar contra esos archivos que se supone los empleados
no van a tener en sus computadoras.

b) Tener creadas las máquinas creadas en el sistema comercial y asociales las IP de cada máquina. Si la IP no es de las máquinas que tenemos
en la aplicación no te dejaría realizar el registro de ingreso y salida. 

Conocen una forma mejor de hacerlo, y otra cosa como puedo obtener la IP en JSF de la máquina de la que están accediendo para poder realizar
el control que les comento en el punto b).

Saludos.
Leo.

Mariano Agustin Reyes

unread,
May 23, 2012, 10:45:51 AM5/23/12
to jav...@googlegroups.com
Yo creo que la opción es la B pero con MAC address y no con IP. Desde mi punto de vista esa es la forma más segura si es que el sistema tiene la puerta abierta a internet y los usuarios son restringidos dependiendo del lugar donde están.

Mirá esta página a ver si te sirve
http://developerarticles.com/how-to-get-mack-address-using-java/

Saludos
Notinyes

--
www.JavaSOS.com
Grupo de colaboración Java/J2ee para desarrolladores de habla hispana.

pablo.a....@gmail.com

unread,
May 23, 2012, 11:01:47 AM5/23/12
to jav...@googlegroups.com
Tambien podes usar autenticacion NTLM (supongo que los usuarios usan windows), de esa manera la autenticacion se hace a traves del login de la maquina. Si falla NTLM se puede pedir usuario y clave, y solo permitir esta opcion a los administradores.

La otra opcion es que la aplicacion solo se pueda acceder a traves de VPN, y darles usuario de VPN solo a los administradores.

Saludos.

2012/5/23 Mariano Agustin Reyes <noti...@gmail.com>

cot...@gmail.com

unread,
May 23, 2012, 11:30:31 AM5/23/12
to jav...@googlegroups.com
No son problemas diferentes? ... uno es marcar la entrada y la salida (que debería ser local o remoto dependiendo de lo que se quiera), y otro diferente autenticarte para acceder a la información.  Me parece que cualquier esquema que seleccione, debería hacer esta división funcional.

De otro modo está incurriendo en un riesgo innecesario.

Leandro Spadaro

unread,
May 23, 2012, 11:38:40 AM5/23/12
to (Grupo Java Google) Lista, Grupo Java Mexico Java, Grupo Java BS AS
La idea es que la aplicación permita realizar las dos cosas. Que solo determinadas personas puedan acceder a la información desde afuera de la empresa y que ademas
la misma aplicación en una pantalla determinada te permita realizar tu ingreso y egreso, esta última pantalla solo puede ser accedida desde máquinas que se encuentren
autorizadas, es decir, vos como empleado no podes acceder desde la máquina de tu casa, solo podes marcar tu ingreso desde una máquina que la empresa se asigna.

Saludos.
Leo.


From: cot...@gmail.com
Date: Wed, 23 May 2012 09:30:31 -0600
Subject: Re: [JavaSOS] Consulta sobre ingreso aplicación web restringida
To: jav...@googlegroups.com

Pablo Codeiro

unread,
May 23, 2012, 11:48:20 AM5/23/12
to jav...@googlegroups.com, Grupo Java Mexico Java, Grupo Java BS AS
No podrías hacer un getRemoteHost, y verificar si la IP es local, o no? (por norma son las 192.168.*, o 10.*, dependiendo de cuan grande sea la red).


Igual, apoyo más la idea de que sea por Active Directory, o una VPN.

zerobatu

unread,
May 23, 2012, 11:49:35 AM5/23/12
to jav...@googlegroups.com
si tienes una VPN implementada seria la opción mas sencilla, también tienes que tomar en cuenta que si es una aplicación en la que con user y pass puedes registrar tu ingreso, no van a faltar el o los descriteriados que le van a pedir al amigo que lo registre pasandole su user y pass cuando van llegando tarde.
yo optaría por un aplicativo que registre la entrada con un lector de huella creo que es lo mas optimo ya que los lectores de huella estan muy accesibles en precio

Atte.
Claudio Alvarado A..
Programador de Aplicaciones Computacionales
Accenture - Assistant (Analista Programador).
counter.li.org (usuario #535506)

Hernan Ovando

unread,
May 23, 2012, 11:58:18 AM5/23/12
to jav...@googlegroups.com

Creo que si , usuario y la ip  , si el usuario es administrador y la ip es del rango  publica, accede, si el usuario es empleado y la ip es publica no accede.  

--

Pablo Lillia

unread,
May 24, 2012, 12:30:36 AM5/24/12
to jav...@googlegroups.com
El 23/05/12 12:49, zerobatu escribi�:
> si tienes una VPN implementada seria la opci�n mas
> sencilla, tambi�n tienes que tomar en cuenta que si es
> una aplicaci�n en la que con user y pass puedes registrar tu ingreso,
> no van a faltar el o los descriteriados que le van a pedir al amigo
> que lo registre pasandole su user y pass cuando van llegando tarde.
> yo optar�a por un aplicativo que registre la entrada con un lector de
> huella creo que es lo mas optimo ya que los lectores de huella estan
> muy accesibles en precio
>
>
+1

Para controlar el acceso f�sico, lo mejor es el lector de huella
dactilar. Es raro que alguien preste un dedo, la gente suele llevarlos
consigo, y no es com�n olvidarlos.

Todo esto me hizo acordar la an�cdota de alguien que dejaba el mouse
colgando cerca de una ventana abierta, para que se moviera ligeramente,
as� no le aparec�a el supervisor en el chat preguntando qu� estaba
haciendo, porque hab�a descubierto que se disparaba una alarma cuando no
estaban moviendo el mouse (y les controlaban cu�ndo ingresaban y sal�an
del sistema). Parece incre�ble que alguien pueda medir la productividad
de una persona y/o realizar su control vigilando si se mueve un mouse,
pero les aseguro que es una historia 100% real, digna de thedailywtf.com.

Creo que verificando la IP (su rango, encabezados de proxies, etc) y
otros datos del usuario en una aplicaci�n (cosas que no tienen que ver
con JSF, que es simplemente la vista), se puede lograr algo aceptando
ciertas limitaciones. Algunos de estos datos se obtienen f�cilmente con
un filtro servlet o un inteceptor, y basta analizar las cabeceras del
request http. Combinando varias cosas, se puede hacer m�s "seguro".

Pero advierto que este tipo de soluciones puede disparar la imaginaci�n
de usuarios con inventiva... no es para subestimarlo.

Despu�s, la parte informativa de la aplicaci�n web, alimentada
rutinariamente por la informaci�n recolectada desde el lector, puede
hacerse tan bonita como se quiera, con muchos gr�ficos, alertas,
informes, etc.

Saludos,
Pablo

Leandro Spadaro

unread,
May 28, 2012, 7:50:59 AM5/28/12
to Grupo Java BS AS, (Grupo Java Google) Lista, Grupo Java Mexico Java
Como andan,

Les comento un poco más, para que tengan una idea, y me sugieran cosas, estoy analizando cada una de las soluciones
que me proponen y viendo cuales se pueden adaptar mejor a mi problema

Comentarios sobre soluciones que me nombran.

Sistema biométrico:
El tema con el biométrico es que la mayoría de las veces, existe una ó varias de la personas que no les toma la huella del dedo, por lo tanto te obliga a poner un teclado,
para colocar usuario y clave, y si otro sabe el usuario y clave registra el ingreso y salida de otra persona. Sino le pones el teclado obligas a que alguien tenga todo los 
días que cargar las registraciones de las personas que no le reconoce la huella digital, por ejemplo el supervisor del Call Center. Por lo tanto el problema no lo solucionas
ningún sistema biométrico te asegura 100% que va reconocer cualquier tipo de huella, y la cantidad de huellas de todas las personas que trabajan en el  Call Center.
En la actualidad tiene sistema biométrico en algunos Call Center, pero tiene problemas por eso analizamos otras soluciones.

VPN:
El tema con las VPN es que esta gente tiene Call Center en varios puntos del país y muchos tiene distintas infraestructuras y la verdad que cada uno lo maneja como quiere
por lo que necesito que sea una solución que sea general y que no tenga que imponer una política de acceso, por que la verdad que en algunos lugares no tiene ni idea
de nada.

Sistema Web:
Lo que se me ocurrió para que no registren la marcación desde otro lado que no sea las computadoras del Call Center, es que la primera vez que se instale el sistema
los supervisores identifiquen las computadoras y generen una clave para esa computadora, esta clave va ser una cooki de esta forma si acceden desde afuera y la computadora
no tiene esta cooki con la clave, no los va dejar registrar la entrada ó salida. Ademas cada persona en el sistema tiene una computadora que se le asigana y solo se puede registrar
en esa computadora, la clave estara formada por el identificador de la computadora. Cuando se registre la salida, la clave se cambiará esto es por si se dieron cuenta que
la clave esta en la máquina (Igualmente si toma la que está cuando marcan la salida es lo mismo pueden acceder desde afuera). Si se quedan sin conexión lo realidad es que
los supervisores pueden registrar las marcaciones desde su casa ó aluna màquina con red, se supone que esta situación duraría un tiempo hasta volver a la normalidad
Estaba investigando en dejar algunos archivos testigos en el cliente pero por lo que leí el único que lo puede leer archivos del cliente con JavaScript es Internet Explorer. 

Cliente Swing:
La otra alternativa es crear un cliente Swing y que este si se instale en las computadoras, con este cliente si puedo validar por Mac, generar archivos testigos, etc y luego
comunicarse con el servidor que tiene la base de datos. Lo malo que tiene es que se debe copiar en las máquinas que se va a utilizar. Tampoco es tan trágico.





To: Desarro...@gruposyahoo.com.ar
From: albertoco...@yahoo.com.ar
Date: Fri, 25 May 2012 22:02:18 -0700
Subject: Re: [Java] RE: [JavaSOS] Consulta sobre ingreso aplicación web restringida

 

la mayoria de esas ideas mueren con los acesos remotos, u otros trucos , 'terceros registrando por mi', etc,etc. Otro problema seria que en tu sistema se cayera la red, entonces todos llegarián 'tarde'.......para evitar todo esto,  hacer sincronizaciones y evitar el manejo de algun aplicativo del pc de la persona remotamente como lo hacen algunos antivirus, otra tambien puede ser biometria ....bueno es lo primero que se me viene a la mente..suerte con eso
 


De: Leandro Spadaro <leo_s...@hotmail.com>
Para: (Grupo Java Google) Lista <jav...@googlegroups.com>; Grupo Java Mexico Java <serverja...@yahoogrupos.com.mx>; Grupo Java BS AS <desarro...@gruposyahoo.com.ar>
Enviado: miércoles, 23 de mayo de 2012 10:38
Asunto: [Java] RE: [JavaSOS] Consulta sobre ingreso aplicación web restringida

__._,_.___
Actividad reciente:
==================================
El Blog de Pablo Fernando Sanchez:
http://pfsanchez.blogspot.com/
==================================
.

__,_._,___

Pablo Codeiro

unread,
May 28, 2012, 9:24:05 AM5/28/12
to jav...@googlegroups.com, Grupo Java BS AS, Grupo Java Mexico Java
"Lo malo que tiene es que se debe copiar en las máquinas que se va a utilizar. Tampoco es tan trágico "

podes usar algo onda jnlp, con lo cual se bajan el cliente cada vez que quieren usar el programa. A menos que tengas algo con imagenes y video, el programa se baja rapidisimo.



Y repito lo del tema web: ¿Hay algun problema con que valides desde el servidor la IP de la que está conectado el cliente?

Leandro Spadaro

unread,
May 28, 2012, 9:46:21 AM5/28/12
to (Grupo Java Google) Lista, Grupo Java BS AS, Grupo Java Mexico Java
Con respecto a Java Web Start es la opción que estamos viendo de utilizar si hacemos un cliente Swing. 

Con respecto a validar la IP que es una de las opciones que también estuvimos viendo es el hecho de saber de que manera están saliendo a
Internet cada uno de los Call Center, por ejemplo utilizando Proxy. Como te comente estamos analizando las distintas alternativas.

Como se te ocurre que lo podríamos hacer y con que problemas nos podríamos encontrar haciéndolo por IP, recordar lo que puse en correos
adjuntos cada Call Center tiene su política de seguridad, es decir algunos tiene algo, otros no tiene nada.

Saludos.
Leo.


From: cutr...@gmail.com
Date: Mon, 28 May 2012 10:24:05 -0300
Subject: Re: [JavaSOS] RE: Consulta sobre ingreso aplicación web restringida
To: jav...@googlegroups.com
CC: desarro...@gruposyahoo.com.ar; serverja...@yahoogrupos.com.mx

Pablo Codeiro

unread,
May 28, 2012, 10:09:13 AM5/28/12
to jav...@googlegroups.com, Grupo Java BS AS, Grupo Java Mexico Java
Claro, el tema es que todos, de alguna u otra forma, tienen una IP desde la cual se conectan a tu servidor. Mas allá de si hay o no hay un proxy... a vos lo que te importa es la ip que recibis, la cual (asumo) siempre vas a tener.


¿Se puede asumir que la IP publica de cada call center es estatica, no?

¿Cuanto de "burocracia" podes poner en el sistema? ¿Cuanto se bancarían tus clientes?


Utilizar algo como una cookie me parece que es demasiado inseguro.... otra opción, tomando SOLO WEB, y en el caso de que no se pueda saber si la ip es publica o no, sería dar una interfaz de admin en el servidor, y proveerle un ABM de ips "dentro de la red". Pero esto agrega mucha burocracia de por medio...


Otra solución podría ser crear una app en Swing, que llame al servidor y este te devuelva un codigo, el cual despues podes colocar en la app web para conectarte. 

(1) Se realizan las validaciones de mac address desde la app hecha en Swing.
(2) El usuario coloca el codigo en la web.
(3) El servidor valida que la IP recibida en (1) sea la misma que esta recibiendo ahora en (3), ademas que se fija que el codigo devuelto en (2) sea el mismo.




Otra opción completamente distinta, y que no apoyo (pero hay gente que la hace), es crear algun objetito con ActiveX, y darle permisos al Internet Explorer para que lo tome como "sitio de confianza"... desde ese objetito, podes ejecutar cualquier tipo de comando (y por ende, cualquier validación) pero te estarías atando a una mala practica, y para colmo, sería en IE....

Juan Carlos Martín

unread,
Jun 10, 2012, 10:45:56 AM6/10/12
to jav...@googlegroups.com
Yo, personalmente, me apunto a lo de la VPN, con las ventajas que, de cara al futuro, puede dar. El tema de la huella dactilar es relativamente peligroso. Infórmate bien de la legalidad de tu país, por que en muchos, los trabajadores tienen derecho a no proporciónale esa información a las compañías.

Saludos.

El 23/05/12 17:58, Hernan Ovando escribió:
Reply all
Reply to author
Forward
0 new messages