Limitare o abilitare l'accesso a un'applicazione del servizio in SharePoint Server

 

**Si applica a:**SharePoint Foundation 2013, SharePoint Server 2013, SharePoint Server 2016

**Ultima modifica dell'argomento:**2018-03-02

Riepilogo: informazioni su come limitare l'accesso a un'applicazione del servizio aggiungendo e rimuovendo account di servizio e su come ripristinare l'accesso locale a livello di farm a un'applicazione di servizio in SharePoint Server 2016 e SharePoint 2013.

In SharePoint Server è possibile limitare l'accesso a un'applicazione di servizio, in modo che risulti disponibile solo alle applicazioni Web specificate.

Per impostazione predefinita, tutte le applicazioni del servizio nella farm locale sono disponibili per tutte le applicazioni Web nella farm locale. Se si ospitano più clienti nella stessa farm e si vuole isolare le applicazioni del servizio di un cliente dall'applicazione Web di un altro cliente, è consigliabile limitare l'accesso a un'applicazione del servizio.

Se si limita l'accesso a un'applicazione del servizio e in seguito si decide che si vuole renderla disponibile all'intera farm, sarà possibile rimuovere la limitazione.

Contenuto dell'articolo:

  • Limitare l'accesso a un'applicazione di servizio

  • Ripristinare l'accesso a livello di farm a un'applicazione di servizio

  • Esempi di codice di Microsoft PowerShell

Limitare l'accesso a un'applicazione di servizio

Per limitare l'accesso a un'applicazione del servizio, rimuovere account del servizio dall'applicazione del servizio. Per abilitare invece l'accesso a un'applicazione del servizio, aggiungere account del servizio all'applicazione del servizio. È possibile eseguire queste attività usando Amministrazione centrale o PowerShell.

Per limitare l'accesso a un'applicazione del servizio, completare le attività seguenti:

  1. Aggiungere un account del servizio specifico all'applicazione del servizio.

  2. Rimuovere l'ID della farm locale dall'applicazione del servizio.

Nota

Le procedure in questo articolo descrivono come limitare o ripristinare l'accesso a un'applicazione del servizio. È tuttavia possibile seguire i passaggi di queste procedure per aggiungere qualsiasi account del servizio a qualsiasi applicazione del servizio oppure per rimuovere qualsiasi account del servizio da qualsiasi applicazione del servizio.
Ad esempio, la procedura Per ripristinare l'accesso locale a livello di farm a un'applicazione del servizio usando Amministrazione centrale descrive in modo esplicito come aggiungere l'ID della farm locale a un'applicazione del servizio. È possibile usare la stessa procedura per aggiungere qualsiasi account del servizio a un'applicazione del servizio. Per ottenere questo risultato, specificare l'account del servizio appropriato invece dell'ID della farm locale.

Poiché l'ID della farm locale fornisce accesso a livello di farm all'applicazione del servizio per impostazione predefinita, è ridondante concedere anche autorizzazioni esplicite per l'applicazione Web locale a un'applicazione del servizio se non si rimuove anche l'ID della farm locale.

Per concedere autorizzazioni a un'applicazione del servizio, è necessario recuperare e specificare l'account del servizio appropriato. Per un'applicazione Web, questo account è definito anche identità del pool di applicazioni.

Dopo avere concesso autorizzazioni a un account del servizio e dopo avere rimosso l'ID della farm locale da un'applicazione del servizio, solo le applicazioni Web gestite dall'account del servizio assegnato potranno accedere all'applicazione del servizio. È possibile assegnare più applicazioni Web, con account del servizio di gestione diversi, alla stessa applicazione del servizio ripetendo queste procedure e aggiungendo i diversi account del servizio dell'applicazione Web all'applicazione del servizio.

Avviso

Se si rimuove l'ID della farm locale da un'applicazione del servizio e non si assegnano altri account del servizio a quella applicazione del servizio, l'applicazione del servizio non sarà più disponibile a tutte le applicazioni Web.

Contenuto della sezione:

  • Limitare l'accesso a un'applicazione del servizio tramite Amministrazione centrale

  • Limitare l'accesso a un'applicazione del servizio tramite Microsoft PowerShell

Limitare l'accesso a un'applicazione del servizio tramite Amministrazione centrale

Per limitare l'accesso a un'applicazione del servizio tramite il sito Web Amministrazione centrale SharePoint, eseguire le procedure seguenti:

  1. Recuperare l'account del servizio dell'applicazione Web.

  2. Aggiungere l'account del servizio dell'applicazione Web all'applicazione del servizio.

  3. Rimuovere l'ID della farm locale dall'applicazione del servizio.

