Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Descrizione dello scenario
In questo articolo viene configurata un'autenticazione federata tra Microsoft Entra ID e SharePoint locale. L'obiettivo è consentire agli utenti di accedere all'ID Microsoft Entra e di usare la propria identità per accedere ai siti locali di SharePoint.
Prerequisiti
Per eseguire la configurazione, sono necessarie le risorse seguenti: - Un account utente Di Microsoft Entra con una sottoscrizione attiva. Se non è già disponibile, è possibile creare gratuitamente un account. - Uno dei ruoli seguenti: - Amministratore dell'applicazione - Amministratore di applicazioni cloud - Proprietario dell'applicazione. Se non ne hai uno, puoi creare un account gratuito.
- Una farm di SharePoint 2013 o versioni successive.
Questo articolo usa i valori seguenti:
- Nome applicazione aziendale (in Microsoft Entra ID):
SharePoint corporate farm
- Identificatore di attendibilità (in Microsoft Entra ID) /area di autenticazione (in SharePoint):
urn:sharepoint:federation
- URL di accesso (a Microsoft Entra ID):
https://login.microsoftonline.com/dc38a67a-f981-4e24-ba16-4443ada44484/wsfed
- URL del sito di SharePoint:
https://spsites.contoso.local/
- URL di risposta del sito di SharePoint:
https://spsites.contoso.local/_trust/
- Nome della configurazione trust di SharePoint:
MicrosoftEntraTrust
- NomePrincipaleUtente dell'utente di test di Microsoft Entra:
AzureUser1@demo1984.onmicrosoft.com
Configurare un'applicazione aziendale in Microsoft Entra ID
Per configurare la federazione in Microsoft Entra ID, è necessario creare un'applicazione Enterprise dedicata. La configurazione è semplificata usando il modello SharePoint on-premises
preconfigurato disponibile nella raccolta di applicazioni.
Creare l'applicazione aziendale
- Accedere all'interfaccia di amministrazione di Microsoft Entra come almeno un amministratore di applicazioni cloud.
- Accedere a Entra ID>Applicazioni aziendali>Nuova applicazione.
- Nella casella di ricerca immettere SharePoint locale. Selezionare SharePoint locale nel riquadro dei risultati.
- Specificare un nome per l'applicazione (in questo articolo è
SharePoint corporate farm
) e selezionare Crea per aggiungere l'applicazione. - Nella nuova applicazione aziendale selezionare Proprietà e controllare il valore di Assegnazione utente obbligatoria?. Per questo scenario, impostarne il valore su No e selezionare Salva.
Configurare l'applicazione aziendale
In questa sezione viene configurata l'autenticazione SAML e vengono definite le attestazioni inviate a SharePoint al termine dell'autenticazione.
Nella panoramica dell'applicazione
SharePoint corporate farm
aziendale selezionare 2. Configurare l'accesso Single Sign-On e scegliere SAML nella finestra di dialogo successiva.Nella pagina Configura single Sign-On con SAML selezionare l'icona Modifica nel riquadro Configurazione SAML di base .
Nella sezione Configurazione SAML di base seguire questa procedura:
Nella casella Identificatore verificare che questo valore sia presente:
urn:sharepoint:federation
.Nella casella URL di risposta immettere un URL usando questo modello:
https://spsites.contoso.local/_trust/
.Nella casella URL della pagina di accesso immettere un URL usando questo modello:
https://spsites.contoso.local/
.Selezionare Salva.
Nella sezione Attributi utente e attestazioni eliminare i tipi di attestazione seguenti, inutili perché non verranno usati da SharePoint per concedere le autorizzazioni:
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname
Le impostazioni dovrebbero ora avere un aspetto simile al seguente:
Copiare le informazioni necessarie più avanti in SharePoint:
Nella sezione Certificato di firma SAMLscaricare il certificato (Base64). Si tratta della chiave pubblica del certificato di firma usato da Microsoft Entra ID per firmare il token SAML. SharePoint dovrà verificare l'integrità dei token SAML in ingresso.
Nella sezione Configura farm aziendale di SharePoint copiare l'URL di accesso in un Blocco note e sostituire la stringa finale /saml2 con /wsfed.
Importante
Assicurarsi di sostituire /saml2 con /wsfed per assicurarsi che Microsoft Entra ID rilascia un token SAML 1.1, come richiesto da SharePoint.
- Nella sezione Configura farm aziendale di SharePoint copiare l'URL di disconnessione
Configurare SharePoint in modo che abbia fiducia in Microsoft Entra ID
Creare l'attendibilità in SharePoint
In questo passaggio, crei un SPTrustedLoginProvider per archiviare la configurazione affinché SharePoint possa fidarsi di Microsoft Entra ID. A tale scopo, sono necessarie le informazioni dell'ID Microsoft Entra copiato in precedenza. Si noti che l'uso di Windows PowerShell potrebbe causare l'esito negativo di alcuni comandi. Avviare SharePoint Management Shell ed eseguire lo script seguente per crearlo:
# Path to the public key of the Microsoft Entra SAML signing certificate (self-signed), downloaded from the Enterprise application in the Azure portal
$signingCert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("C:\Microsoft Entra app\SharePoint corporate farm.cer")
# Unique realm (corresponds to the "Identifier (Entity ID)" in the Microsoft Entra enterprise application)
$realm = "urn:sharepoint:federation"
# Login URL copied from the Microsoft Entra enterprise application. Make sure to replace "saml2" with "wsfed" at the end of the URL:
$loginUrl = "https://login.microsoftonline.com/dc38a67a-f981-4e24-ba16-4443ada44484/wsfed"
# Define the claim types used for the authorization
$userIdentifier = New-SPClaimTypeMapping -IncomingClaimType "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name" -IncomingClaimTypeDisplayName "name" -LocalClaimType "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn"
$role = New-SPClaimTypeMapping "http://schemas.microsoft.com/ws/2008/06/identity/claims/role" -IncomingClaimTypeDisplayName "Role" -SameAsIncoming
# Let SharePoint trust the Microsoft Entra signing certificate
New-SPTrustedRootAuthority -Name "Microsoft Entra signing certificate" -Certificate $signingCert
# Create a new SPTrustedIdentityTokenIssuer in SharePoint
$trust = New-SPTrustedIdentityTokenIssuer -Name "MicrosoftEntraTrust" -Description "Microsoft Entra ID" -Realm $realm -ImportTrustCertificate $signingCert -ClaimsMappings $userIdentifier, $role -SignInUrl $loginUrl -IdentifierClaim $userIdentifier.InputClaimType
Configurare l'applicazione Web di SharePoint
In questo passaggio si configura un'applicazione Web in SharePoint in modo che consideri attendibile l'applicazione Microsoft Entra Enterprise creata in precedenza. Esistono regole importanti da tenere presenti:
- L'area predefinita dell'applicazione Web SharePoint deve avere autenticazione di Windows abilitata. Questa operazione è necessaria per il crawler di ricerca.
- L'URL di SharePoint che userà l'autenticazione Di Microsoft Entra deve essere impostato con HTTPS.
Creare o estendere l'applicazione Web. Questo articolo descrive due possibili configurazioni:
Se crei una nuova applicazione Web che usa sia l'autenticazione Windows che l'autenticazione Microsoft Entra nell'area Predefinita:
Avviare SharePoint Management Shell ed eseguire lo script seguente:
# This script creates a new web application and sets Windows and Microsoft Entra authentication on the Default zone # URL of the SharePoint site federated with Microsoft Entra $trustedSharePointSiteUrl = "https://spsites.contoso.local/" $applicationPoolManagedAccount = "Contoso\spapppool" $winAp = New-SPAuthenticationProvider -UseWindowsIntegratedAuthentication -DisableKerberos:$true $sptrust = Get-SPTrustedIdentityTokenIssuer "MicrosoftEntraTrust" $trustedAp = New-SPAuthenticationProvider -TrustedIdentityTokenIssuer $sptrust New-SPWebApplication -Name "SharePoint - Microsoft Entra" -Port 443 -SecureSocketsLayer -URL $trustedSharePointSiteUrl -ApplicationPool "SharePoint - Microsoft Entra" -ApplicationPoolAccount (Get-SPManagedAccount $applicationPoolManagedAccount) -AuthenticationProvider $winAp, $trustedAp
Aprire il sito Amministrazione centrale SharePoint .
In Impostazioni di sistema selezionare Configura mapping di accesso alternativo. Verrà visualizzata la casella Raccolta mapping di accesso alternativo .
Filtrare la visualizzazione con la nuova applicazione Web e verificare che venga visualizzato un risultato simile al seguente:
Se si estende un'applicazione Web esistente per usare l'autenticazione di Microsoft Entra in una nuova zona:
Avviare SharePoint Management Shell ed eseguire lo script seguente:
# This script extends an existing web application to set Microsoft Entra authentication on a new zone # URL of the default zone of the web application $webAppDefaultZoneUrl = "http://spsites/" # URL of the SharePoint site federated with ADFS $trustedSharePointSiteUrl = "https://spsites.contoso.local/" $sptrust = Get-SPTrustedIdentityTokenIssuer "MicrosoftEntraTrust" $ap = New-SPAuthenticationProvider -TrustedIdentityTokenIssuer $sptrust $wa = Get-SPWebApplication $webAppDefaultZoneUrl New-SPWebApplicationExtension -Name "SharePoint - Microsoft Entra" -Identity $wa -SecureSocketsLayer -Zone Internet -Url $trustedSharePointSiteUrl -AuthenticationProvider $ap
Aprire il sito Amministrazione centrale SharePoint .
In Impostazioni di sistema selezionare Configura mapping di accesso alternativo. Verrà visualizzata la casella Raccolta mapping di accesso alternativo .
Filtrare la visualizzazione con l'applicazione Web estesa e verificare che venga visualizzato un risultato simile al seguente:
Dopo aver creato l'applicazione Web, è possibile creare una collezione di siti principale e aggiungere l'account Windows come amministratore principale della collezione di siti.
Creare un certificato per il sito di SharePoint
Poiché l'URL di SharePoint usa il protocollo HTTPS (
https://spsites.contoso.local/
), è necessario impostare un certificato nel sito Internet Information Services (IIS) corrispondente. Seguire questi passaggi per generare un certificato autofirmato:Importante
I certificati autofirmati sono adatti per scopi di test. Negli ambienti di produzione è consigliabile usare invece i certificati emessi da un'autorità di certificazione.
Aprire la console di Windows PowerShell.
Eseguire lo script seguente per generare un certificato autofirmato e aggiungerlo all'archivio MY del computer:
New-SelfSignedCertificate -DnsName "spsites.contoso.local" -CertStoreLocation "cert:\LocalMachine\My"
Impostare il certificato nel sito IIS
- Aprire la console di Gestione Internet Information Services.
- Espandere il server nella visualizzazione ad albero, espandere Siti, selezionare il sito SharePoint - Microsoft Entra ID e selezionare Associazioni.
- Selezionare https binding e quindi modifica.
- Nel campo Certificato TLS/SSL scegliere il certificato da usare (ad esempio spsites.contoso.local creato in precedenza) e selezionare OK.
Nota
Se si dispone di più server Front End Web, è necessario ripetere questa operazione in ogni server.
La configurazione di base dell'attendibilità tra SharePoint e Microsoft Entra ID è stata completata. Vediamo come accedere al sito di SharePoint come utente di Microsoft Entra.
Accedere come utente membro
Microsoft Entra ID ha due tipi di utenti: utenti guest e utenti membri. Si inizierà con un utente membro, che è semplicemente un utente incluso nell'organizzazione.
Creare un utente membro in Microsoft Entra ID
- Accedere all'interfaccia di amministrazione di Microsoft Entra come almeno un amministratore utente.
- Passare a Entra ID>Utenti.
- Selezionare Nuovo utente> nella parte superiore della schermata.
- Nelle proprietà Utente seguire questa procedura:
- Nel campo Nome visualizzato immettere
B.Simon
. - Nel campo Nome principale utente immettere il username@companydomain.extension. Ad esempio:
B.Simon@contoso.com
. - Selezionare la casella di controllo Mostra password e quindi annotare il valore visualizzato nella casella Password .
- Selezionare Rivedi e crea.
- Nel campo Nome visualizzato immettere
- Selezionare Crea.
- È possibile condividere il sito con questo utente e consentire l'accesso.
Concedere le autorizzazioni all'utente di Microsoft Entra in SharePoint
Accedere alla raccolta siti radice di SharePoint utilizzando il proprio account Windows (amministratore raccolta siti) e selezionare Condividi.
Nella finestra di dialogo è necessario digitare il valore esatto del nome utenteprincipalname, ad esempio AzureUser1@demo1984.onmicrosoft.com
, e prestare attenzione a selezionare il risultato dell'attestazione del nome (spostare il mouse su un risultato per visualizzarne il tipo di attestazione)
Importante
Prestare attenzione a digitare il valore esatto dell'utente che si desidera invitare e scegliere il tipo di attestazione appropriato nell'elenco; in caso contrario, la condivisione non funziona.
Questa limitazione è dovuta al fatto che SharePoint non convalida l'input dalla selezione utenti, che può generare confusione e causare errori di ortografia o utenti che scelgono accidentalmente il tipo di attestazione sbagliato.
Per risolvere questo scenario, è possibile usare una soluzione open source denominata EntraCP per connettere SharePoint 2019 /2016 / 2013 con Microsoft Entra ID e risolvere l'input nel tenant di Microsoft Entra. Per altre informazioni, vedere EntraCP.
Di seguito è riportata la stessa ricerca con EntraCP configurata: SharePoint restituisce gli utenti effettivi in base all'input:
Importante
EntraCP non è un prodotto Microsoft e non è supportato da supporto tecnico Microsoft. Per scaricare, installare e configurare EntraCP nella farm di SharePoint locale, vedere il sito Web EntraCP .
L'utente AzureUser1@demo1984.onmicrosoft.com
Di Microsoft Entra può ora usare la propria identità per accedere al sito https://spsites.contoso.local/
di SharePoint.
Concedere le autorizzazioni a un gruppo di sicurezza
Aggiungere il tipo di attestazione di gruppo all'applicazione aziendale
Nella panoramica dell'applicazione
SharePoint corporate farm
aziendale selezionare 2. Configurare l'accesso Single Sign-On.Nella sezione Attributi utente e attestazioni seguire questa procedura se non è presente alcuna attestazione di gruppo:
- Selezionare Aggiungi un'attestazione di gruppo, selezionare Gruppi di sicurezza, assicurarsi che l'attributo di origine sia impostato su ID gruppo
- Selezionare Personalizza il nome dell'attestazione di gruppo, quindi selezionare Emit groups as role claims (Genera gruppi come attestazioni ruolo) e selezionare Save (Salva).
- Gli attributi utente e le attestazioni dovrebbero essere simili al seguente:
Creare un gruppo di sicurezza in Microsoft Entra ID
Verrà ora creato un gruppo di sicurezza.
Passare a Entra ID>Gruppi.
Selezionare Nuovo gruppo.
Immettere il tipo di gruppo (sicurezza), il nome del gruppo (ad esempio,
AzureGroup1
) e il tipo di appartenenza. Aggiungere l'utente creato in precedenza come membro e selezionare Crea:
Concedere le autorizzazioni al gruppo di sicurezza in SharePoint
I gruppi di sicurezza Microsoft Entra vengono identificati con il relativo attributo Id
, che è un GUID (ad esempio, 00aa00aa-bb11-cc22-dd33-44ee44ee44ee
).
Senza un provider di attestazioni personalizzato, gli utenti devono digitare il valore esatto (Id
) del gruppo nello strumento di selezione persone e selezionare il tipo di attestazione corrispondente. Questo non è intuitivo né affidabile.
Per evitare questo problema, questo articolo utilizza il provider di attestazioni di terze parti EntraCP per individuare il gruppo in modo amichevole in SharePoint:
Gestire l'accesso degli utenti ospiti
Esistono due tipi di account guest:
- Account B2B ospite: questi utenti sono ospitati in un tenant Microsoft Entra esterno
- Account guest del servizio gestito: gli utenti vengono inseriti in un provider di identificazione Microsoft (Hotmail, Outlook) o in un provider di account di social networking (Google o simile)
Per impostazione predefinita, Microsoft Entra ID imposta sia "Identificatore utente univoco" che il campo "name" sull'attributo user.userprincipalname
.
Sfortunatamente, questo attributo è ambiguo per gli account guest, come illustrato nella tabella seguente:
Attributo di origine impostato in Microsoft Entra ID | Proprietà effettivamente utilizzate dall'ID Microsoft Entra per gli ospiti B2B | Proprietà effettiva utilizzata da Microsoft Entra ID per gli ospiti MSA | Proprietà su cui SharePoint può basarsi per convalidare l'identità |
---|---|---|---|
user.userprincipalname |
mail Per esempio: guest@PARTNERTENANT |
userprincipalname Per esempio: guest_outlook.com#EXT#@TENANT.onmicrosoft.com |
ambiguo |
user.localuserprincipalname |
userprincipalname Per esempio: guest_PARTNERTENANT#EXT#@TENANT.onmicrosoft.com |
userprincipalname Per esempio: guest_outlook.com#EXT#@TENANT.onmicrosoft.com |
userprincipalname |
Per concludere, per assicurarsi che tutti gli account guest siano identificati con lo stesso attributo, le attestazioni di identificatore dell'applicazione aziendale devono essere aggiornate per usare l'attributo user.localuserprincipalname
anziché user.userprincipalname
.
Aggiornare l'applicazione per usare un attributo coerente per tutti gli utenti guest
Nella panoramica dell'applicazione
SharePoint corporate farm
aziendale selezionare 2. Configurare l'accesso Single Sign-On.Nella pagina Configura single Sign-On con SAML selezionare l'icona Modifica nel riquadro Attributi utente e attestazioni .
Nella sezione Attributi utente e attestazioni seguire questa procedura:
Selezionare Identificatore utente univoco (ID nome), modificare la proprietà Attributo di origine in user.localuserprincipalname e selezionare Salva.
Selezionare
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name
, modificare la proprietà Attributo di origine in user.localuserprincipalname e selezionare Salva.Gli attributi utente e le attestazioni dovrebbero essere simili al seguente:
Invitare utenti ospite in SharePoint
Nota
In questa sezione si presuppone che venga usato il provider di attestazioni EntraCP
Nella sezione precedente è stata aggiornata l'applicazione aziendale per usare un attributo coerente per tutti gli account guest.
Ora, la configurazione di EntraCP deve essere aggiornata per riflettere tale modifica e usare l'attributo userprincipalname
per gli account guest:
- Aprire il sito Amministrazione centrale SharePoint .
- In Sicurezza selezionare EntraCP global configuration (Configurazione globale EntraCP).
- Nella sezione Proprietà identificatore utente: Impostare l'identificatore utente per gli utenti 'Guest': su UserPrincipalName.
- Selezionare OK
È ora possibile invitare qualsiasi utente guest nei siti di SharePoint.
Configurare la federazione per più applicazioni Web
La configurazione funziona per una singola applicazione Web, ma deve essere modificata ulteriormente se si prevede di usare lo stesso provider di identità attendibili per più applicazioni Web. Si supponga, ad esempio, di avere un'applicazione https://otherwebapp.contoso.local/
Web separata e di abilitare l'autenticazione Microsoft Entra. A tale scopo, configurare SharePoint per passare il parametro SAML WReply e aggiungere gli URL nell'applicazione aziendale.
Configurare SharePoint per passare il parametro SAML WReply
- Nel server SharePoint aprire la shell di gestione di SharePoint 201x ed eseguire i comandi seguenti. Usare lo stesso nome per l'autorità emittente del token di identità attendibile usata in precedenza.
$t = Get-SPTrustedIdentityTokenIssuer "MicrosoftEntraTrust"
$t.UseWReplyParameter = $true
$t.Update()
Aggiungere gli URL nell'applicazione aziendale
Accedere all'interfaccia di amministrazione di Microsoft Entra come almeno un amministratore di applicazioni cloud.
Passare a Entra ID>Enterprise apps> Selezionare l'applicazione aziendale creata in precedenza e selezionare Single Sign-On.
Nella pagina Configura single Sign-On con SAML modificare Configurazione SAML di base.
Nella sezione URL di risposta (URL del servizio consumer di asserzione), aggiungere l'URL (ad esempio,
https://otherwebapp.contoso.local/
) di tutte le applicazioni Web aggiuntive che necessitano di effettuare l'accesso degli utenti con Microsoft Entra ID e selezionare Salva.
Configurare la durata del token di sicurezza
Per impostazione predefinita, Microsoft Entra ID crea un token SAML valido per 1 ora, che non può essere personalizzato nel portale di Azure o usando un criterio di accesso condizionale.
Tuttavia, è possibile creare un criterio di durata del token personalizzato e assegnarlo all'applicazione aziendale creata per SharePoint Server.
Per ottenere questo risultato, è possibile eseguire lo script seguente:
Install-Module Microsoft.Graph
Connect-MgGraph -Scopes "Policy.ReadWrite.ApplicationConfiguration","Policy.Read.All","Application.ReadWrite.All"
$appDisplayName = "SharePoint corporate farm"
$sp = Get-MgServicePrincipal -Search DisplayName:"$appDisplayName" -ConsistencyLevel eventual
$oldPolicy = Get-MgServicePrincipalTokenLifetimePolicy -ServicePrincipalId $sp.Id
if ($null -ne $oldPolicy) {
# There can be only 1 TokenLifetimePolicy associated to the service principal (or 0, as by default)
Remove-MgServicePrincipalAppManagementPolicy -AppManagementPolicyId $oldPolicy.Id -ServicePrincipalId $sp.Id
}
# Get / create a custom token lifetime policy
$policyDisplayName = "WebPolicyScenario"
$policy = Get-MgPolicyTokenLifetimePolicy -Filter "DisplayName eq '$policyDisplayName'"
if ($null -eq $policy) {
$params = @{
Definition = @('{"TokenLifetimePolicy":{"Version":1,"AccessTokenLifetime":"4:00:00"}}')
DisplayName = $policyDisplayName
IsOrganizationDefault = $false
}
$policy = New-MgPolicyTokenLifetimePolicy -BodyParameter $params
}
# Assign the token lifetime policy to an app
$body = @{
"@odata.id" = "https://graph.microsoft.com/v1.0/policies/tokenLifetimePolicies/$($policy.Id)"
}
Invoke-GraphRequest -Uri ('https://graph.microsoft.com/v1.0/servicePrincipals/{0}/tokenLifetimePolicies/$ref' -f $sp.Id) -Method POST -Body $body