Condividi tramite


Regole di autorizzazione e funzionalità di sicurezza di Windows PowerShell Web Access

Aggiornato: 24 giugno 2013

Vale a: Windows Server 2012 R2, Windows Server 2012

Windows PowerShell Web Access in Windows Server 2012 R2 e Windows Server 2012 ha un modello di sicurezza restrittivo. Gli utenti devono essere esplicitamente autorizzati prima di poter accedere al gateway di accesso Web PowerShell di Windows e utilizzare la console PowerShell di Windows basata sul web.

Configurazione delle regole di autorizzazione e sicurezza del sito

Dopo l'installazione di Windows PowerShell Web Access e la configurazione del gateway, gli utenti possono aprire la pagina di accesso in un browser, ma non possono accedere finché l'amministratore di Windows PowerShell Web Access non concede esplicitamente l'accesso agli utenti. Il controllo di accesso 'Windows PowerShell Web Access' è gestito utilizzando l'insieme di cmdlet di Windows PowerShell descritti nella tabella seguente. Non esiste una GUI comparabile per aggiungere o gestire regole di autorizzazione. Vedi i Cmdlet di accesso web di Windows PowerShell.

Gli amministratori possono definire {0-n} regole di autenticazione per Windows PowerShell Web Access. La garanzia predefinita è restrittiva piuttosto che permissiva; Zero regole di autenticazione significa che nessun utente ha accesso a nulla.

Add-PswaAuthorizationRule e Test-PswaAuthorizationRule in Windows Server 2012 R2 includono un parametro Credential che permette di aggiungere e testare le regole di autorizzazione di accesso Web PowerShell di Windows da un computer remoto o da una sessione attiva di accesso Web PowerShell di Windows. Come per altri cmdlet PowerShell di Windows che hanno un parametro Credential, puoi specificare un oggetto PSCredential come valore del parametro. Per creare un oggetto PSCredential che contenga le credenziali che vuoi trasmettere a un computer remoto, esegui il cmdlet Get-Credential .

Le regole di autenticazione per l'accesso web di Windows PowerShell sono regole di permesso . Ogni regola è una definizione di una connessione consentita tra utenti, computer di destinazione e particolari configurazioni di sessione PowerShell di Windows (note anche come endpoint o runspace) su computer di destinazione specifici. Per una spiegazione sugli spazi di esecuzione vedi Inizio Uso degli spazi di esecuzione PowerShell

Importante

Un utente ha bisogno che una sola regola sia vera per ottenere l'accesso. Se a un utente viene dato accesso a un computer con accesso completo alla lingua o solo ai cmdlet di gestione remota PowerShell di Windows, dalla console web, l'utente può accedere (o saltare) ad altri computer collegati al primo computer target. Il modo più sicuro per configurare Windows PowerShell Web Access è permettere agli utenti di accedere solo a configurazioni di sessione vincolate che permettano loro di svolgere compiti specifici che normalmente devono svolgere da remoto.

I cmdlet citati nei Windows PowerShell Web Access Cmdlet permettono di creare un insieme di regole di accesso utilizzate per autorizzare un utente sul gateway di accesso Windows PowerShell. Le regole sono diverse dalle liste di controllo degli accessi (ACL) sul computer di destinazione e forniscono un ulteriore livello di sicurezza per l'accesso web. Ulteriori dettagli sulla sicurezza sono descritti nella sezione seguente.

Se gli utenti non riescono a superare uno dei livelli di sicurezza precedenti, ricevono un messaggio generico di 'accesso negato' nelle finestre del browser. Sebbene i dettagli di sicurezza vengano registrati sul server gateway, agli utenti finali non vengono mostrate informazioni su quanti livelli di sicurezza hanno superato, né su quale livello si è verificato il fallimento dell'accesso o dell'autenticazione.

Per maggiori informazioni sulla configurazione delle regole di autorizzazione, vedi configurazione delle regole di autorizzazione in questo argomento.

Security

Il modello di sicurezza di accesso Web di Windows PowerShell ha quattro livelli tra un utente finale della console web e un computer target. Gli amministratori di accesso web di Windows PowerShell possono aggiungere livelli di sicurezza tramite una configurazione aggiuntiva nella console IIS Manager. Per maggiori informazioni sulla sicurezza dei siti web nella console IIS Manager, vedi Configura la sicurezza del Web Server (IIS7).

