GuilleSQL :: Microsoft SQL Server, SSIS, y más !!

Configurar el App Management Service en SharePoint 2013 On-Premise


SharePoint 2013 ofrece un nuevo modelo de aplicaciones conocido como Apps, que complementa a las ya existentes Soluciones de Granja (Farm Solutions) y Soluciones Sandboxed (Sandboxed Solutions). El presente artículo describe la configuración necesaria a realizar en nuestro SharePoint 2013 On-Premise para poder poner el marcha las Apps, que va desde configuraciones en DNS hasta varias configuración en SharePoint 2013.

Junto a las ya conocidas Soluciones de Granja (Farm Solutions) y Soluciones Sandboxed (Sandboxed Solutions), en SharePoint 2013 tenemos disponible un nuevo modelo de desarrollo de aplicaciones para SharePoint: podemos desarrollar Apps.

Las Apps son desarrollos que pueden publicarse en el Market de Microsoft (Office Store), de tal modo que a través de dicho Market, los usuarios puedan descargarse nuestra Aplicación para hacerla disponible y desplegarla en sus Sites, de una forma muy sencilla.

Al acceder a una App publicada en un Site de SharePoint 2013, si comprobamos la URL utilizada por dicha App, podremos observar que se trata de una URL distinta a la URL del Site. Por ejemplo, si nuestro Site es http://intranet.guillesql.local, nuestra App podría estar hospedada bajo http://prefix-apphash.apps.guillesql.local (es decir, utilizando un subdominio DNS) o quizás podría estar hospedada bajo http://prefix-apphash.guilleapps.local (es decir, bajo un dominio completamente distinto). En cualquiera de los casos, nuestra App estará hospedada bajo un dominio distinto al del Site (sea un subdominio o un dominio completamente distinto), para lo que suele utilizarse Nombres DNS Wildcard.

Debemos tener en cuenta los siguientes detalles cara a elegir qué dominio deseamos utilizar para hospedar nuestras Apps:

  • Utilizar un dominio completamente distinto al utilizando por SharePoint, en lugar de utilizar un subdominio. Se trata de una recomendación de seguridad, ya que al compartir el mismo dominio raíz, un código malicioso que se ejecute en la App o en el propio Site, podría acceder a las Cookies de cualquier Sitio Web o Aplicación existente bajo el mismo dominio, para leerlas o incluso modificarlas. Esto sumado al Cross-Site Scripting (XSS), hace que sea más recomendable la utilización de un dominio completamente diferente.
  • Es recomendable que el dominio que hospede nuestras Apps pertenezca a la zona Internet o Sitios Restringidos de Internet Explorer. Igualmente, es por motivos de seguridad, para garantizar un mayor aislamiento de nuestras Apps.

Descripción del escenario

Partimos de un entorno de desarrollo de SharePoint 2013 formado por un único servidor ejecutando Windows Server 2012 RTM, SQL Server 2012 RTM, Visual Studio 2012 RTM (incluyendo las Microsoft Office Developer Tools for Visual Studio 2012) y SharePoint 2013 RTM. Este servidor es miembro de un dominio Windows Server 2003 R2 SP2 (guillesql.local).

A nivel de SharePoint 2013, se ha realizado una configuración muy básica, creando una única Aplicación Web en el puerto 80 (con un único Site en su raíz) y configurando varios Servicios como el Secure Store Service.

A nivel de IIS, el Site de SharePoint que da servicio a nuestra Aplicación Web en el puerto 80, no está utilizando Host Headers. Este detalle es importante, ya que si dicho Site está configurado sólo para ser accedido utilizando Host Headers, cuando intentemos ejecutar una App de SharePoint 2013 nos encontraremos con un mensaje de error como el siguiente: Not Found. HTTP Error 404. The requested resource is not found.

A nivel de IIS, el Site de SharePoint que da servicio a nuestra Aplicación Web en el puerto 80, no está utilizando Host Headers. Este detalle es importante, ya que si dicho Site está configurado sólo para ser accedido utilizando Host Headers, cuando intentemos ejecutar una App de SharePoint 2013 nos encontraremos con un mensaje de error como el siguiente: Not Found. HTTP Error 404. The requested resource is not found

