crear aplicaciones sandboxed en sharepoint · sharepoint: • seguro – refuerza la “sandbox”...

34
9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146 Crear aplicaciones Sandboxed en SharePoint Luis Alfonso Rey | 9º Encuentro Danysoft en Microsoft

Upload: others

Post on 09-Jun-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Crear aplicaciones Sandboxed en SharePoint · SharePoint: • Seguro – refuerza la “sandbox” • Se ejecuta en un entorno parcialmente confiable • El código se ejecuta en

9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146

Crear aplicaciones Sandboxed en SharePoint Luis Alfonso Rey | 9º Encuentro Danysoft en Microsoft

Page 2: Crear aplicaciones Sandboxed en SharePoint · SharePoint: • Seguro – refuerza la “sandbox” • Se ejecuta en un entorno parcialmente confiable • El código se ejecuta en

9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146

Page 3: Crear aplicaciones Sandboxed en SharePoint · SharePoint: • Seguro – refuerza la “sandbox” • Se ejecuta en un entorno parcialmente confiable • El código se ejecuta en

9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146

Page 4: Crear aplicaciones Sandboxed en SharePoint · SharePoint: • Seguro – refuerza la “sandbox” • Se ejecuta en un entorno parcialmente confiable • El código se ejecuta en

9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146

• Desarrolladores construyen soluciones propias

• Administradores solo pueden asegurar con CAS• Difícil de controlar que se

hace con el código personalizado

• La mayor causa de casos de soporte: código personalizado

El reto de SharePoint 2007Desarrollador• Diseñar, compilar y probar

personalizaciones

Administrador• Instalar y monitorizar

personalizaciones

Propietario de la colección de sitios• Activar y usar la

personalizaciones

Page 5: Crear aplicaciones Sandboxed en SharePoint · SharePoint: • Seguro – refuerza la “sandbox” • Se ejecuta en un entorno parcialmente confiable • El código se ejecuta en

9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146

• Los desarrolladores crean soluciones personalizadas

• Los propietarios de la colección de sitios despliegan, activan e implementan las personalizaciones

• Administradores monitorizan los recursos para comprobar el uso de la colección• Automáticamente “apagan” las

soluciones demasiado caras en una colección y que afectan al rendimiento del servidor

La solución SharePoint 2010Desarrollador• Diseño, compilar y probar

personalizaciones

Administrador• Monitorizar

personalizaciones

Propietario de colección de sitios• Activar y usar

personalizaciones• Instalar personalizaciones

Page 6: Crear aplicaciones Sandboxed en SharePoint · SharePoint: • Seguro – refuerza la “sandbox” • Se ejecuta en un entorno parcialmente confiable • El código se ejecuta en

9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146

• Las soluciones Sandboxed son importantes por• Solucionan los problemas de alojamiento en entornos

corporativos• Lo entornos de alojamiento son más fácil de manejar

• Reducen el tiempo de despliegue• Prescindiendo del proceso de que IT apruebe y

despliegue el código• Mejora la estabilidad de los servidores

• Ahora el código con un rendimiento pobre se aísla en una colección de sitios en vez de el servidor entero

Las soluciones “Sandboxed” ayudan a las empresas

Page 7: Crear aplicaciones Sandboxed en SharePoint · SharePoint: • Seguro – refuerza la “sandbox” • Se ejecuta en un entorno parcialmente confiable • El código se ejecuta en

9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146

• Permite un subconjunto de las capacidades de la API de SharePoint:

• Seguro – refuerza la “sandbox”• Se ejecuta en un entorno parcialmente confiable• El código se ejecuta en un servicio especial• Sujeto a CAS• Entorno de validación

• Permite realizar validaciones a lo largo de la granja para los paquetes desplegados

• Cada solución se aísla en su colección

Introducción a la “Sandbox”

Page 8: Crear aplicaciones Sandboxed en SharePoint · SharePoint: • Seguro – refuerza la “sandbox” • Se ejecuta en un entorno parcialmente confiable • El código se ejecuta en

9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146

