Restringir o permitir el acceso a una aplicación de servicio (SharePoint Server 2010)

 

Se aplica a: SharePoint Foundation 2010, SharePoint Server 2010

Última modificación del tema: 2016-11-30

En Microsoft SharePoint Server 2010, puede restringir el acceso a una aplicación de servicio para que esta aplicación esté disponible solamente para las aplicaciones web especificadas.

De manera predeterminada, todas las aplicaciones de servicio de la granja de servidores local están disponibles para todas las aplicaciones web de la granja de servidores local. Sin embargo, puede restringir el acceso a una aplicación de servicio para que esté disponible solamente para las aplicaciones web especificadas. Esto puede resultar una estrategia útil si hospeda varios clientes en la misma granja de servidores y desea aislar las aplicaciones de servicio de un cliente de la aplicación web de otro cliente.

Si restringe el acceso a una aplicación de servicio y decide más tarde que desea que esté disponible para toda la granja de servidores, puede quitar la restricción.

En este artículo se describe el procedimiento para restringir el acceso a una aplicación de servicio mediante la adición y eliminación de cuentas de servicio. También se explica cómo restablecer el acceso local a toda la granja de servidores para una aplicación de servicio.

Importante

Se recomienda encarecidamente planear la infraestructura de servicios y seguridad antes de restringir el acceso a las aplicaciones de servicio.

Para obtener información acerca de cómo planear la arquitectura de servicios en SharePoint Server 2010, vea los siguientes artículos:

En este artículo:

Restricción del acceso a una aplicación de servicio

Puede restringir el acceso a una aplicación de servicio si quita cuentas de servicio de la misma. Por el contrario, puede puede permitir el acceso a una aplicación de servicio si agrega cuentas de servicio a la misma. Puede realizar estas tareas mediante la Administración central o mediante Windows PowerShell 2,0.

Para restringir el acceso a una aplicación de servicio, debe realizar las siguientes tareas:

  1. Agregue una cuenta de servicio específica a la aplicación de servicio.

  2. Quite el identificador de la granja de servidores local de la aplicación de servicio.

Nota

Los procedimientos en este artículo describen cómo restringir o restaurar el acceso a una aplicación de servicio. Sin embargo, puede seguir los pasos proporcionados en los procedimientos para agregar cuentas de servicio en cualquier aplicación de servicio o para quitar cuentas de servicio de cualquier aplicación de servicio.
Por ejemplo, el procedimiento Para restaurar el acceso de toda la granja de servidores local a una aplicación de servicio mediante Administración central describe explícitamente cómo agregar el identificador de la granja de servidores local a la aplicación de servicio. Sin embargo, puede usar el mismo procedimiento para agregar cualquier otra cuenta de servicio a una aplicación de servicio. Para ello, puede proporcionar la cuenta de servicio adecuada en lugar del identificador de la granja de servidores local.

Dado que, de forma predeterminada, el identificador de la granja de servidores local proporciona acceso en toda la granja de servidores a la aplicación de servicio, resulta redundante conceder también permisos de aplicación web local a una aplicación de servicio a menos que también se quite el identificador de la granja de servidores local.

Para conceder permisos a una aplicación de servicio, debe recuperar y suministrar la cuenta de servicio adecuada. Para una aplicación web, esta cuenta se conoce también como cuenta de identidad del grupo de aplicaciones.

Después de conceder permisos a una cuenta de servicio y quitar el identificador de la granja de servidores local de una aplicación de servicio, solo las aplicaciones web que se administran mediante la cuenta de servicio asignada pueden tener acceso a la aplicación de servicio. Puede asignar varias aplicaciones web (que tengan diferentes cuentas de servicio de administración) a la misma aplicación de servicio si repite estos pasos y agrega las diversas cuentas de servicio de aplicación web a la aplicación de servicio.

Advertencia

Si quita el identificador de la granja de servidores local de una aplicación de servicio y no asigna otra cuenta de servicio a dicha aplicación de servicio, la aplicación de servicio deja de estar disponible para todas las aplicaciones web.

En esta sección:

  • Restricción del acceso a una aplicación de servicio mediante Administración central

  • Restricción del acceso a una aplicación de servicio mediante Windows PowerShell