Por ello, en caso de tener múltiples Aplicaciones Web, si deseamos poder utilizar las Apps en todas ellas, una recomendación podría ser utilizar diferentes direcciones IP (una para cada Aplicación Web), de tal modo que cada Sitio Web de IIS pueda ser configurado para responder sólo a la dirección IP que le corresponde, evitando así la utilización de Host Headers.

Configuración de SharePoint 2013 para soportar las Apps

A continuación vamos a realizar las configuraciones necesarias para soportar el nuevo modelo de Apps en una Granja de SharePoint 2013 utilizada como entornos de pruebas y desarrollo. Básicamente deberemos realizar los siguientes pasos:

  • Realizar la configuración DNS necesaria, que básicamente se reducirá a la creación de un nombre o alias WildCard.
  • Arrancar los servicios App Management Service y Microsoft SharePoint Foundation Subscription Settings Service en SharePoint, por ejemplo desde la pantalla Services on Server de la Central Administration.
  • Configurar el Subscription Settings service application desde PowerShell (solo puede realizarse desde PowerShell), si no estaba realizado ya de antes.
  • Configurar el App Management Service Application (desde PowerShell o desde la Central Admin), si no estaba realizado ya de antes.
  • Configurar las URLs de las Apps (nombre de dominio y prefijo).
  • Configurar el App Catalog para nuestra Aplicación Web.

Lo primero que deberemos realizar es configurar un Nombre DNS Wildcard (Wildcard DNS Name). En nuestro caso de ejemplo, nuestra Granja de SharePoint responde a los nombres http://vmoss2013.guillesql.local y http://vmoss2013, por lo que crearemos un Nombre DNS Wildcard para *.guilleapps.local, tal y como se describe en el artículo Wildcard DNS Domain Names.

Comprobaremos que los siguientes servicios de Windows están arrancados, y en caso de estar parados los arrancaremos, para lo cual podemos utilizar la herramienta administrativa Services (es puro protocolo, ya que muy probablemente estarán arrancados, como estaba en mi caso de ejemplo):

  • SharePoint Administration (spadmin).
  • SharePoint Timer (sptimer).

Realizado esto, en la Central Administration, seleccionaremos la opción Manage Services on Server de la sección System Settings. Seguidamente, en la pantalla Services on Server, comprobaremos que están arrancados los siguientes servicios, y en caso de estar parados los arrancaremos:

  • App Management Service
  • Microsoft SharePoint Foundation Subscription Settings Service
Realizado esto, en la Central Administration, seleccionaremos la opción Manage Services on Server de la sección System Settings. Seguidamente, en la pantalla Services on Server, comprobaremos que están arrancados los siguientes servicios, y en caso de estar parados los arrancaremos: App Management Service y Microsoft SharePoint Foundation Subscription Settings Service

Si no lo hemos realizado antes, deberemos configurar el Subscription Settings service application, lo cual sólo puede realizarse desde PowerShell. En mi caso de ejemplo ejecuté las siguientes líneas de PowerShell desde la SharePoint 2013 Management Shell.

$account = Get-SPManagedAccount "GUILLESQL\MOSSSvc"
$appPoolSubSvc = New-SPServiceApplicationPool -Name SettingsServiceAppPool -Account $account
$appSubSvc = New-SPSubscriptionSettingsServiceApplication –ApplicationPool $appPoolSubSvc –Name SettingsServiceApp –DatabaseName SettingsService_DB
$proxySubSvc = New-SPSubscriptionSettingsServiceApplicationProxy –ServiceApplication $appSubSvc

Si no lo hemos realizado antes, deberemos configurar el Subscription Settings service application, lo cual sólo puede realizarse desde PowerShell

Si no lo hemos realizado antes, deberemos configurar el App Management service application, lo cual puede realizarse tanto desde la Central Administration como desde PowerShell. En mi caso de ejemplo ejecuté las siguientes líneas de PowerShell desde la SharePoint 2013 Management Shell.