• Galería de solución -- _catalogs/solutions• Potencian a los administradores

Administración de colecciones

Page 9: Crear aplicaciones Sandboxed en SharePoint · SharePoint: • Seguro – refuerza la “sandbox” • Se ejecuta en un entorno parcialmente confiable • El código se ejecuta en

9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146

Ciclo de vida de la soluciónInstalación• Subir a la galería de soluciones

Activación• Características auto activables

Desactivación• La operación se extiende por el desarrollador• Las Web Parts dejan de ejecutarse

Borrado

Page 10: Crear aplicaciones Sandboxed en SharePoint · SharePoint: • Seguro – refuerza la “sandbox” • Se ejecuta en un entorno parcialmente confiable • El código se ejecuta en

9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146

Page 11: Crear aplicaciones Sandboxed en SharePoint · SharePoint: • Seguro – refuerza la “sandbox” • Se ejecuta en un entorno parcialmente confiable • El código se ejecuta en

9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146

• Administración de la solución - Cuota/Soluciones bloqueadas

• Subconjunto del modelo de objetos• Procesos externos• Code Access Security (Directivas CAS)

Defina la solución Sandbox

Page 12: Crear aplicaciones Sandboxed en SharePoint · SharePoint: • Seguro – refuerza la “sandbox” • Se ejecuta en un entorno parcialmente confiable • El código se ejecuta en

9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146

• Administración Central• Bloqueo de soluciónes• Plantillas de Cuota

Administración de la solución

Page 13: Crear aplicaciones Sandboxed en SharePoint · SharePoint: • Seguro – refuerza la “sandbox” • Se ejecuta en un entorno parcialmente confiable • El código se ejecuta en

9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146

• En general• SPSite y debajo

• Sin SPSecurity• Sin construcción de SPSite• Los espacios de nombres comunes

no están disponibles• Microsoft.SharePoint.Administration• Microsoft.SharePoint.WebControls

Subconjunto del modelo de objetosSPSite

SPWeb

SPList

SPListItem

Page 14: Crear aplicaciones Sandboxed en SharePoint · SharePoint: • Seguro – refuerza la “sandbox” • Se ejecuta en un entorno parcialmente confiable • El código se ejecuta en

9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146

Un proceso separado

• Servicio de código de usuario(SPUCHostService.exe)

• Proceso de trabajo sandbox(SPUCWorkerProcess.exe)

• Proxy del proceso de trabajo sandbox(SPUCWorkerProcessProxy.exe)

Page 15: Crear aplicaciones Sandboxed en SharePoint · SharePoint: • Seguro – refuerza la “sandbox” • Se ejecuta en un entorno parcialmente confiable • El código se ejecuta en

9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146

SandboxAspNetHostingPermission, Level=MinimalSharePointPermission, ObjectModel=trueSecurityPermission, Flags=Execution

Full Trust

wss_usercode.config

Código de usuairo

Código framework

My.dll

Other.dll System DLL

SharePoint DLL

SharePoint MO

Subconjunto MO

Sandbox y Code Access Security

Page 16: Crear aplicaciones Sandboxed en SharePoint · SharePoint: • Seguro – refuerza la “sandbox” • Se ejecuta en un entorno parcialmente confiable • El código se ejecuta en

9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146

Front end Back end

Servicio de alojamientoGestor de ejecución

Arquitectura del "sandboxing"

Proceso de trabajo

Código no confiable

Subconjunto del modelo de objetos

Modelo de objeto completos

Page 17: Crear aplicaciones Sandboxed en SharePoint · SharePoint: • Seguro – refuerza la “sandbox” • Se ejecuta en un entorno parcialmente confiable • El código se ejecuta en

9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146

Proceso de las soluciones Sandboxed

Raíz SPWeb del SPSite

Solution galleryWebParts.wsp

Web Part gallery

Per-WFE AssemblyCache

<siteguid>\company.intranet.webpart.wsp\foo.dll

Proceso de lassoluciones Sandboxed

1

2 5

6

7

4

3

