SlideShare una empresa de Scribd logo
1 de 18
Descargar para leer sin conexión
Desarrollo de Aplicaciones
con Enfoque Empresarial
Vladimir Castro Salas
Cochabamba
Desarrollo de App’s Empresariales
Usuarios del SistemaUsuarios del SistemaUsuarios del SistemaUsuarios del Sistema
Gerentes y JefesGerentes y JefesGerentes y JefesGerentes y Jefes
AdministradoresAdministradores
y Monitoresy Monitores
AdministradoresAdministradores
y Monitoresy Monitores
Estructura empresarial...
ServidoresServidoresServidoresServidores
Bases de Apps Empresariales...
Desarrollo orientado a la Seguridad
Transport LayerTransport Layer
Container Layer –Container Layer –
SOAP LayerSOAP Layer
Application LayerApplication Layer
Transpor Layer
Cleartext traffic opt-outCleartext traffic opt-out: Disable cleartext traffic.
Custom trust anchorsCustom trust anchors: Specify Certificate Authorities and sources that the app
trusts.
Debug-only overridesDebug-only overrides: Safely debug secure connections without affecting release
builds.
Certificate pinningCertificate pinning: Restrict secure connections to particular certificates.
Conf. De Seguridad de Redes
1. Crear network_security_config.xml dentro la carpeta res de la App
2. Agregar el siguiente código:
<network_security_config>
<base-config cleartextTrafficPermitted="false"></base-config>
</network_security_config>
3. Agregar la configuración al Android Manifiest:
android:networkSecurityConfig="@xml/network_security_config"
Nota: Estos parámetros admiten una gran variedad de configuraciones
adicionales.
Validación estilo Web
1. Autenticación – validación WEB.
Usuario → vladimircs
Password → MD5(vlad) → f(x) donde x es el password
<?xml version="1.0" encoding="UTF-8"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<S:Body>
<ns2:validateUser xmlns:ns2="http://validation/">
<user>vlad</user>
<pass>dementor</pass>
</ns2:validateUser>
</S:Body>
</S:Envelope>
Validación Mejorada
1. Autenticación Mejorada para Webservices
Usuario → vladimircs
Password → → f(x,n,a) => x = password, n = cifrado, a = raíz de separación
<?xml version="1.0" encoding="UTF-8"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<S:Body>
<ns2:trackUser xmlns:ns2="http://hello/">
<p1>vlad5kudtr88d3m3nt0r5kudtr883</p1>
</ns2:trackUser>
</S:Body>
</S:Envelope>
Usar Sign On de Google
1. https://console.developers.google.com/cloud-resource-manager
2. Crear Proyecto Nuevo
3. Menu Api y Servicios
4. Habilitar API y Servicios
5. Seleccionar Google+ API
6. Seleccionar credentials en el menu lateral
7. Seleccionar pantalla de consentimiento Oauth y proveer los datos requeridos
8. Seleccionar la pantalla credenciales
9. En el menu crear credenciales, seleccionar ID de Cliente de Oauth
10. Rellenar los datos y obtener el certificado de la maquina android con el siguiente
comando :
sudo /opt/jdk8/bin/keytool -J-Duser.language=en -list -v -keystore
~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass
android
11, Guardar y la aplicación esta lista para ser creada.
Active Token
Tokenizacion de apps
Validate
Sel Cuenta
Transferencia
Saldo 205851
205689
205989
Aplication Server
205599
205599
205689
205851
205989
Active Token
Tokenizacion de apps
205599
205689
Aplication Server
205599
1. Solicitud+KT
2. Token
3. Solicitud +KT 4. Token
5. Solicitud C
Tokenizacion Árbol Procesos
Validate
Sel Cuenta
Logout
Transferencia
Saldo
Confirmación
Token Flow
205851
205689
205599
205989
Active Token
Tokenizacion Arbol de Procesos
205599
205589
Aplication Server
205565
1. Solicitud A
2. F(xk)
4. Solicitud + KT
3. Solicitud +KT
205603
4. OK
Seguridad de Archivos Locales
<note_node>
<head_eleement>Critican sentencia a exejecutivos de Misicuni</head_eleement>
<resume>En noviembre de 2013 Misicuni resolvió contrato con el CHM por iliquidez</resume>
<note_detail>En noviembre de 2013 Misicuni resolvió contrato …….</note_detail>
<validation></validation>
</note_node>
<note_node>
<head_eleement>Sistema Misicuni opera con sus tres componentes</head_eleement>
<resume>El Proyecto Múltiple Misicuni ya trabaja de forma parcial.</resume>
<note_detail>El Proyecto Múltiple Misicuni ya trabaja de forma parcial en sus tres
componentes (agua para consumo, riego y energía). Se espera que los ...</note_detail>
<validation></validation>
</note_node>
<note_node>
<head_eleement>inspección al proyecto múltiple misicuni- ENDE Corporación</head_eleement>
<resume>INSPECCIÓN AL PROYECTO MÚLTIPLE MISICUNI</resume>
<note_detail>Este sábado 18 de marzo se realizó ...</note_detail>
<validation></validation>
</note_node>
… con archivos locales
1. Utilizar solo los accesos que verdaderamente la aplicación requiera
2. Eliminar Accesos concedidos en ejecución para que el emulador utilice los
nuevos permisos
adb shell pm reset-permissions
3. Usar el Framework de acceso a almacenamiento puede representar siempre
un riesgo de seguridad.
StorageManager sm = (StorageManager)getSystemService(Context.STORAGE_SERVICE);
StorageVolume volume = sm.getPrimaryStorageVolume();
Intent intent = volume.createAccessIntent(Environment.DIRECTORY_PICTURES);
Bases de Datos locales
1. Almacenar preferentemente información que se pueda tener como un sistema
de cache intermedio (solo información que nos interese tener como rápido
acceso)
2. Nunca almacenar datos sensibles de clientes, usuarios, localizaciones.
3. Siempre tener en mente que una persona que tiene acceso a una terminal
podría acceder a la base de datos interna… por lo tanto nunca se debe
almacenar lógica de negocio.
4. Los datos almacenados localmente deben estar asociados unicamente a un
usuario. Por consiguiente es muy importante eliminar estos datos
Preguntas???