$account = Get-SPManagedAccount "GUILLESQL\MOSSSvc"
$appPoolAppSvc = New-SPServiceApplicationPool -Name AppServiceAppPool -Account $account
$appAppSvc = New-SPAppManagementServiceApplication -ApplicationPool $appPoolAppSvc -Name AppServiceApp -DatabaseName AppService_DB
$proxyAppSvc = New-SPAppManagementServiceApplicationProxy -ServiceApplication $appAppSvc

Si no lo hemos realizado antes, deberemos configurar el App Management service application, lo cual puede realizarse tanto desde la Central Administration como desde PowerShell

Ahora deberemos configurar el patrón de URL que deseamos que utilicen las Apps en nuestra Granja, y además deberemos crear el App Catalog. Vamos a realizar estas configuraciones desde la Central Administration, para lo cual, utilizaremos la opción Apps del menú lateral izquierdo. Seguidamente, seleccionaremos la opción Configure App URLs.

Ahora deberemos configurar el patrón de URL que deseamos que utilicen las Apps en nuestra Granja, y además deberemos crear el App Catalog. Vamos a realizar estas configuraciones desde la Central Administration, para lo cual, utilizaremos la opción Apps del menú lateral izquierdo. Seguidamente, seleccionaremos la opción Configure App URLs

En la pantalla Configure App URLs deberemos especificar el nombre DNS que deseamos utilizar para nuestras Apps (ej: guillesapps.local), así como un prefijo (apps). Click OK para continuar.

En la pantalla Configure App URLs deberemos especificar el nombre DNS que deseamos utilizar para nuestras Apps (ej: guillesapps.local), así como un prefijo (apps)

Seguidamente, en el menú Apps de la Central Administration, seleccionaremos la opción Manage App Catalog. En la pantalla Manage App Catalog, seleccionaremos la Aplicación Web para la que deseamos configurar el App Catalag, seguidamente seleccionaremos la opción Create a new app catalog site, y click en OK.

Seguidamente, en el menú Apps de la Central Administration, seleccionaremos la opción Manage App Catalog. En la pantalla Manage App Catalog, seleccionaremos la Aplicación Web para la que deseamos configurar el App Catalag, seguidamente seleccionaremos la opción Create a new app catalog site, y click en OK

En la pantalla Create App Catalog, especificaremos los datos necesarios para su creación, en función de nuestras necesidades y requisitos. Una configuración típica en entornos de desarrollo, es especificar Everyone en la opción End Users.

En la pantalla Create App Catalog, especificaremos los datos necesarios para su creación, en función de nuestras necesidades y requisitos. Una configuración típica en entornos de desarrollo, es especificar Everyone en la opción End Users

Tras unos instantes, el App Catalog habrá sido creado con éxito.

Tras unos instantes, el App Catalog habrá sido creado con éxito.

Si lo deseamos, seguidamente en el menú Apps de la Central Administration, seleccionaremos la opción Configure Store Settings. En la pantalla SharePoint Store Setting, tenemos disponibles algunas opciones de configuración.

Si lo deseamos, seguidamente en el menú Apps de la Central Administration, seleccionaremos la opción Configure Store Settings. En la pantalla SharePoint Store Setting, tenemos disponibles algunas opciones de configuración.

Realizado todo esto, habremos finalizado una configuración básica para soportar el nuevo modelo de Apps en nuestra Granja de SharePoint On-Premise.

Despedida y Cierre

Hasta aquí llega el presente artículo. Ahora tenemos varias tareas por las que podemos continuar (aunque quedan fuera del alcance del presente artículo), como por ejemplo crear un Sitio de Desarrollador, subir Apps a nuestro Catálogo, etc.

Antes de finalizar quería aprovechar para incluir varios enlaces de interés, para quienes deseen ampliar información:

Poco más por hoy. Como siempre, confío que la lectura resulte de interés.

 


[Fecha del Artículo (UTC): 19/05/2013]
[Autor: GuilleSQL]



Escribir un Comentario

Para poder escribir un comentario, debe Iniciar Sesión con un usuario.

