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

SAML2

SAML2 richiede una licenza.

PowerShell Universal può essere configurato per integrarsi con un provider di identità SAML2. Questa documentazione fornisce i dettagli per configurare PSU con un sistema di questo tipo.

Caricamento automatico dei metadati

PowerShell Universal fornisce un meccanismo per caricare il documento dei metadati direttamente dal provider di identità SAML2 anziché fornire manualmente le opzioni di configurazione. Questo raccoglierà quante più informazioni possibili. Sarà comunque necessario fornire l'Entity ID.

Il percorso di callback verrà visualizzato nella parte superiore della finestra modale della proprietà.

Caricamento dei metadati

Fornire manualmente i valori

Impostazioni del provider di identità

Sarà necessario configurare il provider di identità per l'applicazione PowerShell Universal. Sarà necessario impostare un entity ID accettabile e mappare gli attributi. PowerShell Universal richiede che l'attributo name sia mappato. Il nome dell'attributo deve essere il seguente.

Dovrebbe mapparlo all'identità utente che desidera venga utilizzata all'interno di PowerShell Universal.

È possibile mappare attributi aggiuntivi che saranno disponibili durante la valutazione dei ruoli. Di seguito troverà un esempio di configurazione di Shibboleth.

Impostazioni dell'Entity ID

HTTPS è richiesto per l'autenticazione SAML2.

Sono disponibili diverse impostazioni di base che può configurare nella console di amministrazione di PowerShell Universal. Per aggiungere il supporto SAML2, faccia clic su Security \ Authentication. Nell'angolo in alto a destra, può selezionare SAML2 dal menu a discesa.

Una volta aggiunta l'integrazione SAML2, può configurare le impostazioni di base per la comunicazione con il provider di identità. Sarà necessario configurare almeno l'Entity ID e l'Identity Provider Entity ID.

In genere, questi entity ID sono URL configurati all'interno del provider di identità.

Proprietà SAML2

Il certificato del servizio viene utilizzato per firmare le richieste. Non è obbligatorio. Può essere un percorso locale al servizio PSU oppure il nome distinto di un certificato installato nell'archivio certificati Personal Computer.

Impostazioni aggiuntive

Oltre alle impostazioni disponibili nella console di amministrazione, può anche impostare quanto segue nel file di configurazione authentication.ps1.

ServiceCertificatePassword

Se utilizza un percorso file per il certificato e questo richiede una password, può specificarla tramite il parametro -ServiceCertificatePassword di Set-PSUAuthenticationMethod. Il valore di questo parametro è una SecureString. Può sfruttare il modulo SecretManagement per caricare i segreti.

Configure

Il parametro -Configure è un blocco di script che può essere utilizzato per impostare opzioni aggiuntive non esposte da Set-PSUAuthenticationMethod. Il blocco di script verrà chiamato quando il provider viene configurato e riceverà un singolo parametro che contiene un oggetto con le opzioni per l'autenticazione SAML2.

L'oggetto è di tipo Saml2Options. Il sotto-oggetto di SPOptions si trova qui.

Esempio: Entra ID

Configuri un'applicazione aziendale Entra ID all'interno di Azure. Può trovare una guida dettagliata qui. Sarà necessario recuperare l'ID applicazione e il documento dei metadati di federazione, nonché l'endpoint di accesso SAML-P. All'interno della registrazione dell'applicazione, faccia clic sul pulsante Endpoints.

Passo dopo passo

In PowerShell Universal:

  1. Faccia clic su Security \ Authentication.

  2. Aggiunga il provider di autenticazione SAML2.

  3. Faccia clic sul pulsante Edit Properties.

Per Entity ID, dovrà inserire l'ID applicazione di Entra ID preceduto dal prefisso spn:

Ad esempio: spn:2cf33625-e312-4659-a7bd-66ade51a0ea2

Per Identity Provider Entity ID, dovrà recuperare l'entity ID dal documento dei metadati di federazione. Apra l'URL del documento in un browser web.

Per Metadata Address, inserisca l'URL del documento dei metadati di federazione.

Per il Return URL, inserisca l'URL del suo server PowerShell Universal con il percorso /Saml/Acs.

Per Single Sign-On Service URL, inserisca l'endpoint di accesso SAML-P di Azure.

Configurazione di PSU

Una volta completato, salvi le impostazioni e abiliti il provider SAML. Faccia clic su Sign out e navighi all'URL della console di amministrazione.

Verrà inoltrato ad Azure per l'accesso e reindirizzato nuovamente a PowerShell Universal dopo l'autenticazione.

Eventuali errori che si verificano verranno elencati nel log di PowerShell Universal. Se non riesce ad accedere, può navigare a /login per accedere con un account locale.

Mappatura dei claim

