For the complete documentation index, see llms.txt. This page is also available as Markdown.

OpenID Connect

OpenID Connect richiede una licenza.

OpenID Connect è un livello di autenticazione basato su OAuth 2.0, un framework di autorizzazione. È supportato da molti fornitori e offre la possibilità di autenticarsi su sistemi come EntraID.

Questo documento illustra i passaggi necessari per configurare EntraID OpenID Connect e utilizzarlo con Universal.

Configurazione di Azure Entra ID (Azure Active Directory)

Nel portale di Azure, si porti al blade Entra ID. Quindi, faccia clic sul nodo Enterprise Application e poi su New application.

Successivamente, faccia clic su Create your own application.

Selezioni un nome per l'applicazione e selezioni Register an application to integrate with Microsoft Entra ID.

Nella pagina Register an application, definisca un URI di reindirizzamento. Sarà l'URL del server PowerShell Universal a cui Entra ID reindirizzerà l'utente. Questo valore è definito nel file di configurazione di PowerShell Universal, appsettings.json.

Ora che l'applicazione è stata creata, dalla pagina Enterprise Applications, faccia clic su Single sign-on e poi su Go to application. In questo modo accederà alla pagina di registrazione dell'applicazione.

Certificates and secrets e definisca un nuovo segreto. Sarà utilizzato con il file di configurazione di PowerShell Universal.

Ora dovremo raccogliere diverse informazioni dall'applicazione da fornire a PowerShell Universal. Dalla home page dell'applicazione, salvi l'ID applicazione (client) e l'ID directory (tenant).

Mappatura dei claim

Per fornire i claim dei gruppi a PowerShell Universal, dovrà esporre i claim dei gruppi dalla registrazione dell'app. Faccia clic su Token Configuration e poi su Add groups claim.

Claim dei gruppi di Entra ID

Dopo aver fatto clic su Add groups claim, avrà la possibilità di selezionare quali gruppi vengono forniti. Se seleziona All Groups, i claim dei gruppi verranno forniti a PowerShell Universal

Se seleziona Groups assigned to the application, si assicuri di selezionare il valore Emit groups as role claims. Questa impostazione richiede un piano Entra ID a pagamento.

Impostazione Emit groups as role claims

Per assegnare un gruppo alla registrazione dell'app, individui l'app in Enterprise Applications e faccia clic su User and Groups. Quindi, faccia clic su Add User\Group e selezioni i gruppi che desidera assegnare all'applicazione.

Una volta configurato il claim dei gruppi in Entra ID, potrà aggiornare le mappature dei claim di PowerShell Universal ai gruppi forniti.

Per ogni ruolo che desidera assegnare a un gruppo Entra ID, specifichi Claim Type e Claim Value per quel ruolo. Ad esempio, nel mio ambiente ho un gruppo con l'ID 446832da-d4ad-4972-b0a2-eda736129928. Il Claim Type per questo oggetto è http://schemas.microsoft.com/ws/2008/06/identity/claims/groups.

Per assegnarlo al gruppo di amministratori, procederei come segue.

Mappatura dei claim

Gli utenti di questo gruppo farebbero ora parte del ruolo Administrator in PowerShell Universal.

Sovraccarichi di gruppi

Per le organizzazioni che hanno utenti con molti gruppi, è consigliabile limitare il numero di gruppi inviati a PowerShell Universal. L'invio di un numero elevato di gruppi può superare la dimensione del token e causare errori di autorizzazione. Se desidera limitare i gruppi, selezioni Groups assigned to the application.

Per aggiungere gruppi all'applicazione, torni alla pagina dell'applicazione Enterprise e selezioni Users and groups.

Faccia clic sul valore Add user/group per assegnare questi gruppi all'applicazione. Quando gli utenti accedono a PowerShell Universal, verranno forniti solo questi claim dei gruppi.

Per maggiori informazioni sui Group Overages, faccia clic qui.

Configurazione di Universal per Entra ID

Utilizzare Appsettings.json

Maggiori informazioni su appsettings.json nella nostra pagina Impostazioni.

Ora che abbiamo completato la configurazione di una registrazione app AzureAD, possiamo aggiornare il file appsettings.json con le impostazioni appropriate. Per la mia applicazione, avrebbe un aspetto simile a questo.

Utilizzare Authentication.ps1

Può utilizzare la console di amministrazione per configurare OpenID Connect. Consigliamo questo metodo poiché non sarà necessario riavviare il servizio PowerShell Universal dopo aver configurato OIDC.