Restricción del acceso a una aplicación de servicio mediante Administración central

Para restringir el acceso a una aplicación de servicio mediante Administración central, debe llevar a cabo los siguientes pasos:

  1. Recupere la cuenta de servicio de la aplicación web.

  2. Agregue la cuenta de servicio de aplicación web a la aplicación de servicio.

  3. Quite el identificador de la granja de servidores local de la aplicación de servicio.

Procedimientos en esta sección:

  • Para recuperar una cuenta de servicio de aplicación web mediante Administración central

  • Para conceder y quitar permisos para cuentas de servicio a fin de que tengan acceso a una aplicación de servicio mediante Administración central

Para recuperar una cuenta de servicio de aplicación web mediante Administración central

  1. Compruebe si la cuenta de usuario que realiza este procedimiento pertenece al grupo Administradores de la granja de servidores de SharePoint.

  2. En la página principal de Administración central, en la sección Seguridad, haga clic en Configurar cuentas de servicio.

  3. En la página Cuentas de servicio, seleccione el nombre de la aplicación web en la primera lista desplegable.

    La cuenta de servicio se muestra en la lista Seleccione una cuenta para este componente. Registre el nombre de la cuenta de servicio ya que lo usará en el siguiente procedimiento.

  4. Haga clic en Cancelar para salir de la página Cuentas de servicio sin realizar ningún cambio.

Para conceder y quitar permisos para cuentas de servicio a fin de que tengan acceso a una aplicación de servicio mediante Administración central

  1. Compruebe si la cuenta de usuario que realiza este procedimiento pertenece al grupo Administradores de la granja de servidores de SharePoint.

  2. En la página principal de Administración central, en la sección Administración de aplicaciones, haga clic en Administrar aplicaciones de servicio.

  3. En la página Administrar aplicaciones de servicio, haga clic en la fila que contiene la aplicación de servicio a la que desea asignar permisos. Se mostrará la cinta de opciones.

  4. En la cinta de opciones, haga clic en Permisos.

  5. En el cuadro de diálogo Permisos de conexión, escriba el nombre de la cuenta de servicio que recuperó en el procedimiento anterior y, a continuación, haga clic en Agregar.

  6. Asegúrese de que el nombre de la cuenta de servicio que se acaba de agregar esté seleccionado en el panel central y, a continuación, haga clic en la casilla de verificación correspondiente del panel inferior para proporcionar el nivel de permisos necesario.

  7. En el panel central, haga clic en Conjunto de servidores local y, a continuación, haga clic en Quitar.

  8. Compruebe que en la página Permisos de conexión solo se muestra la cuenta de servicio a la que desea que la aplicación de servicio tenga acceso, y que la cuenta de servicio tenga los permisos necesarios en la aplicación de servicio. Haga clic en Aceptar para cambiar los permisos o haga clic en Cancelar para terminar la operación sin realizar cambios.

Puede conceder y quitar permisos para cualquier cuenta de servicio mediante este procedimiento.

Nota

La restauración del identificador de la granja de servidores local para la aplicación de servicio mediante Administración central requiere un paso adicional que no se aplica a otras cuentas de servicio. Para obtener más información acerca de este procedimiento, vea Restauración del acceso de nivel de granja de servidores para una aplicación de servicio más adelante en este artículo.

Restricción del acceso a una aplicación de servicio mediante Windows PowerShell

En todos los procedimientos incluidos en esta sección se da por supuesto que tiene los permisos correspondientes y que ha abierto la ventana del símbolo del sistema de Windows PowerShell 2,0, como se describe en el procedimiento Para iniciar una sesión de Windows PowerShell más adelante en esta sección.

El proceso para restringir el acceso a una aplicación de servicio mediante Windows PowerShell 2,0 es más complejo que realizar la misma tarea mediante Administración central. En Windows PowerShell 2,0, se usarán algunos procedimientos para recopilar y almacenar información que se aplicará en los procedimientos posteriores.