Per fornire i claim di gruppo a PowerShell Universal, sarà necessario esporre i claim di gruppo dalla registrazione dell'applicazione. Faccia clic su Token Configuration e poi su Add groups claim.

Claim di gruppo 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 di gruppo 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'applicazione, individui l'app in Enterprise Applications e faccia clic su User and Groups. Successivamente, faccia clic su Add User\Group e selezioni i gruppi che desidera assegnare all'applicazione.

Una volta configurato il claim di gruppo in Entra ID, può aggiornare le mappature dei claim di PowerShell Universal con i gruppi forniti.

Per ogni ruolo che desidera assegnare a un gruppo Entra ID, specifichi il Claim Type e il 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/role.

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. Se ha selezionato una proprietà di gruppo SAML diversa, il valore potrebbe essere differente (ad es. sAMAccountName).

Eccedenze di gruppi

Per le organizzazioni con molti gruppi, sarà opportuno limitare il numero di gruppi forniti a PowerShell Universal. Ciò può alleviare i problemi di autorizzazione derivanti dalla presenza di troppi gruppi forniti, che causano il superamento dei limiti all'interno dell'applicazione. Nelle impostazioni dell'applicazione aziendale, faccia clic su Single sign-on e poi sul pulsante Edit sotto Attributes & Claims.

Faccia clic sul claim dei gruppi per visualizzare le opzioni. Le opzioni avanzate le consentiranno di filtrare i gruppi forniti al server PowerShell Universal. Può anche configurare i claim di gruppo tramite la configurazione del token nella registrazione dell'applicazione per l'applicazione aziendale.

Esempio: Okta

Questo esempio mostra come configurare l'autenticazione SAML2 di Okta per l'uso con PowerShell Universal.

All'interno di Okta, dovrà configurare l'applicazione in modo simile al seguente. SAML2 richiede HTTPS e dovrà includere l'URL della sua istanza di PSU nel Single Sign On URL, seguito da /Saml2/Acs. Il percorso distingue tra maiuscole e minuscole.

L'Audience Restriction deve essere l'URL del suo server PowerShell Universal.

Affinché gli utenti possano accedere a PowerShell Universal, dovrà assicurarsi che siano stati assegnati all'applicazione Okta.

Nella scheda Sign On dell'applicazione, faccia clic sul pulsante View SAML setup instructions.

Dovrà acquisire i due URL e scaricare il certificato per configurare PowerShell Universal. Veda il passo successivo su come utilizzare questi URL nel file authentication.ps1.

authentication.ps1

Il file authentication.ps1 viene utilizzato per configurare PowerShell Universal.

Parametro
Descrizione
Tipo

EntityId

Questo valore deve corrispondere a quanto inserito in Audience Restriction all'interno di Okta.

string

IdentityProviderEntityId

Questo è il valore presentato nella pagina View SAML setup instructions.

string

CallbackPath

Questo è il percorso a cui l'utente verrà reindirizzato se non è stato fornito alcun percorso di reindirizzamento

string

SigningKey

Questo è il file del certificato scaricato nella pagina View SAML setup instructions.

string

SingleSignOnServiceUrl

Questo è l'URL di accesso fornito nella pagina View SAML setup instructions.

string

Esempio: Shibboleth

Questo esempio mostra come configurare Shibboleth per l'uso con PowerShell Universal. Fornisce la configurazione di base e non segue necessariamente le migliori pratiche.

Si presuppone che abbia installato Shibboleth Identity Provider v4 con integrazione Active Directory.

ldap.properties

Le proprietà LDAP sono state configurate per l'autenticazione sul dominio locale utilizzando un account di amministratore di dominio. L'URL LDAP è stato configurato e TLS è stato disabilitato.

Di seguito troverà l'esempio completo del file ldap.properties.

relying-party.xml

Il file relying-party.xml è stato aggiornato per abilitare l'IdP aperto. Ciò significa che qualsiasi entity ID può comunicare con il provider di identità. È anche possibile configurarlo per applicare entity ID specifici. Anche la configurazione predefinita è stata modificata per utilizzare il bean SAML2.AttributeQuery.

attribute-resolver.xml

Il file attribute-resolver.xml è stato aggiornato per utilizzare il Data Connector LDAPDirectory. Carica l'indirizzo e-mail, il nome, il cognome (SN) e il nome visualizzato da Active Directory. Quindi mappa il Principal Name, che sarà il nome utente dell'utente che effettua l'accesso, al tipo di claim richiesto utilizzando un codificatore di attributi.

attribute-filter.xml

Il file attribute-filter.xml è stato aggiornato per rilasciare diversi degli attributi mappati dal data connector LDAPDirectory, nonché il nome utente che verrà utilizzato come identità all'interno di PowerShell Universal.

Ultimo aggiornamento

È stato utile?