Más contenido relacionado

Similar a Desarrollo de Apps con Enfoque Empresarial

Software Delta.Info
Software Delta.InfoSoftware Delta.Info
Software Delta.Infoinloac
 
Deep dive on Amazon Managed Blockchain - SVC301 - Mexico City AWS Summit
Deep dive on Amazon Managed Blockchain - SVC301 - Mexico City AWS SummitDeep dive on Amazon Managed Blockchain - SVC301 - Mexico City AWS Summit
Deep dive on Amazon Managed Blockchain - SVC301 - Mexico City AWS SummitAmazon Web Services
 
Presentacion Ontología de Seguridad para la securización de sistemas
Presentacion Ontología de Seguridad para la securización de sistemasPresentacion Ontología de Seguridad para la securización de sistemas
Presentacion Ontología de Seguridad para la securización de sistemasguesta3f6ce
 
Presentacion Goldmahn Y Portafolio De Soluciones 2010
Presentacion Goldmahn Y Portafolio De Soluciones 2010Presentacion Goldmahn Y Portafolio De Soluciones 2010
Presentacion Goldmahn Y Portafolio De Soluciones 2010hhernandezn
 
Presentacion Goldmahn Y Portafolio De Soluciones 2010
Presentacion Goldmahn Y Portafolio De Soluciones 2010Presentacion Goldmahn Y Portafolio De Soluciones 2010
Presentacion Goldmahn Y Portafolio De Soluciones 2010hhernandezn
 
Necesidades Aliado Deitek Meditek
Necesidades Aliado Deitek MeditekNecesidades Aliado Deitek Meditek
Necesidades Aliado Deitek MeditekDeitek Systems
 
