jueves, marzo 30, 2006

ASP.NET PreCompilation

Prometo que este post será breve.
Abran VS 2005 Command Prompt y escriban lo siguiente:
aspnet_compiler -?

Voila ahí tienen todo lo que necesitan para poder pre-compilar todo su sitio web y te empaqueta todo: assemblies, archivos estátios y archivos de configuración.

Muy útil si quieres hacer el deployment en algún servidor donde quieras proteger tu código.

miércoles, marzo 29, 2006

Made in Express


Microsoft lanza un concurso para programadores, especialmente enfocado a estudiantes. Hay buenos premios y todo lo que se necesita para arrancar el concurso es tener una buena idea y comprometerse a hacerla en express (son versiones light de Vistual Studio y SQL). MS seleccionara las 12 mejores ideas y estos 12 programadores se pondrán a desarrollarla y que gane el mejor.

Al que le interese participar y tener la oportunidad de ganar $10,000 dlls le sugiero y visite la página www.madeinexpress.com suban su idea y suerte!

jueves, marzo 23, 2006

Web Services Enhancements 3.0 (Wizzy)

WSE 3.0

WSE 3.0 es un tema interesante y muy importante que he tenido que estar investigando más a fondo en los últimos meses. Si se están desarrollando Servicios Web que no necesitan seguridad en absoluto y no importa estar expuestos a riesgos como comprometer la información transmitida, DoS (Denial of Service), entonces crear un proyecto de ASP.NET Web Services en Visual Studio es todo lo que necesitará. La verdad es que no se me ocurre un escenario así, pero, mmmm, bueno ok es sarcasmo, nunca deberán exponer sus Web Services de está forma.

No todo es malo cuando se refiere a ASP.NET Web Services sin utilizar WSE (cualquier versión). Hay dos tipos de seguridad:
Transport Level Security: esto se puede resumir en SSL, si todo lo que se necesita es proteger el canal de comunicación SSL puede ser suficiente, inclusive sitios grandes como Amazon es todo lo que usan, pero pudiera no cumplir con ciertos requerimientos como Addressing and Routing que mencionaremos más adelante.
Message Level Security: esto es lo que veremos más a fondo con WSE y es lo que Windows Communication Foundation o Indigo pretenden mejorar.

WSE o Web Services Enhancements es un mini framework desarrollado por Microsoft para complementar el .NET Framework y pretende ayudar a ser compatible con el WS-I Basic Profile.

¿Qué es WS-I Basic Profile?

Oasis entre todos los estándares que ha definido, creo unos para WS conocidos tambien como Web Services Specifications, estos pretenden lograr la interoperabilidad e incluyen en un gran rango de áreas como protocolos de transporte y seguridad, estos están agrupados como WS-I Basic Profile. Los siguientes son algunos de las especificaciones que forman parte de WS-I.

WS-Security: hablaremos más a fondo de este más adelante, pero incluye alternativas de seguridad como certificados X.509, digital signing, encryption, etc.
WS-Policy: para poder especificar en un documento los requerimientos de un servicio.
WS-Addressing: es para saber con quien se están comunicando y mantener estás direcciones actualizadas.
WS-Messaging: soporta diferentes protocolos de comunicación como TCP y ayuda para comunicación Asíncrona.
WS-Secure Conversation: para establecer session usando tokens de seguridad.
WS-Reliable Messaing: para asegurarnos que el mensaje llegue y se entienda y si llega más de una vez que no se pele.

Regresando a WSE

Hasta que escuche ArcCast en Channel 9, bueno más bien dicho 5 capítulos de ArcCast que hablan sobre seguridad en los WS. Escuche que lo pronuncian como Wizzy y no DóbleIu-Es-I como yo pensaba.

