Condividi tramite


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

SI APPLICA A:yes-img-132013 yes-img-162016 yes-img-192019 yes-img-seSubscription Edition no-img-sopSharePoint in Microsoft 365

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.

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.

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.

Attenzione

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.

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.

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 e 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

Tutte le procedure in questa sezione presuppongono che si disponga delle autorizzazioni appropriate.

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

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 per il server in cui vengono eseguiti i cmdlet diPowerShell.

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

    Nota

    [!NOTA] Se non si dispone delle autorizzazioni, richiederle all'amministratore per l'installazione o all'amministratore di SQL Server. Per ulteriori informazioni sulle autorizzazioni di PowerShell, vedere Add-SPShellAdmin.

  2. Avviare Management Shell di SharePoint.

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 (nel formato di jane@contoso.com o contoso\jane) recuperato eseguendo il 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. La variabile $security archivierà l'oggetto di sicurezza dell'applicazione di servizio.

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

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

    Importante

    È necessario racchiudere il nome visualizzato tra virgolette e deve corrispondere esattamente al nome visualizzato dell'applicazione di servizio. Sono incluse le maiuscole e minuscole. Se si dispone di più di un'applicazione di servizio con lo stesso nome visualizzato (non è consigliabile farlo), è possibile eseguire il cmdlet Get-SPServiceApplication senza argomenti per visualizzare tutte le applicazioni di servizio. È quindi possibile identificare l'applicazione di servizio direttamente dal relativo GUID.

    Get-SpServiceApplication
    

    Sono elencate tutte le applicazioni del servizio.

    $spapp = Get-SpserviceApplication -Identity <GUID>
    $spguid = $spapp.id
    

    Dove <GUID> è il GUID per l'applicazione di servizio per cui si desidera 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.

    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 farm locale (archiviato nella variabile $farmID ) dall'oggetto di sicurezza dell'applicazione di servizio $security, digitare il comando seguente:

    Revoke-SPObjectSecurity $security $farmID
    
  3. Per assegnare l'oggetto di sicurezza $security aggiornato all'applicazione di servizio e verificare che l'oggetto di sicurezza per l'applicazione di servizio sia aggiornato in modo appropriato, 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.

Per recuperare l'ID della farm locale tramite PowerShell

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

  2. Il comando seguente recupera l'ID della farm locale, lo archivia 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 "http://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 farm locale recuperato nella procedura precedente e 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 farm locale usando 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 di servizio.

    Importante

    È necessario racchiudere il nome visualizzato tra virgolette e deve corrispondere esattamente al nome visualizzato dell'applicazione di servizio. Sono incluse le maiuscole e minuscole. Se si dispone di più di un'applicazione di servizio con lo stesso nome visualizzato (non è consigliabile farlo), è possibile eseguire il cmdlet Get-SPServiceApplication senza argomenti per visualizzare tutte le applicazioni di servizio. È quindi possibile identificare l'applicazione di servizio direttamente dal relativo GUID.

Esempi di codice di Microsoft PowerShell

Nell'esempio seguente l'amministratore vuole limitare l'accesso all'applicazione di servizio "Contoso BDC" all'applicazione http://contoso/hawaii Web, gestita dall'account del servizio "contoso\jane". Aggiungendo "contoso\jane" e rimuovendo l'account del servizio farm locale dall'applicazione di servizio, "Contoso BDC" è limitato solo alle applicazioni Web gestite dall'account del servizio "contoso\jane", in questo 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

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 "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

Vedere anche

Concetti

Aggiungere o rimuovere connessioni ad applicazioni di servizio da un'applicazione Web in SharePoint Server

Autorizzazioni e impostazioni di protezione per gli account in SharePoint Server 2016 e 2019

Ulteriori risorse

Creare un'applicazione Web in SharePoint Server

Get-SPWebApplication

New-SPClaimsPrincipal

Get-SPServiceApplication

Get-SPServiceApplicationSecurity

Grant-SPObjectSecurity

Set-SPServiceApplicationSecurity

Get-SPFarm

Get-SPClaimProvider