[Webinar] Gestión Identidades y Control de Acceso en los Servicios usando WSO...
[Webinar] Gestión Identidades y Control de Acceso en los Servicios usando WSO...[Webinar] Gestión Identidades y Control de Acceso en los Servicios usando WSO...
[Webinar] Gestión Identidades y Control de Acceso en los Servicios usando WSO...Roger CARHUATOCTO
 
ESB y SOA, Plataforma de integracion.
ESB y SOA, Plataforma de integracion.ESB y SOA, Plataforma de integracion.
ESB y SOA, Plataforma de integracion.Julio Cejas
 
App Mis Avisos - propuesta tecnica y planificación
App Mis Avisos - propuesta tecnica y planificaciónApp Mis Avisos - propuesta tecnica y planificación
App Mis Avisos - propuesta tecnica y planificaciónRamón Abruña
 
Brochure Saf Mobile
Brochure Saf MobileBrochure Saf Mobile
Brochure Saf MobileSYSDE Sysde
 
Governing cloud computing (es_ES)
Governing cloud computing (es_ES)Governing cloud computing (es_ES)
Governing cloud computing (es_ES)Moises Navarro
 
Introducción a Live Cycle Data Services - Michael Borbór
Introducción a Live Cycle Data Services - Michael BorbórIntroducción a Live Cycle Data Services - Michael Borbór
Introducción a Live Cycle Data Services - Michael BorbórBarcamp Ecuador
 
[SOS 2009] Microsoft Technet: TMG Preview Técnico
[SOS 2009] Microsoft Technet: TMG Preview Técnico[SOS 2009] Microsoft Technet: TMG Preview Técnico
[SOS 2009] Microsoft Technet: TMG Preview TécnicoChema Alonso
 

Similar a Desarrollo de Apps con Enfoque Empresarial (20)

Software Delta.Info
Software Delta.InfoSoftware Delta.Info
Software Delta.Info
 
Presentacion proyecto
Presentacion proyectoPresentacion proyecto
Presentacion proyecto
 
Deep dive on Amazon Managed Blockchain - SVC301 - Mexico City AWS Summit
Deep dive on Amazon Managed Blockchain - SVC301 - Mexico City AWS SummitDeep dive on Amazon Managed Blockchain - SVC301 - Mexico City AWS Summit
Deep dive on Amazon Managed Blockchain - SVC301 - Mexico City AWS Summit
 
Presentacion Ontología de Seguridad para la securización de sistemas
Presentacion Ontología de Seguridad para la securización de sistemasPresentacion Ontología de Seguridad para la securización de sistemas
Presentacion Ontología de Seguridad para la securización de sistemas
 
Presentacion Goldmahn Y Portafolio De Soluciones 2010
Presentacion Goldmahn Y Portafolio De Soluciones 2010Presentacion Goldmahn Y Portafolio De Soluciones 2010
Presentacion Goldmahn Y Portafolio De Soluciones 2010
 
Presentacion Goldmahn Y Portafolio De Soluciones 2010
Presentacion Goldmahn Y Portafolio De Soluciones 2010Presentacion Goldmahn Y Portafolio De Soluciones 2010
Presentacion Goldmahn Y Portafolio De Soluciones 2010
 
Necesidades Aliado Deitek Meditek
Necesidades Aliado Deitek MeditekNecesidades Aliado Deitek Meditek
Necesidades Aliado Deitek Meditek
 
[Webinar] Gestión Identidades y Control de Acceso en los Servicios usando WSO...
[Webinar] Gestión Identidades y Control de Acceso en los Servicios usando WSO...[Webinar] Gestión Identidades y Control de Acceso en los Servicios usando WSO...
[Webinar] Gestión Identidades y Control de Acceso en los Servicios usando WSO...
 
Comercio electronico - Proyecto modelo de negocio
Comercio electronico - Proyecto modelo de negocioComercio electronico - Proyecto modelo de negocio
Comercio electronico - Proyecto modelo de negocio
 
