SharePoint 2010: Workaround para poder crear un tipo de contenido externo para Foundation con autenticación SQL!

Si queremos crear un tipo de contenido externo para integrar los datos de una BD SQL Server en SharePoint Foundation 2010, tendremos que recurrir a algunos trucos y workarounds ya que al contrario de lo que sucede con SharePoint Foundation 2013, en Foundation 2010 no contamos con la Aplicación de Servicio de Almacenamiento Seguro. A pesar de todo, nos la podemos arreglar para superar esta limitación en función del entorno dónde creemos los correspondientes tipos de contenido externos:

Creación de Tipos de Contenido Externo con SharePoint Designer 2010

El truco para poder hacer uso de la autenticación de SQL en un tipo de contenido externo creado con Designer 2010 pasa por seguir los pasos que se recogen en este estupendo workaround con algún ligero matiz:

  • El ligero matiz viene por la creación de la conexión al sistema externo: no es necesario que escojáis la opción de conexión “Conectar con identidad personalizada suplantada” que emula lo que sería una conexión haciendo uso del servicio de almacenamiento externo. En realidad, con coger la primera opción es más que suficiente.

image

  • A continuación, creamos el tipo de contenido externo en Designer siguiendo el clásico asistente que nos proporciona.
  • Cuando acabado de crear el tipo de contenido externo, guardamos todos los cambios y exportamos el modelo de conectividad a datos profesionales. Editamos el modelo, y reemplazamos la sección <LobSystemInstance> por lo siguiente:
   1: <LobSystemInstance Name="UsuariosECTConnection">

   2:   <Properties>

   3:     <Property Name="AuthenticationMode" Type="System.String">PassThrough</Property>

   4:     <Property Name="DatabaseAccessProvider" Type="System.String">SqlServer</Property>

   5:     <Property Name="RdbConnection Data Source" Type="System.String">Mi_Servidor</Property>

   6:     <Property Name="RdbConnection Initial Catalog" Type="System.String">Mi_BD</Property>

   7:     <Property Name="RdbConnection Integrated Security" Type="System.String">False</Property>

   8:     <Property Name="RdbConnection Pooling" Type="System.String">True</Property>

   9:     <Property Name="ShowInSearchUI" Type="System.String"></Property>           

  10: <Property Name="RdbConnection User ID" Type="System.String">Mi_Usuario</Property>

  11: <Property Name="RdbConnection Password" Type="System.String">Contraseña_Usuario</Property>        

  12:   </Properties>

  13: </LobSystemInstance>

  • ¿Cuáles son los cambios claves aquí? Pues los siguientes:
    • En primer lugar, el tipo de autenticación que tiene que ser PassThrough.
    • En segundo lugar, poner a falso la seguridad integrada.
    • Finalmente, añadir los parámetros del usuario y contraseña de la BD.
  • A continuación, desde la Administración Central de SharePoint 2010 y la administración de la aplicación de servicio de conectividad a datos profesionales eliminamos todo rastro del tipo de contenido externo creado con Designer. Cargamos el modelo haciendo uso de la opción de importación disponible en la cinta de esta aplicación de servicio.
  • A partir de aquí, a crear listas externas 🙂 y comprobar que la información se renderiza en las mismas sin problemas e independientemente del usuario que acceda al sitio.

image image

Creación de Tipos de Contenido Externo con Visual Studio

En este caso el proceso es mucho más sencillo ya que la cadena de conexión al sistema externo va con el propio modelo de conectividad a datos profesionales creado en Visual Studio, pero a la hora de poder desplegar el modelo creado hay que realizar una serie de workarounds qué están descritos en este post qué servía para Visual Studio 2010, pero que también aplican en Visual Studio 2012: http://blogs.msdn.com/b/vssharepointtoolsblog/archive/2010/04/02/deploy-a-bdc-model-project-to-sharepoint-foundation-2010-using-visual-studio-2010.aspx