{"id":1293,"date":"2014-06-03T10:00:44","date_gmt":"2014-06-03T09:00:44","guid":{"rendered":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/?p=1293"},"modified":"2014-06-05T12:42:34","modified_gmt":"2014-06-05T11:42:34","slug":"impersonalizar-usuarios-o-como-integrar-sharepoint-con-otros-sistemas","status":"publish","type":"post","link":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/impersonalizar-usuarios-o-como-integrar-sharepoint-con-otros-sistemas\/","title":{"rendered":"Impersonalizar usuarios o como integrar SharePoint con otros sistemas"},"content":{"rendered":"<p>Muchos departamentos de IT ven SharePoint como un elemento aislado y que no lo pueden integrar con muchos de sus sistemas. Principalmente por este motivo muchos responsables de departamento no quieren un SharePoint dentro de sus infraestructuras. Ahora bien, esta\u00a0idea se puede contrastar con algo de conocimiento sobre nuestro \u00abservidor preferido\u00bb.<br \/>\nEn este post vamos a ver un ejemplo pr\u00e1ctico de c\u00f3mo podemos utilizar una WebAPI 2 con nuestro SharePoint.<br \/>\n<!--more--><\/p>\n<h2>Introducci\u00f3n<\/h2>\n<p>Mi compa\u00f1ero Alberto ya escribi\u00f3 recientemente como <a href=\"http:\/\/geeks.ms\/blogs\/adiazmartin\/archive\/2014\/03\/13\/sharepoint-2013-una-provider-hosted-que-no-es-una-provider-hosted.aspx#comments\" target=\"_blank\">implementar una Provider Hosted que no er\u00e1 tal<\/a>. En esta ocasi\u00f3n, introducimos un sistema de validaci\u00f3n dentro de SharePoint, para generar Tokens de autorizaci\u00f3n sobre SharePoint, pero partiendo de la base de que el otro sistema previamente se hab\u00eda autenticado contra SharePoint.<\/p>\n<p><strong>\u00bfCual es el problema que tiene est\u00e1 forma?<\/strong><br \/>\nEl principal problema es que estamos asumiendo que nuestro cliente origen ser\u00e1 un Navegador que se ejecuta en un ordenador que corre bajo un sistema operativo Windows. Ahora bien, actualmente estamos en un proceso de cambio en el que todo el mundo quiere abrir sus aplicaciones desde cualquier perif\u00e9rico y con muchas variedades de sistemas operativos y tambi\u00e9n desde diversas aplicaciones, por lo que, \u00ab<em>obligar<\/em>\u00bb a que el otro sistema se tenga que autenticar contra SharePoint no hace m\u00e1s que dar parte de raz\u00f3n a esos responsables de IT que comentaba anteriormente.<\/p>\n<p><strong>\u00bfComo lo podemos solucionar?<\/strong><br \/>\nEl modelo de objetos de Servidor (SSOM) de SharePoint es muy completo, contiene una gran cantidad de utilidades y de operaciones. Casi todo lo que podemos hacer mediante c\u00f3digo servidor y haciendo uso de Windows PowerShell para completar todas las posibilidades.<\/p>\n<p>Seguro que a casi todos los desarrolladores de SharePoint conocen el \u00abRunWithElevatedPrivileges\u00bb, esta instrucci\u00f3n lo que hace es ejecutar diversos fragmentos de c\u00f3digo como si fu\u00e9ramos Administradores. Utilizando esta acci\u00f3n desde nuestro c\u00f3digo podr\u00edamos realizar cualquier operaci\u00f3n y poder integrarlo con cualquier sistema. Pero&#8230; claro es algo <em>m\u00e1s que una burrada<\/em> y una operaci\u00f3n que <strong>no podemos ni debemos permitir.<\/strong><\/p>\n<p>Aunque esta claro el porqu\u00e9, no est\u00e1\u00a0de m\u00e1s comentar una serie de aspectos para que se nos quite esta idea de la cabeza:<\/p>\n<ol>\n<li>Si ejecutamos todo con el SuperUsuario, permitimos hacer a los usuarios normales puedan ejecutar acciones que no tienen permisos. Ejemplo: consultar documentos\/bibliotecas que no deben.<\/li>\n<li>El Performance de SharePoint a la hora de determinadas operaciones se puede alterar.<\/li>\n<li>La Gobernance del propio SharePoint estar\u00eda m\u00e1s propia de una rep\u00fablica bananera que de un criterio profesional.<\/li>\n<li>Etc..<\/li>\n<\/ol>\n<p>Para m\u00e1s aspectos no dudes de <a href=\"http:\/\/www.soluciones-sharepoint.com\/2014\/05\/no-dejes-de-analizar-la-salud-de-tu.html\" target=\"_blank\">revisar la salud de tu SharePoint<\/a>.<\/p>\n<p><strong>C\u00f3mo poder solucionarlo<\/strong><br \/>\nSi analizamos un poco m\u00e1s el SSOM tenemos la opci\u00f3n de obtener un Token de usuario. Este Token es la identidad que tiene el usuario en SharePoint y todos los privilegios que tiene este usuario dentro de nuestra colecci\u00f3n de sitio. Para obtener el Token de un usuario lo podemos realizar de una forma semejante a la siguiente:<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\nusing (var spSite = new SPSite(ConfigurationManager.AppSettings&#x5B;&quot;Site&quot;]))\r\n                {\r\n                    using (var spWeb = spSite.OpenWeb())\r\n                    {\r\n                        var spUser = spWeb.EnsureUser(domainUser);\r\n                        result = spUser.UserToken.BinaryToken;\r\n                    }\r\n                }\r\n<\/pre>\n<p>Con el token obtenido podemos abrir un objeto SPSite con las credenciales del usuario en cuesti\u00f3n, para ello no hace falta m\u00e1s que el siguiente c\u00f3digo:<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\n var user= new SPUserToken(token);\r\nvar site= new SPSite(url,user);\r\n<\/pre>\n<p><strong>A\u00f1adiendo WebApi el SSOM<\/strong><br \/>\nTodo lo comentado anteriormente, no son m\u00e1s que posibilidades que nos da el modelo de Objeto de Servidor de SharePoint. Ahora bien, \u00bfc\u00f3mo lo podemos integrar con una Web API?. Desde Encamina para poder utilizar la WebAPI con otros Sistemas hemos establecido un protocolo para hacer uso de la misma. Para ello, antes de empezar a utilizar la WebAPI lo que hacemos es que nuestro cliente (llamamos a cliente a la Aplicaci\u00f3n independiente de la plataforma) solicita el Token que lo tenemos en una acci\u00f3n de un Controlador. Por ejemplo:<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\npublic class LoginController : ApiController\r\n    {\r\n        &#x5B;Route(&quot;api\/login\/{domain}\/{user}&quot;)]\r\n        &#x5B;HttpPost]\r\n        public IList&lt;byte&gt; GetToken(string domain,string user)\r\n        {\r\n            var domainUser = string.Concat(domain, &quot;\\\\&quot;, user);\r\n            byte&#x5B;] result = null;\r\n            SPSecurity.RunWithElevatedPrivileges(delegate\r\n            {\r\n                using (var spSite = new SPSite(ConfigurationManager.AppSettings&#x5B;&quot;Site&quot;]))\r\n                {\r\n                    using (var spWeb = spSite.OpenWeb())\r\n                    {\r\n                        spWeb.AllowUnsafeUpdates = true;\r\n                        var spUser = spWeb.EnsureUser(domainUser);\r\n                        result = spUser.UserToken.BinaryToken;\r\n                        spWeb.AllowUnsafeUpdates = false;\r\n                    }\r\n                }\r\n            });\r\n            return result.ToList();\r\n        }\r\n    }\r\n<\/pre>\n<p>Una vez nuestro cliente tiene el Token, para poder utilizar cualquier otro Controlador de nuestra WebAPI lo que establecemos es que en la petici\u00f3n a dicho controlador debe de tener este Token en la Cabecera, en caso de que no lo tenga mediante un filtro que proporciona la WebAPi devolemos un error de petici\u00f3n no permitida.<\/p>\n<p><strong>La pregunta del mill\u00f3n: este sistema es seguro?<\/strong><br \/>\nPartiendo de la base que todo sistema se puede vulnerar y tiene alg\u00fan punto d\u00e9bil, \u00e9sta forma de extender las capacidades de SharePoint para hacer uso de herramientas actuales como puede ser la WebAPI 2, es bastante seguro, por varias razones:<\/p>\n<ol>\n<li>Tenemos la seguridad que pueda tener WebAPI (NTLM, Basic, Forms..)<\/li>\n<li>La seguridad que proporciona SharePoint<\/li>\n<li>El proceso de comunicaci\u00f3n de SharePoint con la WebAPI<\/li>\n<\/ol>\n<h2>Conclusi\u00f3n<\/h2>\n<p>SharePoint no es un sistema cerrado como mucha gente piensa, quiz\u00e1s en sus primeras versiones era muy dif\u00edcil su integraci\u00f3n con otros sistemas, pero las dos \u00faltimas versiones y las novedades que se est\u00e1n anunciando en su plataforma Online, no hacen m\u00e1s que la posibilidad de integrar SharePoint con cualquier otra plataforma sea un hecho y algo bastante frecuente en nuestros desarrollos.<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content --><span class=\"et_bloom_bottom_trigger\"><\/span>","protected":false},"excerpt":{"rendered":"<p>Muchos departamentos de IT ven SharePoint como un elemento aislado y que no lo pueden integrar con muchos de sus sistemas. Principalmente por este motivo muchos responsables de departamento no quieren un SharePoint dentro de sus infraestructuras. Ahora bien, esta\u00a0idea &hellip; <a href=\"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/impersonalizar-usuarios-o-como-integrar-sharepoint-con-otros-sistemas\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":8,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[112,26,111],"class_list":["post-1293","post","type-post","status-publish","format-standard","hentry","category-buenas-practicas","tag-integracion","tag-sharepoint","tag-web-api"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v18.2.1 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Impersonalizar usuarios o como integrar SharePoint con otros sistemas - Desarrollando sobre SharePoint<\/title>\n<meta name=\"description\" content=\"En este post vamos a ver un ejemplo practico de como podemos una WebAPI 2 con nuestro SharePoint.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/impersonalizar-usuarios-o-como-integrar-sharepoint-con-otros-sistemas\/\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Impersonalizar usuarios o como integrar SharePoint con otros sistemas - Desarrollando sobre SharePoint\" \/>\n<meta name=\"twitter:description\" content=\"En este post vamos a ver un ejemplo practico de como podemos una WebAPI 2 con nuestro SharePoint.\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Adri\u00e1n D\u00edaz\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/impersonalizar-usuarios-o-como-integrar-sharepoint-con-otros-sistemas\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/impersonalizar-usuarios-o-como-integrar-sharepoint-con-otros-sistemas\\\/\"},\"author\":{\"name\":\"Adri\u00e1n D\u00edaz\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#\\\/schema\\\/person\\\/c9bfaede1bfba9564bb7f500788782bb\"},\"headline\":\"Impersonalizar usuarios o como integrar SharePoint con otros sistemas\",\"datePublished\":\"2014-06-03T09:00:44+00:00\",\"dateModified\":\"2014-06-05T11:42:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/impersonalizar-usuarios-o-como-integrar-sharepoint-con-otros-sistemas\\\/\"},\"wordCount\":966,\"commentCount\":0,\"keywords\":[\"integracion\",\"sharepoint\",\"web api\"],\"articleSection\":[\"buenas practicas\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/impersonalizar-usuarios-o-como-integrar-sharepoint-con-otros-sistemas\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/impersonalizar-usuarios-o-como-integrar-sharepoint-con-otros-sistemas\\\/\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/impersonalizar-usuarios-o-como-integrar-sharepoint-con-otros-sistemas\\\/\",\"name\":\"Impersonalizar usuarios o como integrar SharePoint con otros sistemas - Desarrollando sobre SharePoint\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#website\"},\"datePublished\":\"2014-06-03T09:00:44+00:00\",\"dateModified\":\"2014-06-05T11:42:34+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#\\\/schema\\\/person\\\/c9bfaede1bfba9564bb7f500788782bb\"},\"description\":\"En este post vamos a ver un ejemplo practico de como podemos una WebAPI 2 con nuestro SharePoint.\",\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/impersonalizar-usuarios-o-como-integrar-sharepoint-con-otros-sistemas\\\/\"]}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#website\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/\",\"name\":\"Desarrollando sobre SharePoint\",\"description\":\"Arquitectura, buenas pr\u00e1cticas y desarrollo sobre la nueva herramienta de Microsoft SharePoint 2016\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#\\\/schema\\\/person\\\/c9bfaede1bfba9564bb7f500788782bb\",\"name\":\"Adri\u00e1n D\u00edaz\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g\",\"caption\":\"Adri\u00e1n D\u00edaz\"},\"description\":\"Adri\u00e1n D\u00edaz es Ingeniero Inform\u00e1tico por la Universidad Polit\u00e9cnica de Valencia. Es MVP de Microsoft en la categor\u00eda Office Development desde 2014, MCPD de SharePoint 2010, Microsoft Active Profesional y Microsoft Comunity Contribuitor 2012. Cofundador del grupo de usuarios de SharePoint de Levante LevaPoint. Lleva desarrollando con tecnolog\u00edas Microsoft m\u00e1s de 10 a\u00f1os y desde hace 3 a\u00f1os est\u00e1 centrado en el desarrollo sobre SharePoint. Actualmente es Software &amp; Cloud Architect Lead en ENCAMINA.\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/author\\\/desarrollandosobresharepoint\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Impersonalizar usuarios o como integrar SharePoint con otros sistemas - Desarrollando sobre SharePoint","description":"En este post vamos a ver un ejemplo practico de como podemos una WebAPI 2 con nuestro SharePoint.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/impersonalizar-usuarios-o-como-integrar-sharepoint-con-otros-sistemas\/","twitter_card":"summary_large_image","twitter_title":"Impersonalizar usuarios o como integrar SharePoint con otros sistemas - Desarrollando sobre SharePoint","twitter_description":"En este post vamos a ver un ejemplo practico de como podemos una WebAPI 2 con nuestro SharePoint.","twitter_misc":{"Escrito por":"Adri\u00e1n D\u00edaz","Tiempo de lectura":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/impersonalizar-usuarios-o-como-integrar-sharepoint-con-otros-sistemas\/#article","isPartOf":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/impersonalizar-usuarios-o-como-integrar-sharepoint-con-otros-sistemas\/"},"author":{"name":"Adri\u00e1n D\u00edaz","@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#\/schema\/person\/c9bfaede1bfba9564bb7f500788782bb"},"headline":"Impersonalizar usuarios o como integrar SharePoint con otros sistemas","datePublished":"2014-06-03T09:00:44+00:00","dateModified":"2014-06-05T11:42:34+00:00","mainEntityOfPage":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/impersonalizar-usuarios-o-como-integrar-sharepoint-con-otros-sistemas\/"},"wordCount":966,"commentCount":0,"keywords":["integracion","sharepoint","web api"],"articleSection":["buenas practicas"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/impersonalizar-usuarios-o-como-integrar-sharepoint-con-otros-sistemas\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/impersonalizar-usuarios-o-como-integrar-sharepoint-con-otros-sistemas\/","url":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/impersonalizar-usuarios-o-como-integrar-sharepoint-con-otros-sistemas\/","name":"Impersonalizar usuarios o como integrar SharePoint con otros sistemas - Desarrollando sobre SharePoint","isPartOf":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#website"},"datePublished":"2014-06-03T09:00:44+00:00","dateModified":"2014-06-05T11:42:34+00:00","author":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#\/schema\/person\/c9bfaede1bfba9564bb7f500788782bb"},"description":"En este post vamos a ver un ejemplo practico de como podemos una WebAPI 2 con nuestro SharePoint.","inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/impersonalizar-usuarios-o-como-integrar-sharepoint-con-otros-sistemas\/"]}]},{"@type":"WebSite","@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#website","url":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/","name":"Desarrollando sobre SharePoint","description":"Arquitectura, buenas pr\u00e1cticas y desarrollo sobre la nueva herramienta de Microsoft SharePoint 2016","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#\/schema\/person\/c9bfaede1bfba9564bb7f500788782bb","name":"Adri\u00e1n D\u00edaz","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g","caption":"Adri\u00e1n D\u00edaz"},"description":"Adri\u00e1n D\u00edaz es Ingeniero Inform\u00e1tico por la Universidad Polit\u00e9cnica de Valencia. Es MVP de Microsoft en la categor\u00eda Office Development desde 2014, MCPD de SharePoint 2010, Microsoft Active Profesional y Microsoft Comunity Contribuitor 2012. Cofundador del grupo de usuarios de SharePoint de Levante LevaPoint. Lleva desarrollando con tecnolog\u00edas Microsoft m\u00e1s de 10 a\u00f1os y desde hace 3 a\u00f1os est\u00e1 centrado en el desarrollo sobre SharePoint. Actualmente es Software &amp; Cloud Architect Lead en ENCAMINA.","url":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/author\/desarrollandosobresharepoint\/"}]}},"_links":{"self":[{"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/posts\/1293","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/comments?post=1293"}],"version-history":[{"count":0,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/posts\/1293\/revisions"}],"wp:attachment":[{"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/media?parent=1293"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/categories?post=1293"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/tags?post=1293"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}