Implementare l'autenticazione federata

SI APPLICA A:yes-img-132013 yes-img-162016 yes-img-192019 yes-img-seSubscription Edition no-img-sopSharePoint 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:

ADFS Relying Party

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:

    1. 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
      
    2. Aprire il sito Amministrazione centrale SharePoint .

    3. In Impostazioni di sistema selezionare Configura mapping di accesso alternativo. Verrà visualizzata la casella Raccolta mapping di accesso alternativo .

    4. Filtrare la visualizzazione con la nuova applicazione Web e verificare che venga visualizzata una visualizzazione simile alla seguente:

      Mapping di accesso alternativo dell'applicazione Web

  • Se si estende un'applicazione Web esistente per impostare l'autenticazione di ADFS in una nuova zona:

    1. 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
      
    2. Aprire il sito Amministrazione centrale SharePoint .

    3. In Impostazioni di sistema selezionare Configura mapping di accesso alternativo. Verrà visualizzata la casella Raccolta mapping di accesso alternativo .

    4. Filtrare la visualizzazione con l'applicazione Web estesa e verificare che venga visualizzata una visualizzazione simile alla seguente:

      Mapping di accesso alternativo dell'applicazione estesa

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.

  1. Aprire la console di Windows PowerShell.

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

  1. Aprire la console di Gestione Internet Information Services.

  2. Espandere il server nella visualizzazione albero, espandere Siti, selezionare SharePoint - ADFS nel sito contoso.local e selezionare Associazioni.

  3. Selezionare https binding e quindi Edit (Modifica).

  4. 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).

  1. Aprire il sito Amministrazione centrale SharePoint .

  2. In Gestione applicazioni selezionare Crea raccolte siti. Verrà visualizzata la pagina Crea raccolte siti .

  3. Digitare un titolo, un URL e selezionare il modello Sito del team.

  4. Nella sezione Amministratore primario raccolta siti fare clic sull'icona del libro per aprire la finestra di dialogo selezione utenti.

  5. Nella finestra di dialogo selezione utenti digitare l'account amministratore di Windows, ad esempio yvand.

  6. A sinistra filtrare l'elenco facendo clic su Organizzazioni. Verrà visualizzato un output simile al seguente:

    Amministratore di Windows selezione utenti

  7. Selezionare l'account e fare clic su OK.

  8. Nella sezione Amministratore raccolta siti secondario fare clic sull'icona del libro per aprire la finestra di dialogo selezione utenti.

  9. Nella finestra di dialogo selezione utenti digitare il valore di posta elettronica esatto dell'account amministratore di AD FS, ad esempio yvand@contoso.local.

  10. A sinistra filtrare l'elenco facendo clic su Contoso.local. Verrà visualizzato un output simile al seguente:

    Posta elettronica dell'amministratore FS di Selezione utenti

  11. Selezionare l'account e fare clic su OK.

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