Per maggiori informazioni sulle migliori pratiche IIS e sulla prevenzione degli attacchi denial-of-service, consulta Best Practices for Preventing DoS/Denial of Service Attacks. Un amministratore può anche acquistare e installare software di autenticazione al dettaglio aggiuntivo.

La tabella seguente descrive i quattro livelli di sicurezza tra utenti finali e computer target.

Level Strato
1 Caratteristiche di sicurezza del server web di IIS
2 Autenticazione tramite gateway basata su moduli di accesso web di Windows PowerShell
3 Regole di autorizzazione per l'accesso web di Windows PowerShell
4 Regole di autenticazione e autorizzazione dei target

Informazioni dettagliate su ciascun livello si possono trovare sotto i seguenti intitoli:

Caratteristiche di sicurezza dei server web IIS

Gli utenti di Windows PowerShell Web Access devono sempre fornire un nome utente e una password per autenticare i propri account sul gateway. Tuttavia, gli amministratori di Windows PowerShell Web Access possono anche attivare o disattivare l'autenticazione opzionale dei certificati client, vedere installare e usare Windows PowerShell Web Access per abilitare un certificato di test e, successivamente, come configurare un certificato autentico.

La funzione opzionale del certificato client richiede agli utenti finali di avere un certificato client valido, oltre ai nomi utente e alle password, ed è parte della configurazione Web Server (IIS). Quando il livello di certificato client è abilitato, la pagina di accesso di Windows PowerShell Web Access invita gli utenti a fornire certificati validi prima che vengano valutate le loro credenziali di accesso. L'autenticazione del certificato client verifica automaticamente il certificato client. Se non viene trovato un certificato valido, Windows PowerShell Web Access informa gli utenti, così che possano fornire il certificato. Se viene trovato un certificato client valido, Windows PowerShell Web Access apre la pagina di accesso per permettere agli utenti di fornire nomi utente e password.

Questo è un esempio di impostazioni di sicurezza aggiuntive offerte da IIS Web Server. Per maggiori informazioni su altre funzionalità di sicurezza IIS, vedi Configura la Sicurezza del Web Server (IIS 7).

Autenticazione tramite gateway basata su moduli Windows PowerShell Web Access

La pagina di accesso di Windows PowerShell Web Access richiede un insieme di credenziali (nome utente e password) e offre agli utenti la possibilità di fornire diverse credenziali per il computer di destinazione. Se l'utente non fornisce credenziali alternative, il nome utente principale e la password usati per connettersi al gateway vengono utilizzati anche per connettersi al computer di destinazione.

Le credenziali richieste sono autenticate sul gateway di accesso Web PowerShell di Windows. Queste credenziali devono essere account utente validi sul server gateway locale PowerShell Web Access di Windows, oppure su Active Directory.

Regole di autorizzazione per Windows PowerShell Web Access

Dopo che un utente è autenticato presso il gateway, Windows PowerShell Web Access verifica le regole di autorizzazione per verificare se l'utente ha accesso al computer di destinazione richiesto. Dopo l'autorizzazione con successo, le credenziali dell'utente vengono trasmesse al computer di destinazione.

Queste regole vengono valutate solo dopo che un utente è stato autenticato dal gateway e prima che un utente possa essere autenticato su un computer di destinazione.

Regole di autenticazione e autorizzazione dei bersagli

L'ultimo livello di sicurezza per Windows PowerShell Web Access è la configurazione di sicurezza del computer bersaglio. Gli utenti devono avere i diritti di accesso appropriati configurati sul computer di destinazione, e anche nelle regole di autorizzazione di Windows PowerShell Web Access, per eseguire una console web di Windows PowerShell che influenza un computer di destinazione tramite Windows PowerShell Web Access.

Questo livello offre gli stessi meccanismi di sicurezza che valuterebbero i tentativi di connessione se gli utenti tentassero di creare una sessione remota di Windows PowerShell verso un computer di destinazione da Windows PowerShell eseguendo i cmdlet Enter-PSSession o New-PSSession .