Después de iniciar Windows PowerShell 2,0, los pasos restantes para restringir el acceso a una aplicación de servicio son los siguientes:

  1. Recuperar el identificador de la granja de servidores local.

  2. Recuperar la cuenta de servicio de la aplicación web.

  3. Crear una nueva entidad de seguridad para notificaciones que contenga la cuenta de servicio de la aplicación web.

  4. Recuperar el objeto de seguridad de la aplicación de servicio.

  5. Agregar la cuenta de servicio de la aplicación web al objeto de seguridad de la aplicación de servicio.

  6. Quitar el identificador de la granja de servidores local del objeto de seguridad de la aplicación de servicio.

  7. Asignar el objeto de seguridad actualizado a la aplicación de servicio.

  8. Mostrar y revisar los permisos actualizados.

En esta sección:

  • Para iniciar una sesión de Windows PowerShell

  • Para recuperar el identificador de la granja de servidores local mediante Windows PowerShell

  • Para recuperar la cuenta de servicio de una aplicación web y crear una nueva entidad de seguridad para notificaciones mediante Windows PowerShell

  • Para recuperar el objeto de seguridad de la aplicación de servicio

  • Para actualizar el objeto de seguridad de la aplicación de servicio con los permisos preferidos

Para iniciar una sesión de Windows PowerShell

  1. Compruebe si cumple los siguientes requisitos mínimos: ser miembro del rol SharePoint_Shell_Access en la base de datos de configuración y miembro del grupo local WSS_ADMIN_WPG en el equipo en el que está instalado SharePoint Server 2010.

  2. En el menú Inicio, haga clic en Todos los programas.

  3. Haga clic en Productos de Microsoft SharePoint 2010.

  4. Haga clic en Consola de administración de SharePoint 2010.

Para recuperar la cuenta de servicio de una aplicación web y crear una nueva entidad de seguridad para notificaciones mediante Windows PowerShell

  1. En el símbolo del sistema de Windows PowerShell 2,0, escriba el siguiente comando para recuperar la cuenta de servicio (es decir, la cuenta de identidad del grupo de aplicaciones) de una aplicación web:

    $webapp = Get-SPWebApplication <http://WebApplication>
    $webApp.ApplicationPool.UserName
    

    Donde <http://aplicaciónWeb> es la dirección URL de la aplicación web.

    El nombre de la cuenta de servicio de la aplicación web se muestra en el símbolo del sistema.

  2. Para crear una nueva entidad de seguridad de notificaciones, escriba el siguiente comando:

    $principal = New-SPClaimsPrincipal <ServiceAccount> -IdentityType WindowsSamAccountName
    

    Donde <cuentaDeServicio> es el nombre de usuario (con el formato jane@contoso.com o contoso\jane) recuperado al ejecutar el comando previo. La variable $principal contiene la nueva entidad de seguridad para notificaciones.

Para recuperar el objeto de seguridad de la aplicación de servicio

  1. Para recuperar el objeto de seguridad de la aplicación de servicio, escriba los siguientes comandos. La variable $security almacena el objeto de seguridad de la aplicación de servicio.

    $spapp = Get-SPServiceApplication -Name "<ServiceApplicationDisplayName>"
    $spguid = $spapp.id
    $security = Get-SPServiceApplicationSecurity $spguid
    

    Donde <nombreParaMostraDeAplicaciónDeServicio> es el nombre para mostrar de la aplicación de servicio.

    Importante

    Debe inlcuir el nombre para mostrar entre comillas y este nombre debe coincidir exactamente con el nombre para mostrar de la aplicación de servicio. Esto incluye el uso de mayúsculas. Si tiene varias aplicaciones de servicio con el mismo nombre para mostrar (no se recomienda), puede ejecutar el cmdlet Get-SPServiceApplication sin argumentos para ver todas las aplicaciones de servicio. A continuación, puede identificar la aplicación de servicio directamente por su GUID. Por ejemplo:
    Get-SpServiceApplication
    Se muestran todas las aplicaciones de servicio.
    $spapp = Get-SpserviceApplication -Identity <GUID>
    $spguid = $spapp.id
    Donde <GUID> es el GUID de la aplicación de servicio para la que desea actualizar los permisos.

