Compartir a través de


Restringir o habilitar el acceso a una aplicación de servicio en SharePoint Server

SE APLICA A:yes-img-132013 yes-img-162016 yes-img-192019 yes-img-seSubscription Edition no-img-sopSharePoint en Microsoft 365

En SharePoint Server, se puede restringir el acceso a una aplicación de servicio para que solo esté disponible 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. No obstante, se puede restringir el acceso a una aplicación de servicio si se hospedan varios clientes en la misma granja y se 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.

Restringir el acceso a una aplicación de servicio

Para restringir el acceso a una aplicación de servicio, quite cuentas de servicio de la misma. A la inversa, para habilitar el acceso a una aplicación de servicio, agregue cuentas de servicio a la misma. Puede llevar a cabo estas tareas con Administración central o con PowerShell.

Para restringir el acceso a una aplicación de servicio, haga lo siguiente:

  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.

Los procedimientos en este artículo describen cómo restringir o restaurar el acceso a una aplicación de servicio. No obstante, 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 con Administración central describe explícitamente cómo agregar el identificador de la granja de servidores local a la aplicación de servicio. Puede usar el mismo procedimiento para agregar cualquier otra cuenta de servicio a una aplicación de servicio. Para ello, proporcione 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 a través de 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.

Precaución

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.

Restringir el acceso a una aplicación de servicio mediante Administración central

Para restringir el acceso a una aplicación de servicio con el sitio web de Administración central de SharePoint, haga lo siguiente:

  1. Recuperar 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.

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

  1. Compruebe si la cuenta de usuario que lleva a cabo este procedimiento pertenece al grupo de 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 los servicios y el componente de la aplicación web en la primera lista desplegable.

    La cuenta de servicio aparece 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 hacer 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 que la cuenta de usuario que está realizando 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.

    Aparecerá la cinta.

  4. En el grupo Compartir de la cinta, 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 luego haga clic en la casilla 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 aparece 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 finalizar la operación sin hacer cambios.

Siga este procedimiento para conceder y quitar permisos de cualquier cuenta de servicio. Para restaurar el id. de la granja de servidores local a la aplicación de servicio con CentralAdmin_2nd, se necesita un paso adicional que no se usa en otras cuentas de servicio. Para obtener información sobre cómo hacerlo, consulte Restauración del acceso de toda la granja a una aplicación de servicio más adelante en este artículo.

Restringir el acceso a una aplicación de servicio con Microsoft PowerShell

Todos los procedimientos de esta sección suponen que tiene los permisos adecuados.

El proceso que restringe el acceso a una aplicación de servicio con PowerShell es más complejo que con Administración central. En PowerShell, se usarán algunos procedimientos para recopilar y almacenar información que se aplicará en los procedimientos posteriores.

Cuando haya iniciado PowerShell, 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.

Para iniciar una sesión de PowerShell de Microsoft

  1. Compruebe que cumple con las pertenencias siguientes:

    • Rol fijo de servidor securityadmin en la instancia de SQL Server.

    • Rol fijo de base de datos db_owner en todas las bases de datos que se van a cargar.

    • Grupo de servidores en el servidor en el que se van a ejecutar los cmdlets de PowerShell.

    Un administrador puede usar el cmdlet Add-SPShellAdmin para conceder permisos de uso para los cmdlets de SharePoint Server.

    Nota:

    Si no dispone de permisos, póngase en contacto con el administrador para la instalación o con el administrador de SQL Server para solicitarlos. Para más información sobre permisos de PowerShell, vea Add-SPShellAdmin.

  2. Inicie el Shell de administración de SharePoint.

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

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

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

    Dónde <http://WebApplication> está la dirección URL de la aplicación web.

    El nombre de la cuenta de servicio de la aplicación web aparece 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 <ServiceAccount> es el nombre de usuario (en forma de jane@contoso.com o contoso\jane) que se recuperó mediante la ejecución del comando anterior. 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 almacenará el objeto de seguridad de la aplicación de servicio.

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

    Donde <ServiceApplicationDisplayName> 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 más de una aplicación de servicio que tiene el mismo nombre para mostrar (no se recomienda esto), 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.

    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> son 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.

    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 granja de servidores local (que se almacena 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 de la aplicación de servicio está 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 con Administración central o con los comandos de PowerShell. No obstante, debe usar PowerShell para obtener el identificador de la granja de servidores local.

Para recuperar el identificador de la granja de servidores local con PowerShell

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

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

    $farmID = Get-SPFarm | select id
    

    Si desea restaurar el acceso a toda la granja de servidores con 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 con PowerShell, escriba los siguientes comandos adicionales en el símbolo del sistema de PowerShell. La información recuperada se usará en el siguiente procedimiento.

    $claimProvider = (Get-SPClaimProvider System).ClaimProvider 
    $principal = New-SPClaimsPrincipal -ClaimType "http://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 granja de servidores local que recuperó 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 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 tarea sin hacer cambios.

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

  1. Este procedimiento se inicia después del paso 2 del procedimiento Para recuperar el identificador de 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 $Principal -Rights "Full Control"
    Set-SPServiceApplicationSecurity $spguid -ObjectSecurity $security
    

    Donde <ServiceApplicationDisplayName> 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 más de una aplicación de servicio que tiene el mismo nombre para mostrar (no se recomienda esto), 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 Microsoft PowerShell

En el ejemplo siguiente, el administrador quiere restringir el acceso a la aplicación de servicio "Contoso BDC" a la http://contoso/hawaii aplicación web, que administra la cuenta de servicio "contoso\jane". Al agregar "contoso\jane" y quitar la cuenta de servicio de granja de servidores local de la aplicación de servicio, "Contoso BDC" está restringido solo a las 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 
$farmappId = New-SPClaimsPrincipal -ClaimType "http://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 $farmappId
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 
$farmappId = New-SPClaimsPrincipal -ClaimType "http://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 $farmappId -Rights "Full Control"
Set-SPServiceApplicationSecurity $spguid -ObjectSecurity $security
(Get-SPServiceApplicationSecurity $spguid).AccessRules

Consulte también

Conceptos

Agregar o quitar conexiones de aplicaciones de servicio de una aplicación web en SharePoint Server

Configurar la seguridad y los permisos de cuenta en SharePoint Server 2016 y 2019

Otros recursos

Crear una aplicación web en SharePoint Server

Get-SPWebApplication

New-SPClaimsPrincipal

Get-SPServiceApplication

Get-SPServiceApplicationSecurity

Grant-SPObjectSecurity

Set-SPServiceApplicationSecurity

Get-SPFarm

Get-SPClaimProvider