Di default, Windows PowerShell Web Access utilizza il nome utente principale e la password per l'autenticazione sia sul gateway che sul computer di destinazione. La pagina di accesso web, in una sezione intitolata Impostazioni di connessione opzionali, offre agli utenti la possibilità di fornire credenziali diverse per il computer di destinazione, se necessarie. Se l'utente non fornisce credenziali alternative, il nome utente principale e la password usati per connettersi al gateway vengono utilizzati anche per connettersi al computer di destinazione.

Le regole di autorizzazione possono essere utilizzate per consentire agli utenti l'accesso a una particolare configurazione di sessione. Puoi creare runspace limitati o configurazioni di sessione per Windows PowerShell Web Access e permettere a utenti specifici di connettersi solo a configurazioni di sessione specifiche quando accedono a Windows PowerShell Web Access. Puoi utilizzare le liste di controllo degli accessi (ACL) per determinare quali utenti hanno accesso a endpoint specifici e limitare ulteriormente l'accesso all'endpoint per un determinato insieme di utenti utilizzando le regole di autorizzazione descritte in questa sezione. Per maggiori informazioni sugli spazi di esecuzione limitati, vedi Creazione di uno spazio di esecuzione vincolato.

Configurazione delle regole di autorizzazione

Gli amministratori probabilmente vogliono la stessa regola di autorizzazione per gli utenti di Windows PowerShell Web Access già definita nel loro ambiente per la gestione remota di Windows PowerShell. La prima procedura in questa sezione descrive come aggiungere una regola di autorizzazione sicura che conceda accesso a un utente, l'accesso per gestire un computer e all'interno di una configurazione di sessione singola. La seconda procedura descrive come rimuovere una regola di autorizzazione che non è più necessaria.

Se prevedi di usare configurazioni di sessione personalizzate per permettere a utenti specifici di lavorare solo all'interno di runspace limitati in Windows PowerShell Web Access, crea le configurazioni di sessione personalizzate prima di aggiungere regole di autorizzazione che vi si riferiscono. Non puoi usare i cmdlet di accesso web di Windows PowerShell per creare configurazioni di sessione personalizzate. Per maggiori informazioni sulla creazione di configurazioni personalizzate per sessioni, vedi about_Session_Configuration_Files.

I cmdlet di accesso Web di Windows PowerShell supportano un carattere jolly, un asterisco ( * ). I caratteri jolly all'interno delle stringhe non sono supportati; Usa un singolo asterisco per ogni proprietà (utenti, computer o configurazioni di sessione).

Annotazioni

Per altri modi in cui puoi utilizzare le regole di autorizzazione per concedere l'accesso agli utenti e aiutare a proteggere l'ambiente Windows PowerShell Web Access, consulta altri esempi di scenari di regole di autorizzazione in questo argomento.

Aggiungere una regola di autorizzazione restrittiva

  1. Per aprire una sessione di Windows PowerShell con diritti utente elevati, eseguire una di queste operazioni.

    • Sul desktop di Windows fare clic con il pulsante destro del mouse su Windows PowerShell sulla barra delle applicazioni e quindi scegliere Esegui come amministratore.

    • Nella schermata Start di Windows, clicca con il tasto destro su PowerShell di Windows, poi clicca su Esegui come Amministratore.

  2. Passaggio opzionale Per limitare l'accesso degli utenti utilizzando configurazioni di sessione:

    Verifica che le configurazioni di sessione che vuoi usare siano già presenti nelle tue regole.

    Se non sono ancora state create, usa le istruzioni per creare configurazioni di sessione in about_Session_Configuration_Files.

  3. Questa regola di autorizzazione consente a un utente specifico di accedere a un computer della rete a cui tipicamente ha accesso, con accesso a una configurazione di sessione specifica adattata alle tipiche esigenze di scripting e cmdlet dell'utente. Digitare quanto segue e quindi premere INVIO.

    Add-PswaAuthorizationRule -UserName <domain\user | computer\user> `
       -ComputerName <computer_name> -ConfigurationName <session_configuration_name>
    
    • Nel seguente esempio, un utente chiamato JSmith nel dominio Contoso ottiene l'accesso per gestire il Contoso_214 del computer e utilizzare una configurazione di sessione chiamata NewAdminsOnly.
    Add-PswaAuthorizationRule -UserName 'Contoso\JSmith' `
       -ComputerName Contoso_214 -ConfigurationName NewAdminsOnly
    
  4. Verifica che la regola sia stata creata eseguendo il cmdlet Get-PswaAuthorizationRule oppure Test-PswaAuthorizationRule -UserName <domain\user | computer\user> -ComputerName** <computer_name>. Ad esempio: Test-PswaAuthorizationRule -UserName Contoso\\JSmith -ComputerName Contoso_214.