Procedure disponibili in questa sezione:

  • Per recuperare un account del servizio dell'applicazione Web tramite Amministrazione centrale

  • Per concedere e rimuovere autorizzazioni per permettere agli account del servizio di accedere a un'applicazione del servizio tramite Amministrazione centrale

Per recuperare un account del servizio dell'applicazione Web tramite Amministrazione centrale

  1. Verificare che l'account utente che esegue questa procedura sia membro del gruppo di SharePoint Amministratori farm.

  2. Nella home page di Amministrazione centrale fare clic su Configura account di servizio nella sezione Sicurezza.

  3. Nella pagina Account di servizio selezionare i servizi e il componente dell'applicazione Web dall'elenco a discesa.

    L'account del servizio viene mostrato nell'elenco Selezionare un account per il componente. Annotare il nome dell'account del servizio, perché verrà usato nella procedura seguente.

  4. Fare clic su Annulla per uscire dalla pagina Account di servizio senza apportare modifiche.

Per concedere e rimuovere autorizzazioni per permettere agli account del servizio di accedere a un'applicazione del servizio tramite Amministrazione centrale

  1. Verificare che l'account utente che esegue questa procedura sia membro del gruppo di SharePoint Amministratori farm.

  2. Nella sezione Gestione applicazioni della home page di Amministrazione centrale fare clic su Gestisci applicazioni di servizio.

  3. Nella pagina Gestisci applicazioni di servizio fare clic sulla riga contenente l'applicazione del servizio per cui si vogliono assegnare autorizzazioni.

    La barra multifunzione diventa disponibile.

  4. Nel gruppo Condivisione della barra multifunzione fare clic su Autorizzazioni.

  5. Nella finestra di dialogo Autorizzazioni di connessione digitare il nome dell'account del servizio recuperato nella procedura precedente, quindi fare clic su Aggiungi.

  6. Verificare che il nome dell'account del servizio appena aggiunto sia selezionato nel riquadro centrale, quindi selezionare la casella di controllo appropriata nel riquadro inferiore per fornire il livello di autorizzazione necessario.

  7. Nel riquadro centrale, fare clic su Farm locale, quindi fare clic su Rimuovi.

  8. Verificare che nella pagina Autorizzazioni di connessione sia elencato solo l'account del servizio desiderato per l'accesso all'applicazione del servizio e che l'account del servizio disponga delle autorizzazioni necessarie per l'applicazione del servizio. Fare clic su OK per cambiare le autorizzazioni oppure su Annulla per terminare l'attività senza apportare modifiche.

È possibile concedere e rimuovere autorizzazioni per ogni account di servizio utilizzando questa procedura. Per ripristinare l'ID della farm locale per l'applicazione del servizio tramite CentralAdmin_2nd è necessario un passaggio aggiuntivo, non applicabile agli altri account del servizio. Per informazioni su questa operazione, vedere Ripristinare l'accesso a livello di farm a un'applicazione di servizio più avanti in questo articolo.

Limitare l'accesso a un'applicazione del servizio tramite Microsoft PowerShell

Per tutte le procedure di questa sezione si presuppone che siano disponibili le autorizzazioni appropriate e che la finestra Prompt dei comandi di PowerShell, come descritto nella procedura Per avviare una sessione di Windows PowerShell più avanti in questa sezione.

Il processo per limitare l'accesso a un'applicazione del servizio tramite PowerShell è più complesso rispetto all'esecuzione della stessa attività tramite Amministrazione centrale. In PowerShell si usano alcune procedure per raccogliere e archiviare informazioni per l'inserimento in procedure successive.

Dopo l'avvio di PowerShell, eseguire i passaggi seguenti per limitare l'accesso a un'applicazione del servizio:

  1. Recuperare l'ID della farm locale.

  2. Recuperare l'account del servizio dell'applicazione Web.

  3. Creare una nuova entità di attestazioni contenente l'account del servizio dell'applicazione Web.

  4. Recuperare l'oggetto di sicurezza dell'applicazione del servizio.

  5. Aggiungere l'account del servizio dell'applicazione Web all'oggetto di sicurezza dell'applicazione del servizio.

  6. Rimuovere l'ID della farm locale dall'oggetto di sicurezza dell'applicazione del servizio.

  7. Assegnare l'oggetto di sicurezza aggiornato all'applicazione del servizio.

  8. Visualizzare ed esaminare le autorizzazioni aggiornate

Contenuto della sezione:

  • Per avviare una sessione di Windows PowerShell

  • Per recuperare l'ID della farm locale tramite Windows PowerShell

  • Per recuperare un account del servizio dell'applicazione Web e creare una nuova entità di attestazioni tramite Windows PowerShell

  • Per recuperare l'oggetto di sicurezza dell'applicazione del servizio

  • Per aggiornare l'oggetto di sicurezza dell'applicazione del servizio usando le autorizzazioni preferite

