SAML2
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à.

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
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à.

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:
Faccia clic su Security \ Authentication.
Aggiunga il provider di autenticazione SAML2.
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.

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.

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.

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.

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.
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?