Informazioni
Autenticazione
Per impostazione predefinita, PowerShell Universal fornisce l'autenticazione utente locale. I nomi utente e le password crittografate sono archiviati nel database di PowerShell Universal. Per gli ambienti aziendali, può valutare l'utilizzo dei metodi di autenticazione supportati dalla sua organizzazione.
Autorizzazione
L'autorizzazione degli utenti avviene tramite i ruoli. I ruoli possono essere assegnati tramite la mappatura delle attestazioni, uno script di criteri oppure assegnando il ruolo direttamente all'identità.
Mappatura dei ruoli alle attestazioni
Può mappare i ruoli a un'attestazione (come l'appartenenza a un gruppo) utilizzando i parametri -ClaimType e -ClaimValue di New-PSURole. Le impostazioni sono disponibili anche nella finestra di dialogo delle proprietà del ruolo in Secure > Roles.
Ad esempio, con l'autenticazione Windows, se volesse mappare un gruppo a un ruolo, potrebbe configurarla in modo che il SID del gruppo venga mappato al ruolo di amministratore.
New-PSURole -Name Administrator -ClaimType 'http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid' -ClaimValue 'S-123-123-123'Mappare i ruoli alle attestazioni in questo modo è più veloce rispetto agli script dei criteri, perché non richiede l'esecuzione di PowerShell quando l'utente effettua l'accesso.
Visualizzare le informazioni sulle attestazioni
Per agevolare lo sviluppo degli script dei criteri o l'assegnazione dei ruoli alle attestazioni, può visualizzare le informazioni sulle attestazioni facendo clic su View Claim Information in Secure > Roles.
Esempio: Azure Active Directory
Può mappare un gruppo di Azure Active Directory a un ruolo cercando l'Object ID del gruppo in Azure. Ad esempio, all'interno del dominio Ironman Software, abbiamo un gruppo chiamato Dashboard Administrators. Questo gruppo ha un object ID pari a 61849bf2-e44b-4057-b589-6cd1812d7545.
All'interno di PowerShell Universal, posso assegnare gli utenti di questo gruppo al gruppo Administrator configurando la mappatura delle attestazioni. Il Claim Type sarà groups e il Claim Value sarà 61849bf2-e44b-4057-b589-6cd1812d7545. Una volta mappata l'attestazione, gli utenti del gruppo Dashboard Administrators faranno parte del gruppo Administrators di PowerShell Universal. Il file roles.ps1 risultante avrà questo aspetto.
Tutti gli altri ruoli sono disabilitati.
Assegnazione tramite criteri
Per impostazione predefinita, i ruoli vengono assegnati dai criteri. I criteri vengono eseguiti quando l'utente effettua l'accesso. Può modificare gli script dei criteri visitando la pagina Secure > Roles. Faccia clic sul pulsante Edit Code per configurare lo script del criterio.
Gli script dei criteri ricevono un oggetto ClaimsPrincipal come parametro e devono restituire true o false. I criteri che generano errori vengono considerati false. L'oggetto ClaimsPrincipal contiene l'identità dell'utente e le attestazioni che l'utente ha ricevuto. Queste possono includere le assegnazioni ai gruppi o altre caratteristiche dell'account di un utente.
Può aspettarsi un oggetto con questa struttura.
Assegnazione dei ruoli
Per assegnare un ruolo a un utente, può creare la sua identità all'interno di Universal e poi selezionare il ruolo dal menu a discesa nella pagina Identities.
Per impostazione predefinita, le identità ricevono un ruolo tramite la mappatura delle attestazioni o tramite un criterio.
Ruoli predefiniti
Administrator
Accesso completo all'intera piattaforma PowerShell Universal e alle impostazioni.
Operator
Gli operatori possono aggiungere e rimuovere risorse come API, script e dashboard. Gli operatori non possono modificare impostazioni come gli ambienti, i ruoli o le impostazioni generali.
Execute
Il ruolo Execute concede la possibilità di eseguire script e l'accesso in lettura a tutto il resto.
Reader
Il ruolo Reader fornisce l'accesso in sola lettura a PowerShell Universal.
Percorso predefinito per ruolo
Può modificare la pagina che l'utente vede al momento dell'accesso impostando la proprietà Default Route per il ruolo. Ad esempio, potrebbe voler indirizzare gli utenti delle Risorse umane alla dashboard Human Resources e gli utenti IT alla dashboard IT.
Utenti con molti gruppi
Se i suoi utenti sono membri di più di circa 40 gruppi, potrebbe riscontrare problemi di accesso. Ciò è dovuto ai limiti di dimensione delle intestazioni HTTP in IIS e Kestrel. Più gruppi ha un utente, più attestazioni di autorizzazione possiede e più grande è l'intestazione.
Può aumentare il limite delle intestazioni per Kestrel utilizzando la configurazione dei limiti nel file appsettings.json. Dovrà aumentare la dimensione dell'intestazione. Si tratta di un valore in byte il cui valore predefinito è 32 kb.
Autorizzazione in IIS
L'autorizzazione in IIS funziona come con qualsiasi altro metodo, ma deve tenere presente il limite di dimensione dell'intestazione della richiesta. Potrebbe ricevere errori quando abilita attestazioni che includono molti gruppi. Possono superare il limite di dimensione dell'intestazione e IIS restituirà degli errori. Abbiamo riscontrato che circa 40 gruppi di Azure Active Directory causano questo problema in un'installazione IIS predefinita.
L'errore che riceverà sarà un errore 400 con l'indicazione che la richiesta è troppo lunga.
Bad Request - Request Too Long HTTP Error 400. The size of the request headers is too long.
Se ha HTTPS abilitato, riceverà un errore relativo a un errore del protocollo HTTP2.
Può aumentare la dimensione della richiesta di IIS impostando le seguenti chiavi di registro. Dovrà riavviare la macchina affinché abbiano effetto.
Maggiori informazioni sono disponibili nella documentazione di Microsoft.
In alternativa all'aumento della dimensione della richiesta, può anche ridurre il numero di gruppi inviati. In Azure Active Directory, può impostare solo i gruppi assegnati all'applicazione per evitare che vengano inviati tutti i gruppi.
In Azure vada su App registrations > (selezioni l'app) > Token Configuration e specifichi i gruppi assegnati all'applicazione.
Ora vada su Enterprise Application > (selezioni l'app) > Users and groups. Assegni il gruppo o i gruppi che desidera includere nelle attestazioni. (Nota: questo può essere utilizzato anche come limite di sicurezza se imposta “User Assignment Required” su Yes nella sezione 'Properties' dell'app)
Token applicativi
I token applicativi possono essere assegnati a servizi che non possono effettuare l'accesso in modo interattivo. Gli amministratori possono creare token per le identità da Secure > Application Tokens. Per creare un token per il suo account, apra User Settings dal menu utente e selezioni Tokens.
Il token avrà una scadenza di un anno e disporrà dei ruoli validi per il suo account. Per copiare il token applicativo nel suo account, faccia clic sull'azione Copy. Per revocare un token applicativo, faccia clic sull'azione Revoke.
Può utilizzare i token applicativi con i cmdlet di Universal oppure tramite richieste web dirette utilizzando l'autorizzazione Bearer.
Ambiente
Per impostazione predefinita, gli script di autenticazione tramite form e di assegnazione dei criteri vengono eseguiti all'interno del processo di PowerShell Universal. Facoltativamente, può configurare un Environment esterno per eseguire i suoi script di autenticazione e autorizzazione. Quando configura un ambiente di sicurezza, viene avviato un processo PowerShell esterno configurato per utilizzare le impostazioni del suo ambiente.
Per modificare l'ambiente utilizzato dal processo di sicurezza, imposti -SecurityEnvironment in settings.ps1.
Esempio: autenticazione tramite form con Active Directory
L'esempio seguente mostra come eseguire un semplice "LDAP BIND" per convalidare le credenziali Active Directory di un utente. Se un utente che tenta di accedere a PowerShell Universal non è il Default Admin User, dovrà autenticare correttamente le proprie credenziali con Active Directory tramite un semplice bind LDAP. Questo può essere combinato con un controllo di appartenenza a un gruppo AD nei criteri dei ruoli Admin, Operator e Reader per utilizzare efficacemente l'autenticazione Active Directory E l'appartenenza ai gruppi di Active Directory al fine di fornire un accesso basato sui ruoli a PowerShell Universal.
Esempio: criterio basato sull'appartenenza a un gruppo di Active Directory (autenticazione Windows)
Questo esempio sfrutta le attestazioni fornite durante l'autenticazione. Può verificare se l'utente dispone di un groupsid (appartenenza a un gruppo) utilizzando le mappature delle attestazioni. Mappi il tipo di attestazione groupid al valore a cui desidera assegnare il ruolo.
Esempio: criterio basato sull'appartenenza a un gruppo di Active Directory
In questo esempio configureremo il nostro script del criterio Administrator per utilizzare LDAP al fine di recuperare l'appartenenza a un gruppo di Active Directory. Qui abbiamo creato un gruppo chiamato "PowerShell Universal Admins" i cui membri devono ottenere l'accesso Administrator in PowerShell Universal. Qui eseguiamo un semplice controllo del samaccountname dell'utente per verificare che sia membro del gruppo. Per ambienti più robusti sarebbe più appropriato un controllo su SID/DN/ObjectGUID.
Esempio: appartenenza a un gruppo basata su Azure Active Directory
Questo esempio sfrutta OpenID Connect e Azure Active Directory.
Una volta configurati PowerShell Universal e Azure Active Directory, può configurare gli script dei ruoli per verificare se gli utenti sono membri dei gruppi presenti in Azure AD. Può sfruttare le mappature delle attestazioni per mappare l'ID del gruppo di Azure AD a un ruolo di PowerShell Universal.
Innanzitutto, si assicuri di avere abilitato le attestazioni di appartenenza ai gruppi nel manifest della registrazione dell'applicazione. Ciò includerà tutte le appartenenze ai gruppi, in modo che siano accessibili in PowerShell Universal.
Una volta effettuata la configurazione, può aggiornare lo script dei ruoli per verificare l'appartenenza a un gruppo. Prenda prima nota dell'object ID del gruppo che desidera verificare all'interno di Azure AD.
Successivamente, all'interno dello script roles.ps1, può verificare che un utente disponga di un determinato ruolo utilizzando la mappatura delle attestazioni.
Man mano che gli utenti effettuano l'accesso, la loro appartenenza ai gruppi verrà convalidata rispetto alle loro attestazioni e verrà assegnato un ruolo.
Ultimo aggiornamento
È stato utile?