ESB y SOA, Plataforma de integracion.
ESB y SOA, Plataforma de integracion.ESB y SOA, Plataforma de integracion.
ESB y SOA, Plataforma de integracion.
 
Cobit
CobitCobit
Cobit
 
App Mis Avisos - propuesta tecnica y planificación
App Mis Avisos - propuesta tecnica y planificaciónApp Mis Avisos - propuesta tecnica y planificación
App Mis Avisos - propuesta tecnica y planificación
 
Brochure Saf Mobile
Brochure Saf MobileBrochure Saf Mobile
Brochure Saf Mobile
 
Casos exito santiago toribio almatech
Casos exito santiago toribio almatechCasos exito santiago toribio almatech
Casos exito santiago toribio almatech
 
Have you met Istio?
Have you met Istio?Have you met Istio?
Have you met Istio?
 
Governing cloud computing (es_ES)
Governing cloud computing (es_ES)Governing cloud computing (es_ES)
Governing cloud computing (es_ES)
 
Introducción a Live Cycle Data Services - Michael Borbór
Introducción a Live Cycle Data Services - Michael BorbórIntroducción a Live Cycle Data Services - Michael Borbór
Introducción a Live Cycle Data Services - Michael Borbór
 
[SOS 2009] Microsoft Technet: TMG Preview Técnico
[SOS 2009] Microsoft Technet: TMG Preview Técnico[SOS 2009] Microsoft Technet: TMG Preview Técnico
[SOS 2009] Microsoft Technet: TMG Preview Técnico
 
Carta sistema integrado muni
Carta sistema integrado muniCarta sistema integrado muni
Carta sistema integrado muni
 
Carta sistema integrado muni
Carta sistema integrado muniCarta sistema integrado muni
Carta sistema integrado muni
 

