Restringir o habilitar el acceso a una aplicación de servicio en SharePoint Server
SE APLICA A:2013 2016 2019 Subscription Edition SharePoint 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:
Agregue una cuenta de servicio específica a la aplicación de servicio.
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:
Recuperar la cuenta de servicio de la aplicación web.
Agregue la cuenta de servicio de aplicación web a la aplicación de servicio.
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
Compruebe si la cuenta de usuario que lleva a cabo este procedimiento pertenece al grupo de administradores de la granja de servidores de SharePoint.
En la página principal de Administración central, en la sección Seguridad, haga clic en Configurar cuentas de servicio.
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.
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
Compruebe que la cuenta de usuario que está realizando este procedimiento pertenece al grupo Administradores de la granja de servidores de SharePoint.
En la página principal de Administración central, en la sección Administración de aplicaciones, haga clic en Administrar aplicaciones de servicio.
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.
En el grupo Compartir de la cinta, haga clic en Permisos.
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.
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.
En el panel central, haga clic en Conjunto de servidores local y, a continuación, haga clic en Quitar.
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:
Recuperar el identificador de la granja de servidores local.
Recuperar la cuenta de servicio de la aplicación web.
Crear una nueva entidad de seguridad para notificaciones que contenga la cuenta de servicio de la aplicación web.
Recuperar el objeto de seguridad de la aplicación de servicio.
Agregar la cuenta de servicio de la aplicación web al objeto de seguridad de la aplicación de servicio.
Quitar el identificador de la granja de servidores local del objeto de seguridad de la aplicación de servicio.
Asignar el objeto de seguridad actualizado a la aplicación de servicio.
Mostrar y revisar los permisos actualizados.
Para iniciar una sesión de PowerShell de Microsoft
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.
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
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.
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
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
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
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
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
Este procedimiento empieza después del paso 4 del procedimiento Para iniciar una sesión de Microsoft PowerShell.
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
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.
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.
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.
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
Este procedimiento se inicia después del paso 2 del procedimiento Para recuperar el identificador de granja de servidores local mediante Windows PowerShell.
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-SPServiceApplicationSecurity