Si no dispone de un usuario, puede Registrarse y hacerse miembro.

Si dispone de un usuario, pero no recuerda sus credenciales de acceso, puede Restablecer su Contraseña.

Miembros de
Miembros de GITCA (Global IT Community Association)

Menu de Usuario
  Iniciar Sesión
  Registrarse
  Restablecer Contraseña
  Ventajas de Registrarse

Acerca de
  Contigo desde Oct 2007
  771 usuarios registrados
  86146 pageloads/mes
  Ranking Alexa 498160

Social Networks
Sigue a Portal GuilleSQL en Linkedin !!
Sigue a Portal GuilleSQL en Twitter !!



Archivo

Enero de 2017 (4)
Junio de 2016 (1)
Mayo de 2016 (2)
Abril de 2016 (2)
Septiembre de 2015 (2)
Agosto de 2015 (2)
Junio de 2015 (10)
Mayo de 2015 (4)
Abril de 2015 (8)
Marzo de 2015 (11)
Octubre de 2014 (3)
Septiembre de 2014 (7)
Agosto de 2014 (5)
Julio de 2014 (2)
Mayo de 2014 (4)
Abril de 2014 (4)
Marzo de 2014 (4)
Febrero de 2014 (1)
Enero de 2014 (5)
Diciembre de 2013 (8)
Noviembre de 2013 (2)
Octubre de 2013 (7)
Septiembre de 2013 (6)
Agosto de 2013 (1)
Julio de 2013 (6)
Junio de 2013 (11)
Mayo de 2013 (7)
Abril de 2013 (6)
Febrero de 2013 (5)
Enero de 2013 (7)
Diciembre de 2012 (12)
Noviembre de 2012 (13)
Octubre de 2012 (5)
Septiembre de 2012 (3)
Agosto de 2012 (6)
Julio de 2012 (4)
Junio de 2012 (1)
Mayo de 2012 (2)
Abril de 2012 (7)
Marzo de 2012 (16)
Febrero de 2012 (9)
Enero de 2012 (5)
Diciembre de 2011 (10)
Noviembre de 2011 (10)
Octubre de 2011 (4)
Septiembre de 2011 (5)
Agosto de 2011 (2)
Julio de 2011 (2)
Junio de 2011 (4)
Mayo de 2011 (2)
Abril de 2011 (6)
Marzo de 2011 (4)
Febrero de 2011 (10)
Enero de 2011 (5)
Diciembre de 2010 (6)
Noviembre de 2010 (4)
Octubre de 2010 (8)
Septiembre de 2010 (4)
Agosto de 2010 (1)
Julio de 2010 (3)
Mayo de 2010 (5)
Abril de 2010 (6)
Marzo de 2010 (8)
Febrero de 2010 (3)
Enero de 2010 (1)
Diciembre de 2009 (9)
Noviembre de 2009 (14)
Octubre de 2009 (2)
Septiembre de 2009 (8)
Agosto de 2009 (2)
Julio de 2009 (10)
Junio de 2009 (9)
Mayo de 2009 (10)
Abril de 2009 (9)
Marzo de 2009 (3)
Febrero de 2009 (2)
Enero de 2009 (3)
Noviembre de 2008 (2)
Octubre de 2008 (2)
Septiembre de 2008 (2)
Agosto de 2008 (5)
Julio de 2008 (5)
Junio de 2008 (1)
Mayo de 2008 (3)
Abril de 2008 (2)
Marzo de 2008 (2)
Febrero de 2008 (2)
Enero de 2008 (5)
Noviembre de 2007 (2)
Octubre de 2007 (2)






Esta información se proporciona "como está" sin garantías de ninguna clase, y no otorga ningún derecho.
This information is provided "AS IS" with no warranties, and confers no rights.

Copyright © 2007 GuilleSQL, todos los derechos reservados.
GuilleSQL.com y GuilleSQL.net son también parte de Portal GuilleSQL.

Visitas recibidas (Page Loads) en GuilleSQL (fuente: StatCounter):

screen resolution stats
Visitas