Per rimuovere una regola di autorizzazione

  1. Se una sessione PowerShell di Windows non è già aperta, vedi il passo 1 di per aggiungere una regola di autorizzazione restrittiva in questa sezione.

  2. Digita quanto segue, poi premi Invio, dove l'ID della regola rappresenta il numero ID univoco della regola che vuoi rimuovere.

    Remove-PswaAuthorizationRule -ID <rule ID>
    

    In alternativa, se non conosci il numero ID, ma conosci il nome amichevole della regola che vuoi rimuovere, puoi ottenere il nome della regola e inviarlo al Remove-PswaAuthorizationRule cmdlet per rimuovere la regola, come mostrato nel seguente esempio:

    Get-PswaAuthorizationRule `
       -RuleName <rule-name> | Remove-PswaAuthorizationRule
    

Annotazioni

Non ti viene chiesto di confermare se vuoi eliminare la regola di autorizzazione specificata; la regola viene eliminata quando premi Invio. Assicurati di voler rimuovere la regola di autorizzazione prima di eseguire il Remove-PswaAuthorizationRule cmdlet.

Altri esempi di scenari di regole di autorizzazione

Ogni sessione PowerShell di Windows utilizza una configurazione di sessione; se non è specificato per una sessione, Windows PowerShell utilizza la configurazione predefinita integrata di sessione di Windows PowerShell, chiamata Microsoft.PowerShell. La configurazione predefinita della sessione include tutti i cmdlet disponibili su un computer. Gli amministratori possono limitare l'accesso a tutti i computer definendo una configurazione di sessione con uno spazio di esecuzione limitato (una gamma limitata di cmdlet e compiti che i loro utenti finali potrebbero svolgere). Un utente a cui viene concesso l'accesso a un computer con accesso completo alla lingua o solo ai cmdlet di gestione remota Windows PowerShell può connettersi ad altri computer collegati al primo computer. Definire uno spazio di esecuzione limitato può impedire agli utenti di accedere ad altri computer dal loro spazio di esecuzione PowerShell consentito e migliora la sicurezza dell'ambiente di accesso web Windows PowerShell. La configurazione della sessione può essere distribuita (utilizzando Group Policy) a tutti i computer che gli amministratori vogliono rendere accessibili tramite Windows PowerShell Web Access. Per altre informazioni sulle configurazioni di sessione, vedere about_Session_Configurations. Di seguito sono riportati alcuni esempi di questo scenario.

  • Un amministratore crea un endpoint, chiamato PswaEndpoint, con uno spazio di esecuzione limitato. Successivamente, l'amministratore crea una regola, *,*,PswaEndpoint, e distribuisce l'endpoint agli altri computer. La regola consente a tutti gli utenti di accedere a tutti i computer con l'endpoint PswaEndpoint. Se questa è l'unica regola di autorizzazione definita nel set di regole, i computer senza quell'endpoint non sarebbero accessibili.

  • L'amministratore ha creato un endpoint con uno spazio di esecuzione limitato chiamato PswaEndpoint e vuole limitare l'accesso a utenti specifici. L'amministratore crea un gruppo di utenti chiamato Level1Support e definisce la seguente regola: Level1Support,*,PswaEndpoint. La regola concede a qualsiasi utente del gruppo Level1Support l'accesso a tutti i computer con la configurazione PswaEndpoint . Allo stesso modo, l'accesso può essere limitato a un insieme specifico di computer.

  • Alcuni amministratori offrono a certi utenti più accesso rispetto ad altri. Ad esempio, un amministratore crea due gruppi di utenti, Admins e BasicSupport. L'amministratore crea anche un endpoint con uno spazio di esecuzione limitato chiamato PswaEndpoint, e definisce le seguenti due regole: Admins,*,* e BasicSupport,*,PswaEndpoint. La prima regola fornisce a tutti gli utenti del gruppo Admin l'accesso a tutti i computer, mentre la seconda regola garantisce a tutti gli utenti del gruppo BasicSupport l'accesso solo a quei computer con PswaEndpoint.

  • Un amministratore ha configurato un ambiente di test privato e vuole permettere a tutti gli utenti autorizzati di rete di accedere a tutti i computer della rete a cui normalmente hanno accesso, con accesso a tutte le configurazioni di sessione a cui normalmente hanno accesso. Poiché si tratta di un ambiente di test privato, l'amministratore crea una regola di autorizzazione che non è sicura. - L'amministratore esegue il cmdlet Add-PswaAuthorizationRule * * *, che utilizza il carattere * jolly per rappresentare tutti gli utenti, tutti i computer e tutte le configurazioni. - Questa regola è equivalente alla seguente: Add-PswaAuthorizationRule -UserName * -ComputerName * -ConfigurationName *.

    Annotazioni

    Questa regola non è raccomandata in un ambiente sicuro e aggira il livello di autorizzazione della regola di sicurezza fornito da Windows PowerShell Web Access.

  • Un amministratore deve consentire agli utenti di connettersi ai computer di destinazione in un ambiente che include sia gruppi di lavoro che domini, dove i computer dei gruppi di lavoro vengono occasionalmente utilizzati per connettersi ai computer di destinazione nei domini, e i computer nei domini vengono occasionalmente usati per connettersi ai computer di destinazione nei gruppi di lavoro. L'amministratore dispone di un server gateway, PswaServer, in un gruppo di lavoro; e il computer bersaglio srv1.contoso.com si trova in un dominio. L'utente Chris è un utente locale autorizzato sia sul server gateway del gruppo di lavoro sia sul computer di destinazione. Il suo nome utente sul server del gruppo di lavoro è chrisLocal; E il suo nome utente sul computer di destinazione è Contoso\chris. Per autorizzare l'accesso alla srv1.contoso.com per Chris, l'amministratore aggiunge la seguente regola.

Add-PswaAuthorizationRule -userName PswaServer\chrisLocal `
   -computerName srv1.contoso.com -configurationName Microsoft.PowerShell