Page 18: Crear aplicaciones Sandboxed en SharePoint · SharePoint: • Seguro – refuerza la “sandbox” • Se ejecuta en un entorno parcialmente confiable • El código se ejecuta en

9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146

Page 19: Crear aplicaciones Sandboxed en SharePoint · SharePoint: • Seguro – refuerza la “sandbox” • Se ejecuta en un entorno parcialmente confiable • El código se ejecuta en

9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146

SandboxedCaracterísticas soportadas

Tipos de soluciones Sandboxed

• Las Soluciones Sandboxedofrece un subconjunto del API de Sharepoint disponible en las aplicaciones de confianza completa• Collección de sitios y

características de ambitode sitio

• Muchos XML disponibles para: Modulos, Listas, Tipos de contenidos, etc.

• Tecnologías de cliente para acceder a datos externos –JavaScript, Silverlight etc.

Web Parts no visuales

Receptores Evento/Característica

Eventos características de

eventos

Acciones de workflow propias

Servicios InfoPath Forms

Definiciones de Listas

Acciones personalizadas Páginas de sitios

Columnas de sitio Tipos de contenidos

Page 20: Crear aplicaciones Sandboxed en SharePoint · SharePoint: • Seguro – refuerza la “sandbox” • Se ejecuta en un entorno parcialmente confiable • El código se ejecuta en

9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146

• Conexiones no previstas, http, WS, etc• ADO.net• Características empresariales (Search, etc.)• Threading• P-Invoke• ES• Otros sitios

Límites de las aplicaciones sandbox

Page 21: Crear aplicaciones Sandboxed en SharePoint · SharePoint: • Seguro – refuerza la “sandbox” • Se ejecuta en un entorno parcialmente confiable • El código se ejecuta en

9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146

• Visual Studio 2010utiliza IntelliSense para ocultartipos “full-trust”

• Todo el código se compila contra la API completa

• No hay chequeo “sandbox” en compilación solo en ejecución

• Solución: cambiar Microsoft.SharePoint.dll la referencia de la referencia a la versión sandbox• [..]\14\UserCode\Assemblies\Microsoft.SharePoint.dll• NOTA: ¡Cambiarlo antes del despliegue!

Compilar vs. Ejecutar soluciones Sandboxed

Full Object Model Subset Object Model

MyWebPart.dll

Proxy

Runtime

Page 22: Crear aplicaciones Sandboxed en SharePoint · SharePoint: • Seguro – refuerza la “sandbox” • Se ejecuta en un entorno parcialmente confiable • El código se ejecuta en

9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146

Page 23: Crear aplicaciones Sandboxed en SharePoint · SharePoint: • Seguro – refuerza la “sandbox” • Se ejecuta en un entorno parcialmente confiable • El código se ejecuta en

9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146

• Listas externas via SPList• Proxy “Full-Trust”

“Rompiendo” la “Sandbox”

Page 24: Crear aplicaciones Sandboxed en SharePoint · SharePoint: • Seguro – refuerza la “sandbox” • Se ejecuta en un entorno parcialmente confiable • El código se ejecuta en

9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146

Page 25: Crear aplicaciones Sandboxed en SharePoint · SharePoint: • Seguro – refuerza la “sandbox” • Se ejecuta en un entorno parcialmente confiable • El código se ejecuta en

9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146

Page 26: Crear aplicaciones Sandboxed en SharePoint · SharePoint: • Seguro – refuerza la “sandbox” • Se ejecuta en un entorno parcialmente confiable • El código se ejecuta en

9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146

• Las soluciones “Sandboxed” pueden ser ejecutadas de dos formas• Local

• Ejecuta el código en SharePoint WFE• Poca sobrecarga de administración• Baja escalabilidad

• Remote• Ejecución en la máquina de la granja

• Via aplicaciones de servicio dedicadas• Distribución de balanceo de carga de peticiones de ejecución de código

Balanceo de carga

Page 27: Crear aplicaciones Sandboxed en SharePoint · SharePoint: • Seguro – refuerza la “sandbox” • Se ejecuta en un entorno parcialmente confiable • El código se ejecuta en

9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146

