Buscar en xnoccio
Viafirma ya disponible en la Apple Store y Android Market
El componente de Viafirma para Android/iPhone/iPad ya está disponible tanto en la App Store como el Android Market de forma totalmente gratuíta, de esta forma Viafirma se convierte en la primera plataforma en soportar la autenticación y firma digital en estos dispositivos!.
![]()

Disponible en App Store y Android Market cualquier país en Ingles, Frances y Español.
Una vez más, la plataforma amplía su Matriz de Compatibilidad, garantizando el principio de Neutralidad Tecnológica citada en la Ley 11/2007 de Acceso Electrónico de los Ciudadanos a los Servicios Públicos.
Formatos de firma disponibles desde iPad/iPhone/Android:
- XMLSignature
- XAdES-BES
- XAdES-EPES
- XAdES-T
- XAdES-C
- XAdES-XL
- XAdES-A
- CMS (Cryptographic Message Syntax)
- Facturae
- PDF-Signature
APIs y módulos disponibles para la integración de terceros:
- Java
- .Net
- Php
- Pyton
- Drupal
- Joomla
- Django
Para ofrecer servicios a estos dispositivos puedes puedes instalar Viafirma en tus instalaciones sobre:
- Websphere
- Weblogic
- Tomcat 5, Tomcat 6
- GlassFish v3
O si lo prefieres puedes utilizar directamente nuestro servicio “on demand” y ofrecer a tus clientes autenticación y firma digital de una forma muy sencilla y económica.
Autoridades de certificación soportadas por la plataforma:
- Firma Profesional
- Camerfirma (Cámara de Comercio)
- Ancert (Agencia Notarial de Certificación)
- Izenpe (Gobierno Vasco)
- ACA (Autoridad de Certificación de la Abogacía)
- ANF AC (Asociación Nacional de Fabricantes)
- Avansi (primera CA autorizada en la República Dominicana)
- Cámara de Comercio y Producción de Santo Domingo (República Dominicana)
- Firma Digital (Sistema Nacional de Certificación Digital de Costa Rica)
- SINPE (Sistema Interbancario de Negociación y Pago Electrónico) – Costa Rica
- DNIe * no disponible para iPhone/iPad
- FNMT (Fábrica Nacional de Moneda y Timbre) * requiere convenio con la FNMT
Artículos relacionados:
http://www.xnoccio.com/1247-firma-digital-movil-en-ipad_iphone_firma_electronica/
http://www.xnoccio.com/1201-android-y-mi-certificado-digital/
Tips: Utilizando Glassfish v3 desde Eclipse Helios
El plugin de integración no viene en el empaquetado por defecto para Eclipse Helios, por lo que si queremos hacer uso de este excelente servidor de aplicaciones tendremos que instalar el plugin adecuado desde el Marketplace (Help/Eclipse Marcketplace…).
Una vez instalado, aparecerá en la lista de servidores listos para usar!
Hudson: Nuestro compañero
Os dejamos las estadísticas de uso de nuestra herramienta de integración continua preferida!
Hace más de 2 años que usamos Hudson como herramienta en todos nuestros proyectos de desarrollo, y en poco tiempo pasó a convertirse en un pilar central de nuestro entorno de desarrollo.
Tras estos dos años, estos son los datos:
| Proyectos gestionados (Jobs configurados) | 192 |
| Proyectos en Activo: | 52 *(usados en los últimos 20 días) |
| Numero total de compilaciones realizadas | 6442 |
| Despliegues automáticos al servidor de desarrollo | 4127 (sobre nuestros 5 entornos) |
| Media de operaciones diarias: | 12 |
La instalación es la por defecto sobre Linux, junto a un Slave que utilizamos puntualmente para las test sobre Windows.
Respecto a los plugins, aunque le hemos dado una oportunidad a practicamente todos, estos son los más utilizados:
- SVNCopyPlugin (Plugin desarrollado internamente por Viavansi para la sincronización con el SVN del cliente tras despliegues exitosos)
- Hudson SCP Publisher Plugin (desarrollado internamente para publicar en nuestro sistema de descargas )
- ChuckNorris Plugin
- SubversionTaggin Plugin
- Disk Usage Plugin
- Seleniumhq Plugin
- Sonar Plugin
- Dependency Analyzer
- Backup Plugin
- Deploy Plugin
- SCP Plugin
- Jabber Plugin
Algunos artículos relacionados:
Introducción a Hudson: http://www.xnoccio.com/362-hudson-parte-1-introduccion/
Introducción al desarrollo de Plugins: http://www.xnoccio.com/464-hudson-parte-2-crea-tus-propios-plugins/
Comparatíva: http://www.xnoccio.com/368-eligiendo-nuestro-entorno-de-integracion-continua-i/
y conclusiones http://www.xnoccio.com/372-conclusiones-finales-eligiendo-nuestro-entorno-de-integracion-continua-v/
Firma digital en iPad/iPhone
Primera plataforma de firma electrónica para dispositivos móviles iPhone y iPad.
Gracias al nuevo cliente de Viafirma para iPhone y iPad permitimos interactuar con sistemas que requieran de autenticación o firma con certificado digital desde nuestro dispositivo (iPad/iPhone/Android).
En el siguiente vídeo mostramos el acceso a una Oficina Virtual para la gestión de trámites y solicitudes de Ciudadanos. Nos autenticamos con un certificado reconocido instalado en nuestro dispositivo móvil, y tras cumplimentar el trámite seleccionado, procedemos a la presentación firmando la solicitud con nuestro certificado digital.
¿Qué implica esto?
Las entidades que opten por utilizar Viafirma podrán ofrecer de forma universal sus servicios y trámites que requieran del uso de un certificado digital. Permitiendo su uso desde cualquier dispositivo, sistema operativo o navegador. ¿Os imagináis poder presentar la declaración de la renta desde un iPad? o utilizar la firma digital de una forma tan sencilla como esta.
¿Cuándo estará disponible?
Estamos a la espera de que la aplicación sea publicada en la Apple Store, por lo que probablemente esté disponible la próxima semana (fecha estimada 22 de Julio 2010).
También disponible en Inglés y Francés
We will demonstrate now how to digitally sign using VIAFIRMA on mobile device (ipad/iphone)!
Tambien podéis ver un ejemplo sobre Android: http://www.xnoccio.com/1201-android-y-mi-certificado-digital/
O realizar la prueba accediendo a la demo de Viafirma desde cualquier sistema operativo o dispositivo!
Una vez más, nos esforzamos en ampliar nuestra Matriz de Compatibilidad, garantizando el principio de Neutralidad Tecnológica citada en la Ley 11/2007 de Acceso Electrónico de los Ciudadanos a los Servicios Públicos.
Diez
Prácticamente sin darnos cuenta hemos cumplido diez años. ¡Cuantas cosas han ocurrido desde que comenzamos esta aventura en un módulo de veinticinco metros cuadrados en el que cabíamos todos, y aún sobraba espacio!. Atrás quedaron amigos como Arturo cuya acusada personalidad impregna aún muchos aspectos de esta empresa.
A veces añoro esos tiempos, cuando todos íbamos a desayunar juntos y nos conocíamos mucho mejor de lo que las circunstancias actuales hacen posible.
Aunque es difícil, me gustaría que nunca perdiéramos algunos de los valores de esa época, como eran la sincera amistad que había entre los compañeros y la desbordante ilusión por el siguiente proyecto.
Y ahora que ya somos lo que llaman una mediana empresa, nos damos cuenta lo que todo ha cambiado desde entonces.
Muchas etapas hemos superado: el día que ganamos el primer concurso, las UTEs a medias con las grandes, el nacimiento de Viafirma, nuestro primer producto de verdad…
Quiero agradecer a todos los que están haciendo posible este sueño: los compañeros actuales y los que quedaron en el camino, los buenos clientes y también a los no tan buenos, a los partners y a los amigos en general que siempre estuvieron dispuestos a echar una mano.
Y ahora que nos vamos ganando el respeto de los grandes, me gustaría que nunca perdiéramos esa frescura de los primeros tiempos.
Por otros diez, o cincuenta años más…
Antonio Cabrera
Consejero Delegado del grupo Viavansi
Android y mi certificado digital
La nueva versión de Viafirma 3.0, proporciona como principal novedad el soporte para autenticación y firma digital desde dispositivos móviles como Android, iPhone o iPad.
De esta forma Viafirma se convierte en la primera plataforma de autenticación y firma digital con soporte completo para Android, iPhone o iPad.
A continuación vamos a mostraros un ejemplo de autenticación digital utilizando Viafirma desde Android.
En los próximos días iremos ofreciendo ejemplos de autenticación y firma desde los diferentes dispositivos móviles ya soportados.
¿Qué implica esto?
Pues que las entidades que opten por utilizar Viafirma podrán ofrecer servicios de autenticación y firma digital a sus usuarios móviles. Imagina por ejemplo acceder a tu banco mediante autenticación digital desde tu Android!
¿Cuándo estará disponible?
Ya está disponible para clientes corporativos y en unos días estará disponible en el Google Market de forma gratuita.
13-07-10
Disponibles ya los clientes para iPad y iPhone.
http://www.xnoccio.com/1247-firma-digital-movil-en-ipad_iphone_firma_electronica/
UsernameToken en Jax-ws (2/2) – Cliente
El objetivo de este artículo es mostrar como implementar crear un cliente Jax-ws que consuma servicios securizados con UsernameToken según la especificación Web Services Security UsernameToken Profile 1.0.
El artículo consiera que el lector ya tiene experiencia en Jax-ws y se centra sólo en la configuración del mecanismo de seguridad consumir servicios que requieran la identificación del solicitante con usuario y password haciendo uso de Jax-ws.
Dependencias requeridas
Aunque las dependencias necesarias están incluidas en algunos servidores de aplicaciones, si lo deseamos podemos o bien bajar la implementación de referencia directamente desde su web:
https://jax-ws-commons.dev.java.net y https://jax-ws.dev.java.net
O definir la dependencia en caso de que el proyecto sea Maven.
<dependency> <groupId>com.sun.xml.bind</groupId> <artifactId>jaxb-impl</artifactId> <version>2.1.12</version> </dependency> <dependency> <groupId>com.sun.xml.wss</groupId> <artifactId>xws-security</artifactId> <version>3.0</version> </dependency> <dependency> <groupId>com.sun.org.apache.xml.security</groupId> <artifactId>xmlsec</artifactId> <version>2.0</version> </dependency> <dependency> <groupId>javax.xml</groupId> <artifactId>jaxp-api</artifactId> <version>1.4.2</version> </dependency> <dependency> <groupId>activesoap</groupId> <artifactId>xercesImpl</artifactId> <version>1.5</version> </dependency> <dependency> <groupId>activesoap</groupId> <artifactId>jaxb-xalan</artifactId> <version>1.5</version> </dependency>
Configuaramos el acceso al Servicio
URL url = new URL("http://rutaAplicacionDeEjemplo/IE3SEnvironmentalMasterData");
QName qname = new QName("e3swsdl-master", "IE3SEnvironmentalMasterData");
IE3SEnvironmentalMasterDataService locator = new IE3SEnvironmentalMasterDataService(url, qname);
IE3SEnvironmentalMasterData clienteProxy = locator.getPort(IE3SEnvironmentalMasterData.class);
//Añadimos el manejador
final List<Handler> chain = new ArrayList<Handler>();
chain.add(new SecurityHandler());
((BindingProvider) clienteProxy).getBinding().setHandlerChain(chain);
//Accedemos al servicio
clienteProxy.addTemporaryProducerCenterData(null, null, null, null, holder);
Creamos el manejador (SecurityHandler.java)
import java.io.IOException;
import java.io.InputStream;
import java.util.HashSet;
import java.util.Set;
import javax.xml.namespace.QName;
import javax.xml.soap.SOAPMessage;
import javax.xml.ws.handler.MessageContext;
import javax.xml.ws.handler.soap.SOAPHandler;
import javax.xml.ws.handler.soap.SOAPMessageContext;
import com.sun.xml.wss.ProcessingContext;
import com.sun.xml.wss.XWSSProcessor;
import com.sun.xml.wss.XWSSProcessorFactory;
import com.sun.xml.wss.XWSSecurityException;
public class SecurityHandler implements SOAPHandler<SOAPMessageContext> {
XWSSProcessor cprocessor = null;
public SecurityHandler() {
//Leemos el archivo de configuración del servidor
final InputStream input = this.getClass().getResourceAsStream("/user-pass-authenticate-client.xml");
try {
// inicializamos el XWSSProcessor
final XWSSProcessorFactory factory = XWSSProcessorFactory.newInstance();
cprocessor = factory.createProcessorForSecurityConfiguration(input, new SecurityEnvironmentHandler());
input.close();
} catch (final XWSSecurityException e) {
//TODO tratar la excepción
throw new RuntimeException(e);
} catch (final IOException e) {
//TODO tratar la excepción
}
}
public Set<QName> getHeaders() {
final QName securityHeader = new QName("http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd", "Security", "wsse");
final HashSet<QName> headers = new HashSet<QName>();
headers.add(securityHeader);
return headers;
}
public boolean handleFault(final SOAPMessageContext messageContext) {
return true;
}
public boolean handleMessage(final SOAPMessageContext messageContext) {
return secureClient(messageContext);
}
public void close(final MessageContext messageContext) {
}
private boolean secureClient(final SOAPMessageContext messageContext) {
final Boolean outMessageIndicator = (Boolean) messageContext.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);
final SOAPMessage message = messageContext.getMessage();
boolean ok = false;
if (outMessageIndicator.booleanValue()) {
ProcessingContext context;
try {
context = cprocessor.createProcessingContext(message);
context.setSOAPMessage(message);
final SOAPMessage secureMsg = cprocessor.secureOutboundMessage(context);
secureMsg.writeTo(System.out);
messageContext.setMessage(secureMsg);
ok = true;
} catch (final Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
}
} else {
ok = false;
}
return ok;
}
}
Creamos la clase que maneja la seguridad (SecurityEnvironmentHandler.java)
import java.io.IOException;
import javax.security.auth.callback.Callback;
import javax.security.auth.callback.CallbackHandler;
import javax.security.auth.callback.UnsupportedCallbackException;
import com.sun.xml.wss.impl.callback.PasswordCallback;
import com.sun.xml.wss.impl.callback.UsernameCallback;
/**
* Handle the WSS user/pass security.
*/
public class SecurityEnvironmentHandler implements CallbackHandler {
public void handle(final Callback[] callbacks) throws IOException, UnsupportedCallbackException {
for (final Callback callback : callbacks) {
if (callback instanceof UsernameCallback) {
final UsernameCallback cb = (UsernameCallback) callback;
final String userName = "USUARIO";
if (userName == null) {
throw new IOException("La configuaricion del parametro '" + "USARIO" + "' es requerida");
}
cb.setUsername(userName);
} else if (callback instanceof PasswordCallback) {
final String pass = "CLAVE";
if (pass == null) {
throw new IOException("La configuaricion del parametro '" + "CLAVE" + "' es requerida");
}
final PasswordCallback cb = (PasswordCallback) callback;
cb.setPassword(pass);
}
}
}
}
Configuramos el manejador (user-pass-authenticate-client.xml)
<xwss:SecurityConfiguration xmlns:xwss="http://java.sun.com/xml/ns/xwss/config" dumpMessages="true" > <xwss:UsernameToken digestPassword="false"/> </xwss:SecurityConfiguration>
Nuestra petición de acceso debe contener el usuario y contraseña de acceso en la cabecera de la petición http siendo similar a la siguiente
<pre><code><?xml version="1.0" encoding="UTF-8"?> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> <S:Header> <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" S:mustUnderstand="1"> <wsse:UsernameToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="XWSSGID-1255949753848350309586"> <strong><wsse:Username>usuario</wsse:Username></strong> <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">****</wsse:Password> <wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">9w+YwOatF9l1/otioQ75d5Yr</wsse:Nonce> <wsu:Created>2009-10-19T10:55:54.418Z</wsu:Created> </wsse:UsernameToken> </wsse:Security> </S:Header> <S:Body> </S:Body> </S:Envelope> </code></pre>
Plataforma de autenticación y firma digital sobre WebLogic
La nueva versión de Viafirma, coincidiendo con su instalación en dos importantes entidades bancarias, ofrece soporte oficial para Oracle WebLogic 11. De esta forma, junto con las plataformas ya soportadas por Viafirma (Tomcat 5, Tomcat 6, Websphere, etc…), ahora se incluye:
- Oracle Fusion Middleware 11 / Weblogic 11g.
- Oracle Enterprise Pack for Eclipse
- Sun JVM 5, Sun JVM 6
- SO: Linux, Windows Server
El proceso de instalación es muy sencillo, por lo que siguiendo los pasos del manual de instalación de Viafirma para Weblogic podremos disponer de sus servicios de autenticación (DNIe o cualquier otro certificado digital) y firma digital (XAdES, PAdES, CMS, CAdES, facturae, firma en lotes,…) desplegados sobre Weblogic .
Viafirma en Twitter
Hace algunos días que Viafirma tiene su canal twitter. Invitamos a todos los interesados en la plataforma a seguirnos por esa vía, donde intentaremos dar primicias, anunciar liberaciones de versiones, etc.
Arranca el proyecto de desarrollo de la intranet de TP Ferro en Drupal
Recientemente en VIAVANSI hemos iniciado un proyecto para TP Ferro. Esta empresa es la concesionaria de la construcción, mantenimiento y gestión del tramo de tren de alta velocidad que une Figueres (Girona) y Perpignan (Francia).
El proyecto es realmente interesante, con características como las que siguen:
- TP Ferro dispone de sistemas de información especializados, para mantenimiento, explotación, etc.
- Se desea construir una intranet que se integre con estos sistemas especializados siguiendo un paradigma SOA: la información reside en un sistema especializado y es consumida (REST) por un nodo central (intranet), por lo que realmente la complejidad del proyecto está más dirigida a resolver la problemática de integración de sistemas.
- La intranet además debe resolver problemáticas típicas como la gestión de recursos humanos, gestión documental (para lo que se ha escogido Alfresco que se integrará vía CMIS), agendas, gastos, reporting…
- Se nos permite trabajar con metodologías ágiles (Scrum), algo novedoso al trabajar principalmente con Administraciones públicas que requieren metodologías tradicionales como Metrica v3.
- Estamos valorando utilizar un componente central que gestione la interoperabilidad entre los distintos sistemas, para lo que podría utilizarse iCms si la dirección del proyecto lo estima oportuno.
- Se utilizará VIAFIRMA para garantizar la integridad de los documentos críticos, realizando un proceso de firmado digital en servidor.
- La dirección técnica reside en TP Ferro en colaboración con consultores de Klicap.
- Hemos podido percibir un excelente nivel de preparación del proyecto por parte del cliente: ya se dispone de un pre-desarrollo basado en Drupal que resulta ciertamente útil, mind maps para la definición de entidades, etc. En definitiva, un cliente que apuesta por el proyecto lo cual obviamente favorece el éxito del proyecto.
Para construir ese nodo central hemos optado por Drupal, que es una excelente base sobre la que inyectar lógica en base a módulos y además es una herramienta ya perfectamente conocido por el cliente.