Cuando se refiere a seguridad se tienen muchas opciones, obviamente unas mejores que otras.
Como ya vimos existe la posibilidad de usar SSL sin preocuparnos mucho por el diseño de nuestra aplicación o programación, pues finalmente el IIS y el cliente se encargarán de negociar el intercambio de llaves y algoritmos de cifrado dependiendo de las especificaciones del certificado instalado en el servidor. Sin embargo tiene muchas desventajas, pues aún tenemos que ver como autentificar a los clientes, se encripta todo lo que se transporta por lo que no podremos usar encabezados SOAP para rutear la petición de una maquina a otra. Para lo que sirve realmente es para que el cliente se asegure que sólo el servidor podrá ver lo que intercambia y saber bien con quien está hablando, pero aún tenemos el problema de que el cliente necesita saber a quien le va a enviar información y asegurar está.
Kerberos: esto está un poco más limitado a redes locales, usando Active Directory o similar para emitir los tokens de seguridad que podrán usar el cliente y el servidor para autentificar unos a otros y de ser necesarios encriptar ciertas partes de la petición SOAP. Este tipo de autentificación al igual que la de certificados (como SSL o X.509), se conoce broker authentication pues necesitamos de un directorio o un certificador.
UserName tokens, en este caso el cliente se autentifica usando un UserName y Password o algún “known secret”. La desventaja principal viene al momento de encriptar la información, pues el cliente y el servidor necesitan conocer previamente que llaves usar.
También se puede usar un BinaryToken basado en algún algoritmo, esto sería una solución similar al UsernameToken.
Un certificado digial X.509, está es una de las soluciones más difíciles de administrar, pero es igual la que ofrece mayores ventajas. Los certificados deberán de estar inslados en el cliente y en servidor (dependiendo de cual o cuales de las partes se quieran identificar). En el caso de querer cifrar partes del mensaje, al igual que con Kerberos, se puede usar el certificado (casi todos) para una encripción asimétrica de tal forma que, similar a como lo hace SSL de manera “automática (al menos para el desarrollador)” , se utiliza una llave pública para encriptar la información y una privada para desencriptarla.

¿Cómo funciona?
WSE es una add-in para VS 2005, cuando den click derecho sobre un proyecto aparece una nueva opción en el context menú. Está nos permite hacer modificaciones en los archivos de configuración y crear una política de requerimientos (principalmente para seguridad) de tal forma que el proyecto se pueda apegar a esto.

Conclusión

Wizzy o WSE es muy extenso, lo suficiente como para que sea necesario simplemente hacer una introducción y dejarlos con algunos links que les puedan ser de utilidad.

Referencias

· ARCast - Securing Web Services with X.509 Certificates in WSE 3.0 (Part 1)
· ARCast - Securing Web Services with X.509 Certificates in WSE 3.0 (Part 2)
· ARCast - Web Services Security Patterns Post Game Show
· ARCast - Web Services Security Patterns (Part 1)
· ARCast - Web Services Security Patterns (Part 2)
· Expert Service-Oriented Architecture in C# using the Web Services Enhancements 2.0
· Chequen ArcCast constantemente están publicando nuevos episodios relacionados con WS y WSE 3.0, recientemente publicaron unos de Kerberos Tokens, UserName Tokens y algo nuevo de WCF.
· Una excelente referencia y muy práctica es http://msdn.microsoft.com/securityguidance no únicamente para WS, sino para todo lo relacionado con seguridad.
· Una buena guía y un libro gratuito es el de Patterns and Practices: “Web Service Security Scenarios, Patterns and Implementation Guidance for Web Services Enhancements (WSE) 3.0”. El libro sirve como guía para poder escoger los patrones de seguridad necesarios para un escenario determinado.
· La página oficial de Wizzy no pudiera faltar: desde ahí pueden descargarlo, les sugiero vean los Quickstarts o ejemplos que incluye.
· Hay un lab muy bueno que te va llevando paso a paso en como usar WSE 3.0. No lo he terminado de revisar, me lo paso Jaime y pinta para ser muy útil.

martes, marzo 14, 2006

Mi Choque!!!


