Envíos etiquetados con ‘DNIe’

Configuración de Grails para usar el DNI electrónico como mecanismo de autentificación

Mayo 1st, 2010

Entorno -> Grails 1.2.2

Para esta aplicación es necesario tener un servidor configurado para que solicite certificados al acceder a un recurso seguro, en esta página se explican los detalles

grails create-app AutentificacionDNIe
cd AutentificacionDNIe
grails install-plugin spring-security-core
grails s2-quickstart org.gruposp2p.openid.provider UserDNI RoleDNI

Se crea el controlador cuyo acceso se quiera securizar con DNI electrónico:

grails create-controller secure

Para solicitar el acceso del DNIe se configura la aplicación para que el acceso al controlador se haga exclusivamente a través del protocolo HTTPS. Para ello se edita ‘Config.groovy’ y se añade:

grails.plugins.springsecurity.useX509=true
grails.plugins.springsecurity.x509.subjectDnRegex = 'SERIALNUMBER=(.*?),'
grails.plugins.springsecurity.portMapper.httpsPort=8443
grails.plugins.springsecurity.secureChannel.definition = ['/secure/**':'REQUIRES_SECURE_CHANNEL',
	                                                          '/**': 'ANY_CHANNEL']

Para comprobar que todo funciona se edita BootStrap.groovy y se añade un usuario de pruebas

	def init = { servletContext ->
	   def adminRole = new RoleDNI(authority: 'ROLE_ADMIN').save(flush: true)
	   String password = springSecurityService.encodePassword('password')
	   def testUser = new UserDNI(username: 'NumeroNIFDelDNIConQueSePrueba', enabled: true, password: password)
	   testUser.save(flush: true)
	   UserDNIRoleDNI.create testUser, adminRole, true
	}

Crear secure/index.gsp con

<sec:ifLoggedIn>
	Buenas <sec:loggedInUserInfo field="username"/>
</sec:ifLoggedIn>
<sec:ifNotLoggedIn>
	Acceso no autorizado
</sec:ifNotLoggedIn>

Para probar la aplicación ejecutar

grails run-app

… y acceder a la aplicación

Intercambio de atributos OpenID (AX)

Abril 22nd, 2010

El Intercambio de Atributos OpenID puede ser utilizado para intercambiar cualquier tipo de información entre la Parte Consultante y el Proveedor del Servicio, siempre y cuando ambas partes se hayan puesto de acuerdo en definirlo como atributo. Este es el motivo principal por el que he parado el desarrollo del sistema de micropagos con OAuth que llevaba en marcha y lo estoy adaptando a OpenID, mediante esta extensión del protocolo se puede intercambiar la información de la transacción entre las partes.

Como me encanta matar varios pájaros de un tiro estoy aprovechando el tiempo invertido para desarrollar un proveedor OpenID que utilice el DNI electrónico como mecanismo de autentificación, mecanismo que pienso utilizar en el sistema de recogida de firmas y votaciones no anónimas dniesign. Quise presentarlo al desafio abredatos, pero mi manejo de Grails todavía no es fluido … todavía =)

He aprovechado el cambio para adoptar como framework de desarrollo GrailsGrails es con diferencia el mejor framework para desarrollo web que he visto hasta la fecha. No se de ningún framework que maneje con más claridad la persistencia de objetos que GORM.

OAuth y Administraciones Públicas

Marzo 23rd, 2010
Oauth es un estándard abierto para el control de la privacidad de los datos. Si un usuario tiene información personal almacenada en un determinado sitio web , OAuth proporciona un mecanismo para que pueda  autorizar a ese sitio web a compartir datos con otro sitio web. También hace posible ese intercambio de información sin que sea necesario que el sitio que usa los datos sepa nada de la identidad del usuario. Resuelve el problema de la forma más elegante posible, compartiendo los datos sólo si el usuario da su permiso.
¿Cómo podrían aprovecharse los usuarios de las Administraciones Públicas de OAuth?
Por ejemplo, si la Agencia Tributaria necesitase para la tramitación de un determinado servicio online de información gestionada por la Seguridad Social el problema se podría solucionar recreando este escenario:
• Poniendo la seguridad social los servicios de información requeridos en red protegidos con OAuth (la identificación del usuario para su aprobación se podría hacer con el DNI electrónico)
• Creando la Agencia Tributaria el servicio online que al necesitar los datos de la seguridad Social redireccionase al usuario para que este diera su aprobación.
OAuth también podría usarse como pasarela de pagos para automatizar y estandarizar el pago de tasas.
Esto sería un paso más a la oficina sin papel y al ahorro en muchos conceptos.

Subiendo montañas

Febrero 18th, 2010

Si uno tiene que subir una montaña muy alta no se puede plantear hacerlo de una, debe hacer escalas.
Ahora mismo en Internet se dan 3 tipos problemas que cuanto más tiempo se tarden en resolver será peor:
– La privacidad de los usuarios.
– Los sistemas de micropagos (la única vía lógica que le queda a los de los contenidos).
– La segmentación de la red y los controles de acceso para que los menores de edad no tengan acceso a determinados contenidos.

Para resolver todos esos problemas son necesarios los dispositivos criptográficos como el DNI electrónico, se tiene que poder identificar a las partes e intercambiar información de forma segura.

Firma electrónica reconocida

Febrero 10th, 2010

Información extraida del portal oficial sobre el DNI electrónico:

” La Ley distingue entre firma electrónica avanzada y firma electrónica reconocida:
(Art. 3.2) La firma electrónica avanzada es la firma electrónica que permite identificar al firmante y detectar cualquier cambio ulterior de los datos firmados, que está vinculada al firmante de manera única y a los datos a que se refiere y que ha sido creada por medios que el firmante puede mantener bajo su exclusivo control.
(Art. 3.3) Se considera firma electrónica reconocida la firma electrónica avanzada basada en un certificado reconocido y generada mediante un dispositivo seguro de creación de firma.
(Art. 3.4) La firma electrónica reconocida tendrá respecto de los datos consignados en forma electrónica el mismo valor que la firma manuscrita en relación con los consignados en papel.

Firmas con el DNI electrónico

Diciembre 19th, 2009

He creado una applicación que utiliza el DNI electrónico para firmar documentos XML.
El objetivo del proyecto es crear un sistema de recogida de firmas y mostrar una manera de distribuir proyectos libres.

Por lo pronto sólo he subido la parte del cliente y todavía le falta, pero tiene cosas que pueden interesar a una persona que se dedique a esto.
Pasos a seguir para obtener un ejecutable de la aplicación a partir de los fuentes:

svn checkout http://dniesign.googlecode.com/svn/trunk/DNIeGP2P/DNIeGP2PClient
cd DNIeGP2PClient
mvn assembly:assembly

cd target
java -jar DNIeGP2PClient-1.0-SNAPSHOT-jar-with-dependencies.jar

En las sucesivas semanas iré explicando el sistema.