Implementare l'autenticazione federata
SI APPLICA A:2013 2016 2019 Subscription Edition SharePoint in Microsoft 365
Implementare l'autenticazione federata in SharePoint Server
Questa guida dettagliata illustra come configurare l'autenticazione federata in SharePoint con Active Directory Federation Services (AD FS).
Panoramica dell'autenticazione federata
Nell'autenticazione federata SharePoint elabora i token SAML rilasciati da un servizio token di sicurezza esterno attendibile. Un utente che tenta di accedere viene reindirizzato a tale servizio token di sicurezza, che autentica l'utente e genera un token SAML al termine dell'autenticazione. SharePoint elabora quindi questo token e lo usa per creare il proprio e autorizzare l'utente ad accedere al sito.
Prerequisiti
Per eseguire la configurazione, sono necessarie le risorse seguenti:
- Farm di SharePoint 2013 o versione successiva.
- Una farm AD FS versione 2 o successiva, già creata, con la chiave pubblica del certificato di firma AD FS esportata in un file di .cer.
Questo articolo usa i valori seguenti:
- URL del sito di SharePoint:
https://spsites.contoso.local/
- URL del sito AD FS:
https://adfs.contoso.local/adfs/ls/
- Area di autenticazione (identificatore della relying party):
urn:contoso:spsites
- Tipo di attestazione Identity:
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
- Tipo di attestazione del ruolo:
http://schemas.microsoft.com/ws/2008/06/identity/claims/role
- Amministratore della raccolta siti di Windows:
contoso\yvand
- Valore di posta elettronica dell'amministratore della raccolta siti federata (AD FS):
yvand@contoso.local
Creare una relying party in AD FS
In questo passaggio viene creata una relying party in AD FS. La relying party archivierà la configurazione necessaria per funzionare con SharePoint e le regole attestazioni che definiscono quali attestazioni verranno inserite nel token SAML al termine dell'autenticazione.
Nel server AD FS avviare PowerShell ed eseguire lo script seguente:
### STEP 1: Create the relying party
# Name of the Relying Party
$name = "SPSites"
# Unique identifier of the Relying Party (in SharePoint it's referred to as the realm)
$identifier = "urn:contoso:spsites"
# Authority that authenticates users
$identityProvider = "Active Directory"
# SharePoint URL where user is redirected upon successful authentication
$redirectURL = "https://spsites.contoso.local/_trust/default.aspx"
# Allow everyone to use this relying party
$allowEveryoneRule = '=> issue (Type = "http://schemas.microsoft.com/authorization/claims/permit", value = "true");'
# Create the Relying Party
Add-ADFSRelyingPartyTrust -Name $name -Identifier $identifier -ClaimsProviderName $identityProvider -Enabled $true -WSFedEndpoint $redirectURL -IssuanceAuthorizationRules $allowEveryoneRule -Confirm:$false
### STEP 2: Add claim rules to the relying party
# Rule below configured relying party to issue 2 claims in the SAML token: email and role
$claimsRule = @"
@RuleTemplate = "LdapClaims"
@RuleName = "AD"
c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"]
=> issue(
store = "Active Directory",
types = ("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress", "http://schemas.microsoft.com/ws/2008/06/identity/claims/role"),
query = ";mail,tokenGroups(fullDomainQualifiedName);{0}",
param = c.Value);
"@
# Apply the rule to the Relying Party
Set-ADFSRelyingPartyTrust -TargetName $name -IssuanceTransformRules $claimsRule
Al termine dello script, la relying party in AD FS dovrebbe essere simile alla seguente:
Configurare SharePoint per considerare attendibile AD FS
In questo passaggio si crea un SPTrustedLoginProvider che archivia la configurazione di cui SharePoint deve considerare attendibile AD FS. Avviare SharePoint Management Shell ed eseguire lo script seguente per crearla:
# Define claim types
$email = New-SPClaimTypeMapping "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" -IncomingClaimTypeDisplayName "EmailAddress" -SameAsIncoming
$role = New-SPClaimTypeMapping "http://schemas.microsoft.com/ws/2008/06/identity/claims/role" -IncomingClaimTypeDisplayName "Role" -SameAsIncoming
# Public key of the AD FS signing certificate
$signingCert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("C:\Data\Claims\ADFS Signing.cer")
# Unique realm (corresponds to the unique identifier of the AD FS Relying Party)
$realm = "urn:contoso:spsites"
# Set the AD FS URL where users are redirected to authenticate
$signinurl = "https://adfs.contoso.local/adfs/ls/"
# Create a new SPTrustedIdentityTokenIssuer in SharePoint
New-SPTrustedIdentityTokenIssuer -Name "Contoso.local" -Description "Contoso.local" -Realm $realm -ImportTrustCertificate $signingCert -ClaimsMappings $email,$role -SignInUrl $signinurl -IdentifierClaim $email.InputClaimType
Importante
NON usare l'opzione -UseDefaultConfiguration con il cmdlet New-SPTrustedIdentityTokenIssuer. Questa opzione causa effetti collaterali imprevisti a causa del modo in cui imposta internamente l'identità degli utenti.
È quindi necessario aggiungere il certificato pertinente all'archivio certificati dell'autorità radice di SharePoint. Sono disponibili 2 opzioni possibili:
- Se il certificato di firma di AD FS viene emesso da un'autorità di certificazione (procedura consigliata per motivi di sicurezza)
La chiave pubblica del certificato dell'autorità di certificazione (e tutti gli intermedi) deve essere aggiunta all'archivio: Avviare SharePoint Management Shell ed eseguire lo script seguente per aggiungerlo:
$rootCert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("C:\Data\Claims\ADFS Signing issuer.cer")
New-SPTrustedRootAuthority -Name "adfs.contoso.local signing root authority" -Certificate $rootCert
- Se il certificato di firma ADFS è un certificato autofirma (non consigliato per motivi di sicurezza)
La chiave pubblica del certificato di firma ADFS stesso deve essere aggiunta all'archivio: Avviare SharePoint Management Shell ed eseguire lo script seguente per aggiungerlo:
$rootCert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("C:\Data\Claims\ADFS Signing.cer")
New-SPTrustedRootAuthority -Name "adfs.contoso.local signing certificate" -Certificate $rootCert
Configurare l'applicazione Web SharePoint
In questo passaggio si configura un'applicazione Web in SharePoint per la federazione con l'attendibilità AD FS, usando SPTrustedLoginProvider creato in precedenza.
Esistono alcune regole importanti da rispettare:
- Per l'area predefinita dell'applicazione Web SharePoint deve essere abilitata l'autenticazione di Windows. Questa operazione è necessaria per il crawler di ricerca.
- L'URL di SharePoint che userà la federazione AD FS deve essere configurato con HTTPS.
Esistono due configurazioni possibili:
Se si crea una nuova applicazione Web e si usa l'autenticazione di Windows e AD FS nell'area predefinita:
Avviare SharePoint Management Shell ed eseguire lo script seguente:
# This script creates a new web application and sets Windows and AD FS authentication on the Default zone # URL of the SharePoint site federated with ADFS $trustedSharePointSiteUrl = "https://spsites.contoso.local/" $applicationPoolManagedAccount = "Contoso\spapppool" $winAp = New-SPAuthenticationProvider -UseWindowsIntegratedAuthentication -DisableKerberos:$true $sptrust = Get-SPTrustedIdentityTokenIssuer "Contoso.local" $trustedAp = New-SPAuthenticationProvider -TrustedIdentityTokenIssuer $sptrust New-SPWebApplication -Name "SharePoint - ADFS on contoso.local" -Port 443 -SecureSocketsLayer -URL $trustedSharePointSiteUrl -ApplicationPool "SharePoint - ADFS on contoso.local" -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 visualizzata una visualizzazione simile alla seguente:
Se si estende un'applicazione Web esistente per impostare l'autenticazione di ADFS in una nuova zona:
Avviare SharePoint Management Shell ed eseguire lo script seguente:
# This script extends an existing web application to set AD FS 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 "Contoso.local" $ap = New-SPAuthenticationProvider -TrustedIdentityTokenIssuer $sptrust $wa = Get-SPWebApplication $webAppDefaultZoneUrl New-SPWebApplicationExtension -Name "SharePoint - ADFS on contoso.local" -Identity $wa -SecureSocketsLayer -Zone Intranet -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 visualizzata una visualizzazione simile alla seguente:
Impostare un certificato HTTPS in IIS
Poiché l'URL di SharePoint usa il protocollo HTTPS (https://spsites.contoso.local/
), è necessario impostare un certificato nel sito Internet Information Services (IIS) corrispondente.
Generare il certificato del sito
Nota
È possibile ignorare questo passaggio se il certificato è già stato generato.
Aprire la console di Windows PowerShell.
Eseguire lo script seguente per generare un certificato autofirma e aggiungerlo all'archivio MY del computer:
New-SelfSignedCertificate -DnsName "spsites.contoso.local" -CertStoreLocation "cert:\LocalMachine\My"
Importante
I certificati autofirmati sono adatti solo a scopo di test. Negli ambienti di produzione è consigliabile usare i certificati rilasciati da un'autorità di certificazione.
Impostare il certificato
Aprire la console di Gestione Internet Information Services.
Espandere il server nella visualizzazione albero, espandere Siti, selezionare SharePoint - ADFS nel sito contoso.local e selezionare Associazioni.
Selezionare https binding e quindi Edit (Modifica).
Nel campo Certificato TLS/SSL scegliere spsites.contoso.local certificate e quindi selezionare OK.
Creare la raccolta siti
In questo passaggio viene creata una raccolta siti del team con due amministratori: uno come amministratore di Windows e uno come amministratore federato (AD FS).
Aprire il sito Amministrazione centrale SharePoint .
In Gestione applicazioni selezionare Crea raccolte siti. Verrà visualizzata la pagina Crea raccolte siti .
Digitare un titolo, un URL e selezionare il modello Sito del team.
Nella sezione Amministratore primario raccolta siti fare clic sull'icona del libro per aprire la finestra di dialogo selezione utenti.
Nella finestra di dialogo selezione utenti digitare l'account amministratore di Windows, ad esempio
yvand
.A sinistra filtrare l'elenco facendo clic su Organizzazioni. Verrà visualizzato un output simile al seguente:
Selezionare l'account e fare clic su OK.
Nella sezione Amministratore raccolta siti secondario fare clic sull'icona del libro per aprire la finestra di dialogo selezione utenti.
Nella finestra di dialogo selezione utenti digitare il valore di posta elettronica esatto dell'account amministratore di AD FS, ad esempio
yvand@contoso.local
.A sinistra filtrare l'elenco facendo clic su Contoso.local. Verrà visualizzato un output simile al seguente:
Selezionare l'account e fare clic su OK.
Fare clic su OK per creare la raccolta siti.
Dopo aver creato la raccolta siti, è possibile accedervi usando l'account amministratore di Windows o della raccolta siti federata.
Operazioni successive
Nell'autenticazione federata, la selezione utenti non convalida l'input, il che può causare errori di ortografia o utenti che scelgono accidentalmente il tipo di attestazione errato. Questo problema può essere risolto usando un provider di attestazioni personalizzato; ad esempio LDAPCP.
Importante
LDAPCP non è un prodotto Microsoft e non è supportato dal supporto tecnico Microsoft. Per scaricare, installare e configurare LDAPCP nella farm di SharePoint locale, vedere il sito Web LDAPCP.
In SharePoint Server Subscription Edition la selezione utenti nativi può cercare e risolvere gli utenti usando l'applicazione del servizio profili utente per l'autenticazione federata. Informazioni su come configurare selezione utenti per l'uso dell'autenticazione federata.