Desarrollo de Apps con Enfoque Empresarial

  • 1. Desarrollo de Aplicaciones con Enfoque Empresarial Vladimir Castro Salas Cochabamba
  • 2. Desarrollo de App’s Empresariales
  • 3. Usuarios del SistemaUsuarios del SistemaUsuarios del SistemaUsuarios del Sistema Gerentes y JefesGerentes y JefesGerentes y JefesGerentes y Jefes AdministradoresAdministradores y Monitoresy Monitores AdministradoresAdministradores y Monitoresy Monitores Estructura empresarial... ServidoresServidoresServidoresServidores
  • 4. Bases de Apps Empresariales...
  • 5. Desarrollo orientado a la Seguridad Transport LayerTransport Layer Container Layer –Container Layer – SOAP LayerSOAP Layer Application LayerApplication Layer
  • 6. Transpor Layer Cleartext traffic opt-outCleartext traffic opt-out: Disable cleartext traffic. Custom trust anchorsCustom trust anchors: Specify Certificate Authorities and sources that the app trusts. Debug-only overridesDebug-only overrides: Safely debug secure connections without affecting release builds. Certificate pinningCertificate pinning: Restrict secure connections to particular certificates.
  • 7. Conf. De Seguridad de Redes 1. Crear network_security_config.xml dentro la carpeta res de la App 2. Agregar el siguiente código: <network_security_config> <base-config cleartextTrafficPermitted="false"></base-config> </network_security_config> 3. Agregar la configuración al Android Manifiest: android:networkSecurityConfig="@xml/network_security_config" Nota: Estos parámetros admiten una gran variedad de configuraciones adicionales.
  • 8. Validación estilo Web 1. Autenticación – validación WEB. Usuario → vladimircs Password → MD5(vlad) → f(x) donde x es el password <?xml version="1.0" encoding="UTF-8"?> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Header/> <S:Body> <ns2:validateUser xmlns:ns2="http://validation/"> <user>vlad</user> <pass>dementor</pass> </ns2:validateUser> </S:Body> </S:Envelope>
  • 9. Validación Mejorada 1. Autenticación Mejorada para Webservices Usuario → vladimircs Password → → f(x,n,a) => x = password, n = cifrado, a = raíz de separación <?xml version="1.0" encoding="UTF-8"?> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Header/> <S:Body> <ns2:trackUser xmlns:ns2="http://hello/"> <p1>vlad5kudtr88d3m3nt0r5kudtr883</p1> </ns2:trackUser> </S:Body> </S:Envelope>
  • 10. Usar Sign On de Google 1. https://console.developers.google.com/cloud-resource-manager 2. Crear Proyecto Nuevo 3. Menu Api y Servicios 4. Habilitar API y Servicios 5. Seleccionar Google+ API 6. Seleccionar credentials en el menu lateral 7. Seleccionar pantalla de consentimiento Oauth y proveer los datos requeridos 8. Seleccionar la pantalla credenciales 9. En el menu crear credenciales, seleccionar ID de Cliente de Oauth 10. Rellenar los datos y obtener el certificado de la maquina android con el siguiente comando : sudo /opt/jdk8/bin/keytool -J-Duser.language=en -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android 11, Guardar y la aplicación esta lista para ser creada.
  • 11. Active Token Tokenizacion de apps Validate Sel Cuenta Transferencia Saldo 205851 205689 205989 Aplication Server 205599 205599 205689 205851 205989
  • 12. Active Token Tokenizacion de apps 205599 205689 Aplication Server 205599 1. Solicitud+KT 2. Token 3. Solicitud +KT 4. Token 5. Solicitud C
  • 13. Tokenizacion Árbol Procesos Validate Sel Cuenta Logout Transferencia Saldo Confirmación Token Flow 205851 205689 205599 205989
  • 14. Active Token Tokenizacion Arbol de Procesos 205599 205589 Aplication Server 205565 1. Solicitud A 2. F(xk) 4. Solicitud + KT 3. Solicitud +KT 205603 4. OK
  • 15. Seguridad de Archivos Locales <note_node> <head_eleement>Critican sentencia a exejecutivos de Misicuni</head_eleement> <resume>En noviembre de 2013 Misicuni resolvió contrato con el CHM por iliquidez</resume> <note_detail>En noviembre de 2013 Misicuni resolvió contrato …….</note_detail> <validation></validation> </note_node> <note_node> <head_eleement>Sistema Misicuni opera con sus tres componentes</head_eleement> <resume>El Proyecto Múltiple Misicuni ya trabaja de forma parcial.</resume> <note_detail>El Proyecto Múltiple Misicuni ya trabaja de forma parcial en sus tres componentes (agua para consumo, riego y energía). Se espera que los ...</note_detail> <validation></validation> </note_node> <note_node> <head_eleement>inspección al proyecto múltiple misicuni- ENDE Corporación</head_eleement> <resume>INSPECCIÓN AL PROYECTO MÚLTIPLE MISICUNI</resume> <note_detail>Este sábado 18 de marzo se realizó ...</note_detail> <validation></validation> </note_node>
  • 16. … con archivos locales 1. Utilizar solo los accesos que verdaderamente la aplicación requiera 2. Eliminar Accesos concedidos en ejecución para que el emulador utilice los nuevos permisos adb shell pm reset-permissions 3. Usar el Framework de acceso a almacenamiento puede representar siempre un riesgo de seguridad. StorageManager sm = (StorageManager)getSystemService(Context.STORAGE_SERVICE); StorageVolume volume = sm.getPrimaryStorageVolume(); Intent intent = volume.createAccessIntent(Environment.DIRECTORY_PICTURES);
  • 17. Bases de Datos locales 1. Almacenar preferentemente información que se pueda tener como un sistema de cache intermedio (solo información que nos interese tener como rápido acceso) 2. Nunca almacenar datos sensibles de clientes, usuarios, localizaciones. 3. Siempre tener en mente que una persona que tiene acceso a una terminal podría acceder a la base de datos interna… por lo tanto nunca se debe almacenar lógica de negocio. 4. Los datos almacenados localmente deben estar asociados unicamente a un usuario. Por consiguiente es muy importante eliminar estos datos