El exceso de velocidad es malo y también ir jugando carreras, pero nadie me podrá negar que es divertido (Bueno mis papás si lo negaron). Por suerte no me paso nada, pudo haber sido peor a mi carro si le fue mal, paso más de un mes en terapia intensiva esperando la donación de un toda la suspensión trasera, una nueva defensa y otras cosillas por ahí como una reparación de cofre, etc, etc, etc, blablabla y por cierto aún no queda bien.

Les dejo la foto para que juzguen por ustedes mismos. Apoco no se parece al DeLorian de volver al futuro?

Post desde el e-mail!!!

Sin necesidad de abrir el IE, directo desde mi e-mail puedo postear en mi blog. Chequen blogger.com para obtener su propio blog.

Bueno sólo quería aprovechar y publicar una imagen para ver si eso se puede hacer desde el e-mail directamente.

Ahora si algo de arquitectura y .NET

Últimamente he estado escuchando unos podcasts de ArCast o Channel 9. Hay temas muy interesantes y está página se actualiza muy seguido, les sugiero que se avienten un clavado y chequen que temas les interesan en Channel 9 lo hacen como si fuera un programa de radio, son entrevistas uno a uno o uno a muchos donde Ron Jacobs (el conductor) entrevista a exportes en diversos temas de arquitectura.

 

Algunos de los temas que he visto escuchado:

·         Click Once, entrevistan a dos personas que utilizaron No Touch Deployment (pre .NET 2.0) para controlar las actualizaciones de una aplicación que se utiliza en todo Microsoft, por lo que requerían que un montón de gente bajaba y mantenía actualizada su versión, es interesante ver como algo que resulta tan sencillo (sobre todo ahora con Click Once), puede realmente cumplir requerimientos empresariales tan exigentes.

·         ADAM vs AD: bueno no es tanto uno contra otro, más bien comparan de que trata cada uno, sugieren cuando usarle, etc, etc, etc, blablabla. La verdad no quede muy convencido, será porque estoy muy acostumbrado a usar SQL Server o alguan DB relacional para hacer persistente la información en lugar de usar algo como ADAM, aún después de escuchar la platica me quede con la idea de que el Directorio seguira siendo para autentificar usuarios y en la DB  van datos. Aún así, valdría la pena cambiar el esquema tal vez para guardar información del perfil de usuarios.

·         DSI and MOM: este no se los platico (la verdad no entendi jejeje), no es cierto. Todavía no lo termino de escuchar, pero parece un tema interesante, sobre todo para aplicaciones muy grandes que necesiten ser bastante configurables y manejadas, uno como arquitecto deberá tener en cuenta cuestiones de management y dejar de pensar en que se encarguen los tipos del departamento de sistemas.

·         Enterprise Library 2.0: un tema super interesante, los episodios que escuche hablan más de la arquitectura de EntLib 2.0, no entran tanto en detalle respecto a los bloques. A grandes rasgos se compone de 3 core components, el Object Builder (como interactua OB o CAB con EntLib y Web Cast con Peter Provost), algunos Wrappers para el System.Configuration y algo de Instrumentation.

 

Creo que les he dejado material suficiente a quien sea que fuera que llegue a entrar a mi blog, espero y sea de su interes y dejen sus comentarios.

 

Saludos.

 

 

 

Miguel A. Madero Reyes

Integradores Tecnológicos S.C.

www.integradorestecnologicos.com
miguel.madero@integradorestecnologicos.com

(871)716-7133

Matamoros #585 ote.

Col. Centro, 27000

Torreón, Coahuila

 

Mi Primer Post CRM OnDemand

Aquí les va el primer post.Creo que por lo general encontraran aquí posts de .NET, Arquitectura de Software, Comercio Electronico y otras cosas más relacionadas con lo que hago, pero por está ocasion decidi dejarles un link a la página de Siebel.

Hay un video de demostración de lo que es CRM OnDemmand un concepto que se ha vuelto medio popular.

http://www.crmondemand.com.mx/products/ondemandvideo_reg.jsp