L'esempio della regola precedente autentica Chris sul server gateway e poi autorizza il suo accesso a srv1. Nella pagina di accesso, Chris deve fornire un secondo set di credenziali nell'area Impostazioni di connessione opzionali (contoso\chris). Il server gateway utilizza un set aggiuntivo di credenziali per autenticarlo sul computer di destinazione, srv1.contoso.com.

Nello scenario precedente, Windows PowerShell Web Access stabilisce una connessione riuscita al computer di destinazione solo dopo che le seguenti operazioni sono state riuscite e consentite da almeno una regola di autorizzazione.

  1. Autenticazione sul server gateway del gruppo di lavoro aggiungendo un nome utente nel formato server_name\user_name alla regola di autorizzazione

  2. Autenticazione sul computer di destinazione utilizzando credenziali alternative fornite nella pagina di accesso, nell'area Impostazioni di connessione opzionale

    Annotazioni

    Se i computer gateway e target si trovano in gruppi di lavoro o domini diversi, deve essere stabilita una relazione di fiducia tra i due computer del gruppo di lavoro, i due domini o tra il gruppo di lavoro e il dominio. Questa relazione non può essere configurata utilizzando i cmdlet di autorizzazione di Windows PowerShell Web Access. Le regole di autorizzazione non definiscono una relazione di fiducia tra computer; possono autorizzare gli utenti solo a connettersi a specifici computer di destinazione e configurazioni di sessione. Per maggiori informazioni su come configurare una relazione di trust tra domini diversi, vedi Creazione di Trust di Dominio e Foresta. Per maggiori informazioni su come aggiungere computer di gruppo di lavoro a una lista di host affidabili, consulta Gestione Remota con Server Manager.

Utilizzo di un unico insieme di regole di autorizzazione per più siti

Le regole di autorizzazione sono memorizzate in un file XML. Di default, il nome del percorso del file XML è $env:windir\Web\PowershellWebAccess\data\AuthorizationRules.xml.