• [GuidAttribute("34805697-1FC4-4b66-AF09-AB48AC0F9D97")]• public class PublisherValidator : SPSolutionValidator{•

public override void ValidateSolution(• SPSolutionValidationProperties properties){• properties.Valid = [true || false];• properties.ValidationErrorMessage = “no soup for you”;• }

• public override void ValidateAssembly(• SPSolutionValidationProperties properties,• SPSolutionFile assembly){• }• }

Validación de la solución

Page 28: Crear aplicaciones Sandboxed en SharePoint · SharePoint: • Seguro – refuerza la “sandbox” • Se ejecuta en un entorno parcialmente confiable • El código se ejecuta en

9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146

• Las cuotas especifican los límites del número de recursos que pueden ser usados por día

• Suma de medida de recursos son calculadas a lo largo de las soluciones desplegadas a la colección de sitios• Ej., elevar puntos CPU para todas las soluciones

• Máximo de utilización de recursos comprobadas contra las cuotas para determinar si deben ser estrangulada/bloqueadas

Monitor de Soluciones SandboxComo funciona

Page 29: Crear aplicaciones Sandboxed en SharePoint · SharePoint: • Seguro – refuerza la “sandbox” • Se ejecuta en un entorno parcialmente confiable • El código se ejecuta en

9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146

Recursos monitorizadosNombre de la métrica Descripción Unidades Recursos

por punto Limite

AbnormalProcessTerminationCount Process gets abnormally terminated Count 1 1

CPUExecutionTime CPU exception time Seconds 200 60CriticalExceptionCount Critical exception fired Number 10 3

InvocationCount Number of times solution has been invoked Count N/A N/A

PercentProcessorTime Note: # of cores not factored in Percentage Units of Overall Processor Consumed 85 100

ProcessCPUCycles CPU Cycles 1E+11 1E+11ProcessHandleCount Windows Handles 10,000 5,000

ProcessIOBytes (Hard Limit Only) Bytes written to IO Bytes 1E+07 1E+08

ProcessThreadCount Number of Threads in Overall Process Threads 10,000 200

ProcessVirtualBytes (Hard Limit Only) Memory consumed Bytes 1E+09 4E+09

SharePointDatabaseQueryCount SharePoint DB Queries Invoked Number 400 100

SharePointDatabaseQueryTime Amount of time spent waiting for a query to be performed Seconds 20 60

UnhandledExceptionCount Unhanded Exceptions 50 3

UnresponsiveprocessCountWe have to kill the process because it has become unresponsive

Number 2 1

Los valores son personalizables…

Page 30: Crear aplicaciones Sandboxed en SharePoint · SharePoint: • Seguro – refuerza la “sandbox” • Se ejecuta en un entorno parcialmente confiable • El código se ejecuta en

9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146

• Una solución ha ejecutado 40 consultas SQL (via SharePoint OM)

• Un punto para SQL es 400 queries• Significa que para SQL se consume 0.1 puntos• Así que el uso de recursos por día para la

solución es 0.1 más otros contadores

Caso de estudio solución Sandbox

Page 31: Crear aplicaciones Sandboxed en SharePoint · SharePoint: • Seguro – refuerza la “sandbox” • Se ejecuta en un entorno parcialmente confiable • El código se ejecuta en

9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146

Page 32: Crear aplicaciones Sandboxed en SharePoint · SharePoint: • Seguro – refuerza la “sandbox” • Se ejecuta en un entorno parcialmente confiable • El código se ejecuta en

9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146

Gestión activos software y libros

Page 33: Crear aplicaciones Sandboxed en SharePoint · SharePoint: • Seguro – refuerza la “sandbox” • Se ejecuta en un entorno parcialmente confiable • El código se ejecuta en

9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146

Formación, consultoría y seminarios

Page 34: Crear aplicaciones Sandboxed en SharePoint · SharePoint: • Seguro – refuerza la “sandbox” • Se ejecuta en un entorno parcialmente confiable • El código se ejecuta en

9º Encuentro Danysoft en Microsoft | www.danysoft.com | 902 123146