Para actualizar el objeto de seguridad de la aplicación de servicio con los permisos preferidos

  1. El primer paso para actualizar el objeto de seguridad de la aplicación de servicio es agregar la nueva entidad de seguridad para notificaciones $principal al objeto de seguridad de la aplicación de servicio $security. Para ello, escriba el siguiente comando:

    Grant-SPObjectSecurity $security $principal -Rights "<Rights>"
    

    Donde <Derechos> indica los permisos que desea conceder. Suele ser un nivel de control total. Los permisos disponibles pueden variar de una aplicación de servicio a otra.

    Sugerencia

    Si no desea conceder permisos de control total y no sabe qué permisos se pueden conceder para la aplicación de servicio, puede ejecutar los siguientes comandos para que devuelvan las cadenas de los permisos disponibles:
    $rightslist = Get-SPServiceApplicationSecurity $spapp
    $rightslist.NamedAccessRights

  2. Para quitar el identificador de la granja de servidores local (almacenado en la variable $farmID) del objeto de seguridad de la aplicación de servicio $security, escriba el siguiente comando:

    Revoke-SPObjectSecurity $security $farmID 
    
  3. Para asignar el objeto de seguridad $security actualizado a la aplicación de servicio y confirmar que el objeto de seguridad para la aplicación de servicio se ha actualizado correctamente, escriba los siguientes comandos:

    Set-SPServiceApplicationSecurity $spapp -ObjectSecurity $security
    (Get-SPServiceApplicationSecurity $spapp).AccessRules
    

Puede agregar o quitar cualquier cuenta de servicio para una aplicación de servicio mediante estos procedimientos.

Restauración del acceso a toda la granja de servidores para una aplicación de servicio

Para restaurar el acceso a toda la granja de servidores para una aplicación de servicio, agregue el identificador de la granja de servidores local a la aplicación de servicio. Esto se puede hacer mediante Administración central o mediante los comandos de Windows PowerShell 2,0. No obstante, debe usar Windows PowerShell 2,0 para obtener el identificador de la granja de servidores local.

En esta sección:

  • Para recuperar el identificador de la granja de servidores local mediante Windows PowerShell

  • Para restaurar el acceso a toda la granja de servidores local para una aplicación de servicio mediante Administración central

  • Para restaurar el acceso a toda la granja de servidores local para una aplicación de servicio mediante Windows PowerShell

Para recuperar el identificador de la granja de servidores local mediante Windows PowerShell

  1. Este procedimiento comienza después del paso 4 del procedimiento Para iniciar una sesión de Windows PowerShell.

  2. El siguiente comando recupera el identificador de la granja de servidores local, lo almacena en la variable $farmID y lo muestra en el símbolo del sistema:

    $farmID = Get-SPFarm | select id
    

    Si desea restaurar el acceso a toda la granja de servidores mediante Administración central, copie este valor en el Portapapeles para usarlo en el siguiente procedimiento.

    Si desea restaurar el acceso a toda la granja de servidores para la aplicación de servicio mediante Windows PowerShell 2,0, escriba los siguientes comandos adicionales en el símbolo del sistema de Windows PowerShell 2,0. La información recuperada se usará en el siguiente procedimiento.

    $claimProvider = (Get-SPClaimProvider System).ClaimProvider 
    $principal = New-SPClaimsPrincipal -ClaimType "https://schemas.microsoft.com/sharepoint/2009/08/claims/farmid" -ClaimProvider $claimProvider -ClaimValue $farmid
    

Para restaurar el acceso a toda la granja de servidores local para una aplicación de servicio mediante Administración central

  1. Realice los pasos del 1 al 3 del procedimiento Para conceder y quitar permisos para el acceso de las cuentas de servicio a una aplicación de servicio mediante Administración central.

  2. En el cuadro de diálogo Permisos de conexión, copie el identificador de la granja de servidores local recuperado en el procedimiento anterior y, a continuación, haga clic en Agregar.

  3. Asegúrese de que el identificador de la granja de servidores local esté seleccionado en el panel central. Haga clic en la casilla de verificación Control total en el panel inferior.

  4. Haga clic en Aceptar para restaurar el acceso a toda la granja de servidores para la aplicación de servicio o bien haga clic en Cancelar para finalizar la operación sin hacer cambios.