Per avviare una sessione di Microsoft PowerShell

  1. Verificare di essere membri dei ruoli e dei gruppi seguenti:

    • Ruolo predefinito del server securityadmin nell'istanza di SQL Server.

    • Ruolo predefinito del database db_owner in tutti i database da aggiornare.

    • Gruppo Administrators nel server in cui si eseguono i cmdlet di PowerShell.

    Un amministratore può utilizzare il cmdlet Add-SPShellAdmin per concedere le autorizzazioni per l'utilizzo dei cmdlet di SharePoint Server.

    Nota

    Se non si dispone delle autorizzazioni, richiederle all'amministratore dell'installazione o all'amministratore di SQL Server. Per altre informazioni sulle autorizzazioni di PowerShell, vedere Add-SPShellAdmin.

  2. Avviare SharePoint Management Shell.

Per recuperare un account del servizio dell'applicazione Web e creare una nuova entità di attestazioni tramite Microsoft PowerShell

  1. Al prompt dei comandi di PowerShell digitare il comando seguente per recuperare l'account del servizio, ovvero l'account dell'identità del pool di applicazioni, di un'applicazione Web:

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

    Dove <http://WebApplication> è l'URL dell'applicazione Web.

    Il nome dell'account dell'applicazione del servizio viene visualizzato al prompt dei comandi.

  2. Per creare una nuova entità di attestazioni, digitare il comando seguente:

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

    Dove <ServiceAccount> è il nome utente, con formato jane@contoso.com o contoso\jane, recuperato tramite l'esecuzione del comando precedente. La variabile $principal conterrà la nuova entità di attestazioni.

Per recuperare l'oggetto di sicurezza dell'applicazione del servizio

  1. Per recuperare l'oggetto di sicurezza dell'applicazione del servizio, digitare i comandi seguenti. L'oggetto di sicurezza dell'applicazione del servizio verrà memorizzato nella variabile $security.

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

    Dove <ServiceApplicationDisplayName> è il nome visualizzato dell'applicazione del servizio.

    Importante

    Il nome visualizzato deve essere racchiuso tra virgolette e deve corrispondere esattamente al nome visualizzato dell'applicazione del servizio, inclusa la distinzione tra maiuscole e minuscole. Se sono presenti più applicazioni del servizio con lo stesso nome visualizzato, situazione non consigliata, è possibile eseguire il cmdlet Get-SPServiceApplication senza argomenti per visualizzare tutte le applicazioni del servizio. È possibile identificare l'applicazione del servizio direttamente in base al GUID. Ad esempio:
    Get-SpServiceApplication
    Sono elencate tutte le applicazioni del servizio.
    $spapp = Get-SpserviceApplication -Identity <GUID>
    $spguid = $spapp.id
    Dove <GUID> è il GUID per l'applicazione del servizio per cui si vogliono aggiornare le autorizzazioni.

Per aggiornare l'oggetto di sicurezza dell'applicazione del servizio usando le autorizzazioni preferite

  1. Per aggiornare l'oggetto di sicurezza dell'applicazione del servizio, aggiungere innanzitutto la nuova entità di attestazioni $principal all'oggetto di sicurezza dell'applicazione del servizio $security. Per ottenere questo risultato, digitare il comando seguente:

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

    Dove <Rights> è l'autorizzazione che si vuole concedere. In genere, si tratta di Controllo completo. Le autorizzazioni disponibili possono variare a seconda dell'applicazione del servizio.

    Suggerimento

    Se non si vogliono concedere autorizzazioni di Controllo completo e non si conoscono le autorizzazioni che possono essere concesse all'applicazione del servizio, è possibile eseguire i comandi seguenti per restituire le stringhe di autorizzazione disponibili:
    $rightslist = Get-SPServiceApplicationSecurity $spapp
    $rightslist.NamedAccessRights

  2. Per rimuovere l'ID della farm locale, memorizzato nella variabile $farmID,dall'oggetto di sicurezza dell'applicazione del servizio $security, digitare il comando seguente:

    Revoke-SPObjectSecurity $security $farmID
    
  3. Per assegnare l'oggetto di sicurezza $security aggiornato all'applicazione del servizio e confermare che l'oggetto di sicurezza per l'applicazione del servizio sia stato aggiornato correttamente, digitare i comandi seguenti:

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

È possibile aggiungere o rimuovere qualsiasi account del servizio per un'applicazione del servizio usando le procedure seguenti.

Ripristinare l'accesso a livello di farm a un'applicazione di servizio