Per aggiungere un nuovo metodo di autenticazione, vada a Security \ Authentication e aggiunga il provider OpenID Connect.

Una volta aggiunto il provider, può fare clic sul pulsante dei dettagli per inserire le impostazioni necessarie per l'autenticazione presso il provider OIDC. Dopo aver impostato le opzioni OIDC, imposti il provider su abilitato ed esegua la disconnessione. Quando visiterà la pagina /admin, le verrà richiesto l'accesso OIDC.

Impostazioni di OpenID Connect

Token di accesso delegati

Può utilizzare i token di accesso generati da un accesso OIDC per altri servizi a cui l'utente potrebbe avere accesso. All'interno del provider OIDC, come Entra ID, può concedere autorizzazioni aggiuntive al token.

Dovrà inoltre abilitare i token di accesso all'interno del flusso di autenticazione affinché il token fornisca l'accesso alle risorse necessarie.

Infine, nel file appsettings.json di PSU, dovrà assicurarsi che SaveTokens sia abilitato, che il tipo di risorsa includa token e che la risorsa a cui desidera accedere sia inclusa nell'impostazione Resource. L'URL specificato nella risorsa dovrebbe essere elencato all'interno del provider.

L'esempio seguente aggiunge una risorsa per Microsoft O365.

All'interno della dashboard, avrà ora accesso alle variabili $AccessToken e $IdToken che può utilizzare con i cmdlet che richiedono l'autorizzazione.

Ad esempio, il cmdlet Connect-AzureAd accetta un token di accesso.

Token di aggiornamento

Può configurare Azure Active Directory e PowerShell Universal per fornire token di aggiornamento per richiedere nuovi token in caso di scadenza del token di accesso. A tal fine, dovrà abilitare offline_access nella registrazione dell'app.

offline_access

Durante la configurazione di PowerShell Universal, è necessario richiedere l'ambito offline_access, impostare SaveTokens su true e utilizzare il tipo di risposta id_token.

Una volta configurato, può accedere alla variabile $RefreshToken negli script e nelle app.

Configurazione di Okta

Okta supporta OpenID Connect. È possibile configurare un'applicazione per consentire l'autenticazione sulle istanze di PowerShell Universal.

Nella console di amministrazione di Okta, espanda Applications e faccia clic su Applications. Quindi faccia clic su Create App Integration.

Selezioni OIDC e Web Application.

Assegni un nome all'applicazione e definisca l'URL di reindirizzamento Sign-In utilizzato per chiamare il server PowerShell Universal. Dovrà specificare questo URL di callback nella configurazione di PowerShell Universal.

Una volta creata l'applicazione, prenda nota del Client ID e del Client Secret. Li specificherà nella configurazione di PowerShell Universal.

Nella scheda Sign On, specifichi il filtro dei claim dei gruppi da utilizzare per fornire i claim a PowerShell Universal. Questi claim possono essere utilizzati per assegnare ruoli in base all'appartenenza ai gruppi. Il filtro seguente restituisce tutti i claim.

Una volta configurata l'applicazione, può configurare PowerShell Universal.

Configurazione di Universal per Okta

Una volta definita l'applicazione Okta, può impostare il file appsettings.json in modo da utilizzare il provider per gli accessi. Di seguito è riportato un esempio della sezione necessaria per il funzionamento di Okta. Presti attenzione alla funzionalità di ambito, poiché è necessaria per recuperare l'appartenenza ai gruppi.

Accesso basato sui ruoli

Per cercare l'appartenenza ai gruppi per Okta, dovrà utilizzare la variabile $UserInfo disponibile in roles.ps1. Questa variabile fornisce informazioni aggiuntive sull'utente che effettua l'accesso.

La proprietà groups conterrà un elenco dei gruppi di cui l'utente è membro. Può convalidare l'appartenenza verificando se l'elenco contiene il gruppo desiderato.

Token di accesso delegati

I token di accesso sono disponibili per gli utenti all'interno dei loro script. Può utilizzare i token di accesso nei job avviati dagli utenti e nelle dashboard.

Ad esempio, potrebbe restituire le informazioni dell'utente corrente utilizzando il token di accesso fornito da Okta.

Visualizzazione delle informazioni sui claim

Se non è sicuro di quali informazioni sui claim vengano inviate a PowerShell Universal dal provider di identità, può utilizzare il pulsante View Claim Information nella pagina Security \ Roles per visualizzare tutti i ruoli forniti a PSU dal sistema remoto.

Ultimo aggiornamento

È stato utile?