Il percorso verso il file XML delle regole di autorizzazione è memorizzato nel filepowwa.config , che si trova in $env:windir\Web\PowershellWebAccess\data. L'amministratore ha la flessibilità di modificare il riferimento al percorso predefinito inpowwa.config per adattarsi alle preferenze o ai requisiti. Permettere all'amministratore di cambiare la posizione del file consente a più gateway di accesso Web PowerShell di Windows di utilizzare le stesse regole di autorizzazione, se tale configurazione è desiderata.

Gestione delle sessioni

Di default, Windows PowerShell Web Access limita un utente a tre sessioni contemporaneamente. Puoi modificare il file web.config dell'applicazione web in IIS Manager per supportare un numero diverso di sessioni per utente. Il percorso verso il fileweb.config è $env:windir\Web\PowerShellWebAccess\wwwroot\Web.config.

Di default, IIS Web Server è configurato per riavviare il pool di applicazioni se vengono modificate le impostazioni. Ad esempio, il pool di applicazioni viene riavviato se vengono apportate modifiche al fileweb.config . >Poiché Windows PowerShell Web Access utilizza stati di sessione in memoria, >gli utenti che accedono alle sessioni Windows PowerShell Web Access perdono le loro sessioni quando il pool di applicazioni viene riavviato.

Impostazione dei parametri predefiniti sulla pagina di accesso

Se il tuo gateway Windows PowerShell Web Access è in esecuzione su Windows Server 2012 R2, puoi configurare i valori predefiniti per le impostazioni visualizzate nella pagina di accesso Windows PowerShell Web Access. Puoi configurare i valori nel file web.config descritto nel paragrafo precedente. I valori predefiniti per le impostazioni della pagina di accesso si trovano nella sezione appSettings del file web.config; di seguito è un esempio della sezione appSettings . I valori validi per molte di queste impostazioni sono gli stessi di quelli per i corrispondenti parametri del cmdlet New-PSSession in Windows PowerShell.

Ad esempio, la defaultApplicationName chiave, come mostrato nel blocco di codice seguente, è il valore della variabile di preferenza $PSSessionApplicationName sul computer di destinazione.

  <appSettings>
      <add key="maxSessionsAllowedPerUser" value="3"/>
      <add key="defaultPortNumber" value="5985"/>
      <add key="defaultSSLPortNumber" value="5986"/>
      <add key="defaultApplicationName" value="WSMAN"/>
      <add key="defaultUseSslSelection" value="0"/>
      <add key="defaultAuthenticationType" value="0"/>
      <add key="defaultAllowRedirection" value="0"/>
      <add key="defaultConfigurationName" value="Microsoft.PowerShell"/>
  </appSettings>

Time-out e disconnessioni impreviste

Le sessioni di accesso web di Windows PowerShell Web Duty scadono. In Windows PowerShell Web Access che gira su Windows Server 2012, viene visualizzato un messaggio di time-out agli utenti lognati dopo 15 minuti di inattività della sessione. Se l'utente non risponde entro cinque minuti dalla visualizzazione del messaggio di time-out, la sessione termina e l'utente viene disconnesso. Puoi modificare i periodi di time-out delle sessioni nelle impostazioni del sito web in IIS Manager.

In Windows PowerShell Web Access che gira su Windows Server 2012 R2, le sessioni scadono, di default, dopo 20 minuti di inattività. Se gli utenti vengono disconnessi dalle sessioni nella console web a causa di errori di rete o altri guasti o guasti non pianificati, e non perché hanno chiuso le sessioni da soli, le sessioni di accesso Web PowerShell di Windows continuano a funzionare, collegate ai computer di destinazione, fino alla scadenza del periodo di time-out lato client. La sessione viene disconnessa dopo i 20 minuti predefiniti o dopo il periodo di timeout specificato dall'amministratore del gateway, a seconda di quale sia il periodo più breve.

Se il server gateway esegue Windows Server 2012 R2, Windows PowerShell Web Access consente agli utenti di riconnettersi alle sessioni salvate in un momento successivo, ma quando errori di rete, spegnenti non pianificati o altri fallimenti disconnettono le sessioni, gli utenti non possono vedere o riconnettersi alle sessioni salvate fino alla scadenza del periodo di time-out specificato dall'amministratore del gateway.

Vedere anche

Installa e usa Windows PowerShell Web Access

Informazioni_sulle_Configurazioni_di_Sessione

Cmdlet di accesso Web PowerShell di Windows PowerShell