Para restaurar el acceso a toda la granja de servidores local para una aplicación de servicio mediante Windows PowerShell

  1. Este procedimiento comienza después del paso 2 del procedimiento Para recuperar el identificador de la granja de servidores local mediante Windows PowerShell .

  2. Para restaurar el identificador de la granja de servidores local recuperado para el objeto de seguridad de la aplicación de servicio $security, escriba los siguientes comandos:

    $spapp = Get-SPServiceApplication -Name "<ServiceApplicationDisplayName>"
    $spguid = $spapp.id
    $security = Get-SPServiceApplicationSecurity $spguid
    Grant-SPObjectSecurity -Identity $security -Principal $farmID -Rights "Full Control"
    Set-SPServiceApplicationSecurity $spguid -ObjectSecurity $security
    

    Donde <nombreParaMostraDeAplicaciónDeServicio> es el nombre para mostrar de la aplicación de servicio.

    Importante

    Debe incluir el nombre para mostrar entre comillas y este nombre debe coincidir exactamente con el nombre para mostrar de la aplicación de servicio. Esto incluye el uso de mayúsculas. Si tiene varias aplicaciones de servicio con el mismo nombre para mostrar (no se recomienda), puede ejecutar el cmdlet Get-SPServiceApplication sin argumentos para ver todas las aplicaciones de servicio. A continuación, puede identificar la aplicación de servicio directamente por su GUID.

Ejemplos de código de Windows PowerShell

En el siguiente ejemplo, el administrador desea restringir el acceso a la aplicación de servicio "Contoso BDC" para la aplicación web http://contoso/hawaii, administrada por la cuenta de servicio "contoso\jane". Al agregar "contoso\jane" y quitar la cuenta de servicio de la granja de servidores local de la aplicación de servicio, "Contoso BDC" se restringe únicamente a aquellas aplicaciones web administradas por la cuenta de servicio "contoso\jane" (en este caso, http://contoso/hawaii).

$farmid = Get-SPFarm | select id
$claimProvider = (Get-SPClaimProvider System).ClaimProvider 
$principal = New-SPClaimsPrincipal -ClaimType "https://schemas.microsoft.com/sharepoint/2009/08/claims/farmid" -ClaimProvider $claimProvider -ClaimValue $farmid 
webapp = get-spwebapplication http://contoso
$webapp.applicationpool
$principal = New-SPClaimsPrincipal contoso/jane -IdentityType WindowsSamAccountName
$spapp = Get-SPServiceApplication -Name "Contoso BDC"
$spguid = $spapp.id
$security = Get-SPServiceApplicationSecurity $spguid
Grant-SPObjectSecurity $security $principal -Rights "Full Control"
Revoke-SPObjectSecurity $security $farmaccount
Set-SPServiceApplicationSecurity $spguid -ObjectSecurity $security
(Get-SPServiceApplicationSecurity $spguid).AccessRules

En el siguiente ejemplo, el acceso a la aplicación de servicio "Contoso BDC" se restaura para todas las aplicaciones web de la granja de servidores local.

$farmid = Get-SPFarm | select id
$claimProvider = (Get-SPClaimProvider System).ClaimProvider 
$principal = New-SPClaimsPrincipal -ClaimType "https://schemas.microsoft.com/sharepoint/2009/08/claims/farmid" -ClaimProvider $claimProvider -ClaimValue $farmid 
$spapp = Get-SPServiceApplication -Name "Contoso BDC"
$spguid = $spapp.id
$security = Get-SPServiceApplicationSecurity $spguid
Grant-SPObjectSecurity -Identity $security -Principal $farmaccount -Rights "Full Control"
Set-SPServiceApplicationSecurity $spguid -ObjectSecurity $security
(Get-SPServiceApplicationSecurity $spguid).AccessRules

See Also

Reference

Get-SPWebApplication
New-SPClaimsPrincipal
Get-SPServiceApplication
Get-SPServiceApplicationSecurity
Grant-SPObjectSecurity
Revoke-SPObjectSecurity
Set-SPServiceApplicationSecurity
Get-SPFarm
Get-SPClaimProvider

Concepts

Configuración de la autenticación de notificaciones (SharePoint Server 2010)
Adición o eliminación de una conexión de aplicación de servicio a una aplicación web (SharePoint Server 2010)

Other Resources

Adición o eliminación de una conexión de aplicación de servicio en una aplicación web (SharePoint Foundation 2010)