È possibile ripristinare l'accesso a livello di farm a un'applicazione del servizio aggiungendo l'ID della farm locale all'applicazione del servizio. Per ottenere questo risultato, usare i comandi Amministrazione centrale o PowerShell. È tuttavia necessario usare PowerShell per ottenere l'ID della farm locale.

Contenuto della sezione:

  • Per recuperare l'ID della farm locale tramite Windows Powershell

  • Per ripristinare l'accesso a livello di farm locale a un'applicazione del servizio tramite Amministrazione centrale

  • Per ripristinare l'accesso a livello di farm locale a un'applicazione del servizio tramite Windows Powershell

Recuperare l'ID della farm locale tramite PowerShell.

  1. Questa procedura inizia dopo il passaggio 4 della procedura Per avviare una sezione di Windows PowerShell.

  2. Il comando seguente recupera l'ID della farm locale, lo memorizza nella variabile $farmID e visualizza l'ID al prompt dei comandi:

    $farmID = Get-SPFarm | select id
    

    Per ripristinare l'accesso a livello di farm tramite Amministrazione centrale, copiare questo valore negli Appunti per usarlo nella procedura seguente.

    Per ripristinare l'accesso a livello di farm all'applicazione del servizio tramite PowerShell, digitare i comandi aggiuntivi seguenti al prompt dei comandi PowerShell. Le informazioni recuperate verranno usate nella procedura seguente.

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

Per ripristinare l'accesso a livello di farm locale a un'applicazione del servizio tramite Amministrazione centrale

  1. Eseguire i passaggi da 1 a 3 della procedura Per concedere e rimuovere autorizzazioni per permettere agli account del servizio di accedere a un'applicazione del servizio tramite Amministrazione centrale.

  2. Nella finestra di dialogo Autorizzazioni di connessione copiare l'ID della farm locale recuperato nella procedura precedente, quindi fare clic su Aggiungi.

  3. Verificare che l'ID della farm locale sia selezionato nel riquadro centrale. Selezionare la casella di controllo Controllo completo nel riquadro inferiore.

  4. Fare clic su OK per ripristinare l'accesso a livello di farm all'applicazione del servizio oppure fare clic su Annulla per terminare l'attività senza apportare modifiche.

Per ripristinare l'accesso a livello di farm locale a un'applicazione del servizio tramite Microsoft PowerShell

  1. Questa procedura inizia dopo il passaggio 2 della procedura Per recuperare l'ID della farm locale tramite Windows Powershell.

  2. Per ripristinare l'ID della farm locale recuperato per l'oggetto di sicurezza dell'applicazione del servizio $security, digitare i comandi seguenti:

    $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
    

    Dove <ServiceApplicationDisplayName> è il nome visualizzato dell'applicazione del servizio.

    Importante

    Il nome visualizzato deve essere racchiuso tra virgolette e deve corrispondere esattamente al nome visualizzato dell'applicazione del servizio, inclusa la distinzione tra maiuscole e minuscole. Se sono presenti più applicazioni del servizio con lo stesso nome visualizzato, situazione non consigliata, è possibile eseguire il cmdlet Get-SPServiceApplication senza argomenti per visualizzare tutte le applicazioni del servizio. È possibile identificare l'applicazione del servizio direttamente in base al GUID.

Esempi di codice di Microsoft PowerShell

Nell'esempio seguente, l'amministratore desidera limitare l'accesso all'applicazione del servizio "Contoso BDC" all'applicazione Web http://contoso/hawaii, gestita dall'account del servizio "contoso\jane". Se si aggiunge "contoso\jane" e si rimuove l'account del servizio della farm locale dell'applicazione del servizio, "Contoso BDC" viene limitato solo alle applicazioni Web gestite dall'account del servizio "contoso\jane", ovvero, in questo caso, http://contoso/hawaii.

$farmid = Get-SPFarm | select id
$claimProvider = (Get-SPClaimProvider System).ClaimProvider 
$farmappId = 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 $farmappId
Set-SPServiceApplicationSecurity $spguid -ObjectSecurity $security
(Get-SPServiceApplicationSecurity $spguid).AccessRules

Nell'esempio seguente, l'accesso all'applicazione del servizio "Contoso BDC" viene ripristinato per tutte le applicazioni Web nella farm locale.

$farmid = Get-SPFarm | select id
$claimProvider = (Get-SPClaimProvider System).ClaimProvider 
$farmappId = 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 $farmappId -Rights "Full Control"
Set-SPServiceApplicationSecurity $spguid -ObjectSecurity $security
(Get-SPServiceApplicationSecurity $spguid).AccessRules

See also

Create a web application in SharePoint Server
Aggiungere o rimuovere connessioni ad applicazioni di servizio da un'applicazione Web in SharePoint Server
Informazioni su autorizzazioni e impostazioni di sicurezza per gli account in SharePoint Server 2016

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