Configurare l'autenticazione OIDC in SharePoint Server con Active Directory Federation Services (AD FS)
SI APPLICA A:2013
2016
2019
Subscription Edition
SharePoint in Microsoft 365
Prerequisiti
Quando si configura SharePoint Server con Active Directory Federation Services (AD FS) tramite l'autenticazione OpenID Connect (OIDC), sono necessarie le risorse seguenti per eseguire la configurazione:
- Farm SharePoint Server Subscription Edition.
- ADFS in Windows Server 2016 o versioni successive, già creato, con la chiave pubblica del certificato di firma AD FS esportato in un
.cer
file.
Questo articolo usa i valori di esempio seguenti per l'installazione di AD FS OIDC:
Valore | Collegamento |
---|---|
URL del sito di SharePoint | https://spsites.contoso.local/ |
URL del sito AD FS | https://adfs.contoso.local/adfs/ |
Endpoint di autenticazione AD FS | https://adfs.contoso.local/adfs/oauth2/authorize |
RegisteredIssuerName URL | https://adfs.contoso.local/adfs/ |
AD FS SignoutURL | https://adfs.contoso.local/adfs/oauth2/logout |
Tipo di attestazione identity | http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress |
Amministratore della raccolta siti di Windows | contoso\yvand |
Email valore dell'amministratore della raccolta siti federata (AD FS) | yvand@contoso.local |
Passaggio 1: Configurare il provider di identità
Per configurare OIDC con AD FS, seguire questa procedura:
In Gestione AD FS fare clic con il pulsante destro del mouse su Application Gruppi e scegliere Aggiungi gruppo di applicazioni.
Passare alla pagina iniziale , immettere ADFSSSO nel campo Nome e in Applicazioni client-server selezionare il Web browser che accede a un modello di applicazione Web . Selezionare quindi Avanti.
Passare alla pagina Applicazione nativa e copiare il valore identificatore client . Verrà usato in un secondo momento come valore per
DefaultClientIdentifier
il parametro durante la configurazione di SharePoint.Nel campo URL di reindirizzamento immettere
https://spsites.contoso.local/
e selezionare Aggiungi. Selezionare quindi Avanti.Passare alla pagina Riepilogo e selezionare Avanti.
Passare alla pagina Completa e selezionare Chiudi.
Esportare il certificato di firma del token da AD FS. Questo certificato di firma del token verrà usato nella configurazione di SharePoint. Le immagini seguenti illustrano come esportare il certificato di firma token da AD FS:
Assicurarsi che l'ID attestazione richiesto sia incluso in
id_token
da AD FS. Si consideri la posta elettronica come esempio:Si presuppone che AD FS abbia configurato la regola che legge l'attestazione dell'identificatore dall'archivio attributi, ad esempio AD. Seguire questa procedura per creare la regola di trasformazione rilascio per questa applicazione Web specifica creata in AD FS in precedenza:
Aprire l'applicazione Web creata e passare alla scheda Regola trasformazione problema .
Selezionare Aggiungi regola e selezionare Invia attributi LDAP come attestazioni dall'elenco di opzioni.
Assegnare alla regola attestazione il nome AD e selezionare Active Directory dal menu a discesa Archivio attributi. Creare due mapping usando le caselle a discesa, come illustrato di seguito:
Attributo Valore Indirizzi di posta elettronica Indirizzo di posta elettronica Token-Groups - Qualificato per nome di dominio Ruolo Selezionare Fine per chiudere la Procedura guidata regola e selezionare OK per chiudere le proprietà dell'applicazione Web. Selezionare OK un'altra volta per completare la regola.
Se si imposta OIDC con SharePoint Server, l'attestazione nbf deve essere configurata sul lato server AD FS nell'applicazione Web creata. Se l'attestazione nbf non esiste in questa applicazione Web, seguire questa procedura per crearla:
Aprire l'applicazione Web creata e passare alla scheda Regola trasformazione problema .
Selezionare Aggiungi regola e quindi Applica. Nell'Aggiunta guidata regola attestazione trasformazione selezionare Invia attestazioni usando una regola personalizzata dalle opzioni del modello di regola attestazione.
Selezionare Avanti e immettere la stringa seguente nel campo Regola personalizzata :
c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname"] => issue(Type = "nbf", Value = "0");
Seleziona Fine.
Passaggio 2: Modificare le proprietà della farm di SharePoint
In questo passaggio è necessario modificare le proprietà della farm di SharePoint Server in base alla versione della farm di SharePoint Server.
- Per altre informazioni sulla configurazione delle proprietà della farm di SharePoint per SharePoint Server Subscription Edition versione 24H1, vedere Configurare SPSE versione 24H1 o versione successiva.
- Per altre informazioni sulla configurazione delle proprietà della farm di SharePoint per SharePoint Server Subscription Edition versione precedente alla 24H1, vedere Configurare SPSE prima della versione 24H1.
Configurare SharePoint Server Subscription Edition versione 24H1 o successiva con la preferenza per la funzionalità Versione anticipata
A partire da SharePoint Server Subscription Edition versione 24H1 (marzo 2024), se la farm di SharePoint è configurata per la preferenza di funzionalità versione anticipata, è possibile configurare le proprietà della farm di SharePoint Server usando Gestione certificati SharePoint per gestire il certificato cookie nonce. Il certificato di cookie nonce fa parte dell'infrastruttura per garantire che i token di autenticazione OIDC siano sicuri. Eseguire lo script di PowerShell seguente per configurare:
Importante
Per usare questo script, la farm di SharePoint deve essere impostata su Versione anticipata, come indicato in precedenza. In caso contrario, lo script verrà completato senza errori, ma la chiamata a $farm. UpdateNonceCertificate() non eseguirà alcuna operazione. Se non si vuole configurare la farm per la versione anticipata, è necessario usare invece la procedura Configura SPSE prima della versione 24H1 .
Nota
Avviare SharePoint Management Shell come amministratore della farm per eseguire lo script seguente. Leggere attentamente le istruzioni indicate nello script di PowerShell seguente. Sarà necessario immettere valori specifici dell'ambiente in determinate posizioni.
# Set up farm properties to work with OIDC
# Create the Nonce certificate
$cert = New-SelfSignedCertificate -CertStoreLocation Cert:\LocalMachine\My -Provider 'Microsoft Enhanced RSA and AES Cryptographic Provider' -Subject "CN=SharePoint Cookie Cert"
# Import certificate to Certificate Management
$certPath = "<path and file name to save the exported cert. ex: c:\certs\nonce.pfx>"
$certPassword = ConvertTo-SecureString -String "<password>" -Force -AsPlainText
Export-PfxCertificate -Cert $cert -FilePath $certPath -Password $certPassword
$nonceCert = Import-SPCertificate -Path $certPath -Password $certPassword -Store "EndEntity" -Exportable:$true
# Update farm property
$farm = Get-SPFarm
$farm.UpdateNonceCertificate($nonceCert,$true)
Configurare SharePoint Server Subscription Edition precedenti alla versione 24H1
# Set up farm properties to work with OIDC
$cert = New-SelfSignedCertificate -CertStoreLocation Cert:\LocalMachine\My -Provider 'Microsoft Enhanced RSA and AES Cryptographic Provider' -Subject "CN=SharePoint Cookie Cert"
$rsaCert = [System.Security.Cryptography.X509Certificates.RSACertificateExtensions]::GetRSAPrivateKey($cert)
$fileName = $rsaCert.key.UniqueName
# If you have multiple SharePoint servers in the farm, you need to export the certificate by Export-PfxCertificate and import the certificate to all other SharePoint servers in the farm by Import-PfxCertificate.
# After the certificate is successfully imported to SharePoint Server, we will need to grant access permission to the certificate's private key.
$path = "$env:ALLUSERSPROFILE\Microsoft\Crypto\RSA\MachineKeys\$fileName"
$permissions = Get-Acl -Path $path
# Replace the <web application pool account> with the real application pool account of your web application
$access_rule = New-Object System.Security.AccessControl.FileSystemAccessRule(<Web application pool account>, 'Read', 'None', 'None', 'Allow')
$permissions.AddAccessRule($access_rule)
Set-Acl -Path $path -AclObject $permissions
# Update farm properties
$farm = Get-SPFarm
$farm.Properties['SP-NonceCookieCertificateThumbprint']=$cert.Thumbprint
$farm.Properties['SP-NonceCookieHMACSecretKey']='seed'
$farm.Update()
Passaggio 3: Configurare SharePoint per considerare attendibili i provider di identità
In questo passaggio si creerà un SPTrustedTokenIssuer
oggetto che archivierà la configurazione che SharePoint deve considerare attendibile AD FS come provider OIDC. Avviare SharePoint Management Shell come amministratore della farm ed eseguire lo script seguente per crearla:
Nota
Leggere attentamente le istruzioni indicate nello script di PowerShell seguente. Sarà necessario immettere valori specifici dell'ambiente in diverse posizioni.
# Define claim types
$email = New-SPClaimTypeMapping "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" -IncomingClaimTypeDisplayName "EmailAddress" -SameAsIncoming
# Public key of the AD FS signing certificate
$signingCert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("C:\Data\Claims\ADFS Signing.cer")
# Set the AD FS URL where users are redirected to authenticate
$authendpointurl = "https://adfs.contoso.local/adfs/oauth2/authorize"
$registeredissuernameurl = "https://adfs.contoso.local/adfs"
$signouturl = "https://adfs.contoso.local/adfs/oauth2/logout"
# Replace <Client Identifier> with the value you saved in step #3 of AD FS Setup section
$clientIdentifier = "<Your Client Identifier>"
# Create a new SPTrustedIdentityTokenIssuer in SharePoint
New-SPTrustedIdentityTokenIssuer -Name "Contoso.local" -Description "Contoso.local" -ImportTrustCertificate $signingCert -ClaimsMappings $email -IdentifierClaim $email.InputClaimType -RegisteredIssuerName $registeredissuernameurl -AuthorizationEndPointUri $authendpointurl -SignOutUrl $signouturl -DefaultClientIdentifier $clientIdentifier
Il New-SPTrustedIdentityTokenIssuer
cmdlet di PowerShell viene esteso per supportare OIDC usando i parametri seguenti:
Parametro | Descrizione |
---|---|
Nome | Assegna un nome al nuovo emittente di token. |
Descrizione | Fornisce una descrizione al nuovo emittente di token. |
ImportTrustCertificate | Importa un elenco di certificati X509, che verranno usati per la convalida id_token dall'identificatore OIDC. Se l'IDP OIDC usa più di un certificato per firmare digitalmente id_token , importare questi certificati e SharePoint verrà convalidato id_token in base alla firma digitale generata usando questi certificati. |
ClaimsMappings | Oggetto SPClaimTypeMapping che verrà usato per identificare l'attestazione id_token in verrà considerata come identificatore in SharePoint. |
IdentifierClaim | Specifica il tipo di identificatore. |
RegisteredIssuerName | Specifica l'identificatore dell'autorità di certificazione, che genera l'oggetto id_token . Verrà usato per convalidare l'oggetto id_token . |
AuthorizationEndPointUrl | Specifica l'endpoint di autorizzazione del provider di identità OIDC. |
SignoutUrl | Specifica l'endpoint di disconnessione del provider di identità OIDC. |
DefaultClientIdentifier | Specifica l'oggetto client_id del server SharePoint, assegnato dal provider di identità OID. Questa operazione verrà convalidata in base all'attestazione aud in id_token . |
ResponseTypesSupported | Specifica il tipo di risposta di IDP, che può essere accettato da questo emittente di token. Può accettare due stringhe: id_token e code id_token . Se questo parametro non viene specificato, verrà usato code id_token come predefinito. |
Importante
Il certificato pertinente deve essere aggiunto all'archivio certificati dell'autorità radice di SharePoint e sono disponibili due opzioni possibili per eseguire questa operazione:
Se il certificato di firma 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 aggiungere il certificato:
$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 di AD FS è un certificato autofirmati (non consigliato per motivi di sicurezza).
La chiave pubblica del certificato di firma AD FS deve essere aggiunta all'archivio. Avviare SharePoint Management Shell ed eseguire lo script seguente per aggiungere il certificato:
$rootCert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("C:\Data\Claims\ADFS Signing.cer") New-SPTrustedRootAuthority -Name "adfs.contoso.local signing certificate" -Certificate $rootCert
Passaggio 4: Configurare un'applicazione Web SharePoint
In questo passaggio si configurerà un'applicazione Web in SharePoint per l'uso dell'autenticazione OIDC di AD FS, usando l'oggetto SPTrustedIdentityTokenIssuer
creato nel passaggio precedente.
Importante
- 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à la federazione OIDC di AD FS deve essere configurato con HTTPS.
È possibile completare questa configurazione:
Creazione di una nuova applicazione Web e uso dell'autenticazione OIDC di Windows e AD FS nell'area predefinita. Per creare una nuova applicazione Web, eseguire le operazioni seguenti:
Avviare SharePoint Management Shell ed eseguire lo script seguente per creare un nuovo
SPAuthenticationProvider
:# This script creates a trusted authentication provider for OIDC $sptrust = Get-SPTrustedIdentityTokenIssuer "contoso.local" $trustedAp = New-SPAuthenticationProvider -TrustedIdentityTokenIssuer $sptrust
Seguire Creare un'applicazione Web in SharePoint Server per creare una nuova applicazione Web che abilita HTTPS/SSL denominata SharePoint - OIDC in contoso.local.
Aprire il sito Amministrazione centrale SharePoint.
Aprire l'applicazione Web creata, scegliere "Provider di autenticazione" nella barra multifunzione, fare clic sul collegamento per l'area "Predefinita" e selezionare contoso.local come Provider di identità attendibile.
Passare a Impostazioni> di sistemaConfigurare mapping di> accessoalternativo Raccolta di mapping di accesso alternativo.
Filtrare la visualizzazione con la nuova applicazione Web e verificare di visualizzare le informazioni seguenti:
Estensione di un'applicazione Web esistente per impostare l'autenticazione OIDC di AD FS in una nuova zona. Per estendere un'applicazione Web esistente, eseguire le operazioni seguenti:
Avviare SharePoint Management Shell ed eseguire PowerShell per estendere l'applicazione Web:
Esempio:
# Get the trusted provider $sptrust = Get-SPTrustedIdentityTokenIssuer "Contoso.local" $ap = New-SPAuthenticationProvider -TrustedIdentityTokenIssuer $sptrust # Get the web app $wa = Get-SPWebApplication http://spsites # Extend the web app to the "Intranet" zone using trusted provider auth and a SharePoint managed certificate called "SharePoint OIDC Site" New-SPWebApplicationExtension -Identity $wa -Name "spsites" -port 443 -HostHeader 'spsites.contoso.local'-AuthenticationProvider $ap -SecureSocketsLayer -UseServerNameIndication -Certificate 'SharePoint OIDC Site' -Zone 'Intranet' -URL 'https://spsites.contoso.local'
Passare a Impostazioni> di sistemaConfigurare mapping di> accessoalternativo Raccolta di mapping di accesso alternativo.
Filtrare la visualizzazione con l'applicazione Web estesa e verificare di visualizzare le informazioni seguenti:
Passaggio 5: Verificare che l'applicazione Web sia configurata con il certificato SSL
Poiché l'autenticazione OpenID Connect 1.0 può funzionare solo con il protocollo HTTPS, è necessario impostare un certificato nell'applicazione Web corrispondente. Se non è già stato fatto, seguire questa procedura per impostare un certificato:
Generare il certificato del sito:
Nota
È possibile ignorare questo passaggio se il certificato è già stato generato.
Aprire la console di PowerShell di SharePoint.
Eseguire lo script seguente per generare un certificato autofirma e aggiungerlo alla farm di SharePoint:
New-SPCertificate -FriendlyName "Contoso SharePoint (2021)" -KeySize 2048 -CommonName spsites.contoso.local -AlternativeNames extranet.contoso.local, onedrive.contoso.local -OrganizationalUnit "Contoso IT Department" -Organization "Contoso" -Locality "Redmond" -State "Washington" -Country "US" -Exportable -HashAlgorithm SHA256 -Path "\\server\fileshare\Contoso SharePoint 2021 Certificate Signing Request.txt" Move-SPCertificate -Identity "Contoso SharePoint (2021)" -NewStore EndEntity
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:
È possibile usare il cmdlet di PowerShell seguente per assegnare il certificato all'applicazione Web:
Set-SPWebApplication -Identity https://spsites.contoso.local -Zone Default -SecureSocketsLayer -Certificate "Contoso SharePoint (2021)"
Passaggio 6: 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.
Passare a Gestione> applicazioniCreare raccolte siti.
Digitare un titolo, un URL e selezionare il modello Sito del team.
Nella sezione Amministratore primario raccolta siti selezionare l'icona del libro per aprire la finestra di dialogo Selezione Persone.
Nella finestra di dialogo Selezione Persone digitare l'account amministratore di Windows, ad esempio yvand.
Filtrare l'elenco a sinistra selezionando Organizzazioni. Di seguito è riportato un output di esempio:
Passare all'account e selezionare OK.
Nella sezione Amministratore raccolta siti secondario selezionare l'icona del libro per aprire la finestra di dialogo Selezione Persone.
Nella finestra di dialogo Selezione Persone digitare il valore di posta elettronica esatto dell'account amministratore di AD FS, ad esempio yvand@contoso.local.
Filtrare l'elenco a sinistra selezionando Contoso.local. Di seguito è riportato un output di esempio:
Passare all'account e selezionare OK.
Selezionare OK per creare la raccolta siti.
Dopo aver creato la raccolta siti, è possibile accedere usando l'account amministratore della raccolta siti Windows o federato (AD FS OIDC).
Passaggio 7: Configurare Persone selezione
Nell'autenticazione OIDC, la selezione Persone non convalida l'input, il che può causare errori di ortografia o utenti che selezionano accidentalmente il tipo di attestazione errato. È possibile risolvere il problema usando un provider di attestazioni personalizzato o il nuovo provider di attestazioni supportato da UPA incluso in SharePoint Server Subscription Edition. Per configurare un provider di attestazioni supportato da UPA, vedere Selezione Persone avanzata per l'autenticazione moderna.