Share via


Einrichten der OIDC-Authentifizierung in SharePoint-Server mit Active Directory-Verbunddiensten (AD FS)

GILT FÜR:no-img-132013 no-img-162016 no-img-192019 yes-img-seSubscription Edition no-img-sopSharePoint in Microsoft 365

Voraussetzungen

Wenn Sie SharePoint Server mit Active Directory-Verbunddienste (AD FS) (AD FS) mithilfe der OpenID Connect-Authentifizierung (OIDC) konfigurieren, benötigen Sie die folgenden Ressourcen, um die Konfiguration auszuführen:

  1. Eine SharePoint Server-Abonnementedition Farm.
  2. AD FS in Windows Server 2016 oder höher, bereits erstellt, mit dem öffentlichen Schlüssel des AD FS-Signaturzertifikats, das in eine .cer Datei exportiert wurde.

In diesem Artikel werden die folgenden Beispielwerte für das AD FS-OIDC-Setup verwendet:

Wert Link
Url der SharePoint-Website https://spsites.contoso.local/
AD FS-Website-URL https://adfs.contoso.local/adfs/
AD FS-Authentifizierungsendpunkt https://adfs.contoso.local/adfs/oauth2/authorize
RegisteredIssuerName-URL https://adfs.contoso.local/adfs/
AD FS SignoutURL https://adfs.contoso.local/adfs/oauth2/logout
Identitätsanspruchstyp http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
Windows-Websitesammlungsadministrator contoso\yvand
Email Wert des Verbundwebsitesammlungsadministrators (AD FS) yvand@contoso.local

Schritt 1: Einrichten des Identitätsanbieters

Führen Sie die folgenden Schritte aus, um OIDC mit AD FS einzurichten:

  1. Klicken Sie in AD FS-Verwaltung mit der rechten Maustaste auf Anwendungsgruppen , und wählen Sie Anwendungsgruppe hinzufügen aus.

  2. Navigieren Sie zur Willkommensseite, geben Sie ADFSSSO in das Feld Name ein, und wählen Sie unter Client-Server-Anwendungen den Webbrowser aus, der auf eine Webanwendungsvorlage zugreift . Klicken Sie dann auf Weiter.

    Assistent zum Hinzufügen von Anwendungsgruppen

  3. Wechseln Sie zur Seite Native Anwendung , und kopieren Sie den Wert clientbezeichner . Es wird später als Wert für DefaultClientIdentifier den Parameter während der SharePoint-Konfiguration verwendet.

  4. Geben Sie im Feld Umleitungs-URL die Zeichenfolge Hinzufügen ein https://spsites.contoso.local/ , und wählen Sie diese Option aus. Klicken Sie dann auf Weiter.

    Assistent zum Hinzufügen von Anwendungsgruppen 2

  5. Wechseln Sie zur Seite Zusammenfassung , und wählen Sie Weiter aus.

    Assistent zum Hinzufügen von Anwendungsgruppen 3

  6. Wechseln Sie zur Seite Abschließen , und wählen Sie Schließen aus.

  7. Exportieren Sie das Tokensignaturzertifikat aus AD FS. Dieses Tokensignaturzertifikat wird im SharePoint-Setup verwendet. Die folgenden Abbildungen zeigen, wie Sie ein Tokensignaturzertifikat aus AD FS exportieren:

    AD FS-Zertifikatexport 1

    AD FS-Zertifikatexport 2

    AD FS-Zertifikatexport 3

    AD FS-Zertifikatexport 4

  8. Stellen Sie sicher, dass die erforderliche Anspruchs-ID in der id_token von AD FS enthalten ist. Betrachten wir E-Mail als Beispiel:

    Wir gehen davon aus, dass Ihr AD FS die Regel konfiguriert hat, die den Bezeichneranspruch aus dem Attributspeicher liest, z. B. AD. Führen Sie die folgenden Schritte aus, um eine Ausstellungstransformationsregel für diese spezifische Webanwendung zu erstellen, die wir zuvor in AD FS erstellt haben:

    1. Öffnen Sie die webanwendung, die Sie erstellt haben, und wechseln Sie zur Registerkarte Problemtransformationsregel .

      Problemtransformationsregel

    2. Wählen Sie Regel hinzufügen und dann LDAP-Attribute als Ansprüche senden aus der Optionsliste aus.

      Problemtransformation : Regel hinzufügen

      Hinzufügen einer Transformationsanspruchsregel

    3. Benennen Sie Ihre Anspruchsregel als AD, und wählen Sie im Dropdownmenü Attributspeicher die Option Active Directory aus. Erstellen Sie zwei Zuordnungen mithilfe der Dropdownfelder wie gezeigt:

      Attribut Wert
      E-Mail-Adressen E-Mail-Adresse
      Token-Groups : Nach Domänenname qualifiziert Rolle

      Hinzufügen der Transformationsanspruchsregel 2

    4. Wählen Sie Fertig stellen aus, um den Regel-Assistenten zu schließen, und klicken Sie auf OK , um die Eigenschaften der Webanwendung zu schließen. Wählen Sie noch einmal OK aus, um die Regel abzuschließen.

Wenn Sie OIDC mit SharePoint Server festlegen, muss der nbf-Anspruch auf der AD FS-Serverseite in der von Ihnen erstellten Webanwendung konfiguriert werden. Wenn der nbf-Anspruch in dieser Webanwendung nicht vorhanden ist, führen Sie die folgenden Schritte aus, um ihn zu erstellen:

  1. Öffnen Sie die webanwendung, die Sie erstellt haben, und wechseln Sie zur Registerkarte Problemtransformationsregel .

    Problemtransformationsregel

  2. Wählen Sie Regel hinzufügen und dann Anwenden aus. Wählen Sie im Assistenten zum Hinzufügen von Transformationsanspruchsregel die Option Ansprüche mithilfe einer benutzerdefinierten Regel senden aus den Optionen für Anspruchsregelvorlagen aus.

    Problemtransformation : Regel hinzufügen

    Hinzufügen der Transformationsanspruchsregel 3

  3. Wählen Sie Weiter aus, und geben Sie die folgende Zeichenfolge in das Feld Benutzerdefinierte Regel ein :

    c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname"] => issue(Type = "nbf", Value = "0");

    Hinzufügen der Transformationsanspruchsregel 4

  4. Wählen Sie Fertig stellen aus.

Schritt 2: Ändern von SharePoint-Farmeigenschaften

In diesem Schritt müssen Sie die SharePoint Server-Farmeigenschaften basierend auf der Version Ihrer SharePoint Server-Instanz ändern.

Hinweis

Starten Sie die SharePoint-Verwaltungsshell als Farmadministrator, um das folgende Skript auszuführen. Lesen Sie die Anweisungen im folgenden PowerShell-Skript sorgfältig durch. Sie müssen an bestimmten Stellen ihre eigenen umgebungsspezifischen Werte eingeben.

Konfigurieren SharePoint Server-Abonnementedition Version 24H1 oder höher

Ab SharePoint Server-Abonnementedition Version 24H1 (März 2024) können Sie SharePoint Server-Farmeigenschaften konfigurieren, indem Sie die SharePoint-Zertifikatverwaltung zum Verwalten des Nonce-Cookiezertifikats verwenden. Das Nonce-Cookiezertifikat ist Teil der Infrastruktur, um sicherzustellen, dass OIDC-Authentifizierungstoken sicher sind. Führen Sie zum Konfigurieren das folgende Skript aus:

# 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 to save the exported cert>
$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

$farm = Get-SPFarm 
$farm.UpdateNonceCertificate($nonceCert,$true)

Konfigurieren von SharePoint Server-Abonnementedition vor Version 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()

Schritt 3: Konfigurieren von SharePoint zum Vertrauen der Identitätsanbieter

In diesem Schritt erstellen Sie eine SPTrustedTokenIssuer , die die Konfiguration speichert, die SharePoint benötigt, um AD FS als OIDC-Anbieter zu vertrauen. Starten Sie die SharePoint-Verwaltungsshell als Farmadministrator, und führen Sie das folgende Skript aus, um sie zu erstellen:

Hinweis

Lesen Sie die Anweisungen im folgenden PowerShell-Skript sorgfältig durch. Sie müssen umgebungsspezifische Werte an mehreren Stellen eingeben.

# 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

Das New-SPTrustedIdentityTokenIssuer PowerShell-Cmdlet wird erweitert, um OIDC mithilfe der folgenden Parameter zu unterstützen:

Parameter Beschreibung
Name Gibt dem neuen Tokenaussteller einen Namen.
Beschreibung Gibt dem neuen Tokenaussteller eine Beschreibung.
ImportTrustCertificate Importiert eine Liste von X509-Zertifikaten, die für die Überprüfung id_token anhand des OIDC-Bezeichners verwendet werden. Wenn der OIDC-IDP mehr als ein Zertifikat zum digitalen Signieren verwendet id_token, importieren Sie diese Zertifikate, und SharePoint überprüft id_token dann, indem die digitale Signatur, die mit diesen Zertifikaten generiert wurde, übereinstimmt.
ClaimsMappings Ein SPClaimTypeMapping -Objekt, das verwendet wird, um zu identifizieren, welcher Anspruch in der id_token als Bezeichner in SharePoint angesehen wird.
IdentifierClaim Gibt den Typ des Bezeichners an.
RegisteredIssuerName Gibt den Ausstellerbezeichner an, der ausgibt id_token. Es wird verwendet, um zu id_tokenüberprüfen.
AuthorizationEndPointUrl Gibt den Autorisierungsendpunkt des OIDC-Identitätsanbieters an.
SignoutUrl Gibt den Abmeldeendpunkt des OIDC-Identitätsanbieters an.
DefaultClientIdentifier Gibt den client_id des SharePoint-Servers an, der vom OID-Identitätsanbieter zugewiesen wird. Dies wird anhand des aud-Anspruchs in id_tokenüberprüft.
ResponseTypesSupported Gibt den Antworttyp des IDP an, der von diesem Tokenaussteller akzeptiert werden kann. Sie kann zwei Zeichenfolgen akzeptieren: id_token und code id_token. Wenn dieser Parameter nicht angegeben wird, wird er als Standard verwendet code id_token .

Wichtig

Das entsprechende Zertifikat muss dem Zertifikatspeicher der SharePoint-Stammzertifizierungsstelle hinzugefügt werden, und hierfür gibt es zwei mögliche Optionen:

  • Wenn das AD FS-Signaturzertifikat von einer Zertifizierungsstelle ausgestellt wird (aus Sicherheitsgründen bewährte Methode).

    Der öffentliche Schlüssel des Zertifikats des Ausstellers (und aller Zwischenspeicher) muss dem Speicher hinzugefügt werden. Starten Sie die SharePoint-Verwaltungsshell, und führen Sie das folgende Skript aus, um das Zertifikat hinzuzufügen:

    $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
    
  • Wenn das AD FS-Signaturzertifikat ein selbstsigniertes Zertifikat ist (aus Sicherheitsgründen nicht empfohlen).

    Der öffentliche Schlüssel des AD FS-Signaturzertifikats muss dem Speicher hinzugefügt werden. Starten Sie die SharePoint-Verwaltungsshell, und führen Sie das folgende Skript aus, um das Zertifikat hinzuzufügen:

    $rootCert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("C:\Data\Claims\ADFS Signing.cer")
    New-SPTrustedRootAuthority -Name "adfs.contoso.local signing certificate" -Certificate $rootCert
    

Schritt 4: Konfigurieren einer SharePoint-Webanwendung

In diesem Schritt konfigurieren Sie eine Webanwendung in SharePoint für die Verwendung der AD FS-OIDC-Authentifizierung mit dem , das SPTrustedIdentityTokenIssuer im vorherigen Schritt erstellt wurde.

Wichtig

  • Für die Standardzone der SharePoint-Webanwendung muss Windows-Authentifizierung aktiviert sein. Dies ist für den Suchcrawler erforderlich.
  • Die SharePoint-URL, die den AD FS-OIDC-Verbund verwendet, muss mit HTTPS konfiguriert werden.

Sie können diese Konfiguration wie folgt abschließen:

  • Erstellen einer neuen Webanwendung und Verwenden der Windows- und AD FS-OIDC-Authentifizierung in der Standardzone. Gehen Sie wie folgt vor, um eine neue Webanwendung zu erstellen:

    1. Starten Sie die SharePoint-Verwaltungsshell, und führen Sie das folgende Skript aus, um eine neue SPAuthenticationProviderzu erstellen:

      # This script creates a trusted authentication provider for OIDC    
      $sptrust = Get-SPTrustedIdentityTokenIssuer "contoso.local"
      $trustedAp = New-SPAuthenticationProvider -TrustedIdentityTokenIssuer $sptrust
      
    2. Gehen Sie unter Erstellen einer Webanwendung in SharePoint Server weiter, um eine neue Webanwendung zu erstellen, die HTTPS/SSL mit dem Namen SharePoint – OIDC auf contoso.local aktiviert.

    3. Öffnen Sie die Website sharePoint-Zentraladministration.

    4. Öffnen Sie die erstellte Webanwendung, wählen Sie im Menüband "Authentifizierungsanbieter" aus, klicken Sie auf den Link für die Zone "Standard", und wählen Sie contoso.local als vertrauenswürdiger Identitätsanbieter aus.

      Authentifizierungsanbieter 3

    5. Navigieren Sie zu Systemeinstellungen>Alternative Zugriffszuordnungen konfigurierenAlternative Zugriffszuordnungssammlung>.

    6. Filtern Sie die Anzeige mit der neuen Webanwendung, und vergewissern Sie sich, dass die folgenden Informationen angezeigt werden:

      Alternative Zugriffszuordnungssammlung-1

  • Erweitern einer vorhandenen Webanwendung, um die AD FS-OIDC-Authentifizierung für eine neue Zone festzulegen. Gehen Sie wie folgt vor, um eine vorhandene Webanwendung zu erweitern:

    1. Starten Sie die SharePoint-Verwaltungsshell, und führen Sie PowerShell aus, um die Webanwendung zu erweitern:

      Beispiel:

      # 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' 
      
    2. Navigieren Sie zu Systemeinstellungen>Alternative Zugriffszuordnungen konfigurierenAlternative Zugriffszuordnungssammlung>.

    3. Filtern Sie die Anzeige mit der erweiterten Webanwendung, und vergewissern Sie sich, dass die folgenden Informationen angezeigt werden:

      Sammlung alternativer Zugriffszuordnungen

Schritt 5: Sicherstellen, dass die Webanwendung mit SSL-Zertifikat konfiguriert ist

Da die OpenID Connect 1.0-Authentifizierung nur mit dem HTTPS-Protokoll funktionieren kann, muss ein Zertifikat für die entsprechende Webanwendung festgelegt werden. Wenn Sie dies noch nicht getan haben, führen Sie die folgenden Schritte aus, um ein Zertifikat festzulegen:

  • Generieren Sie das Standortzertifikat:

    Hinweis

    Sie können diesen Schritt überspringen, wenn Sie das Zertifikat bereits generiert haben.

    1. Öffnen Sie die SharePoint PowerShell-Konsole.

    2. Führen Sie das folgende Skript aus, um ein selbstsigniertes Zertifikat zu generieren und es der SharePoint-Farm hinzuzufügen:

      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
      

      Wichtig

      Selbstsignierte Zertifikate eignen sich nur zu Testzwecken. In Produktionsumgebungen wird dringend empfohlen, stattdessen Zertifikate zu verwenden, die von einer Zertifizierungsstelle ausgestellt wurden.

  • Legen Sie das Zertifikat fest:

    Sie können das folgende PowerShell-Cmdlet verwenden, um das Zertifikat der Webanwendung zuzuweisen:

    Set-SPWebApplication -Identity https://spsites.contoso.local -Zone Default -SecureSocketsLayer -Certificate "Contoso SharePoint (2021)"
    

Schritt 6: Erstellen der Websitesammlung

In diesem Schritt erstellen Sie eine Teamwebsitesammlung mit zwei Administratoren: einen als Windows-Administrator und einen als Verbundadministrator (AD FS).

  1. Öffnen Sie die Website sharePoint-Zentraladministration.

  2. Navigieren Sie zu Anwendungsverwaltung>Websitesammlungen erstellen.

  3. Geben Sie einen Titel und eine URL ein, und wählen Sie die Vorlage Teamwebsite aus.

  4. Wählen Sie im Abschnitt Primärer Websitesammlungsadministrator das Buchsymbol aus, um das Dialogfeld Personen Auswahl zu öffnen.

  5. Geben Sie im Dialogfeld Personen Auswahl das Windows-Administratorkonto ein, z. B. yvand.

  6. Filtern Sie die Liste auf der linken Seite, indem Sie Organisationen auswählen. Es folgt eine Beispielausgabe:

    Wählen Sie Personen 3 aus.

  7. Wechseln Sie zum Konto, und wählen Sie OK aus.

  8. Wählen Sie im Abschnitt Sekundärer Websitesammlungsadministrator das Buchsymbol aus, um das Dialogfeld Personen Auswahl zu öffnen.

  9. Geben Sie im Dialogfeld Personen Auswahl den genauen E-Mail-Wert des AD FS-Administratorkontos ein, z. Byvand@contoso.local. .

  10. Filtern Sie die Liste auf der linken Seite, indem Sie Contoso.local auswählen. Es folgt eine Beispielausgabe:

    Wählen Sie Personen 4 aus.

  11. Wechseln Sie zum Konto, und wählen Sie OK aus.

  12. Klicken Sie auf OK, um die Websitesammlung zu erstellen.

Nachdem die Websitesammlung erstellt wurde, sollten Sie sich entweder mit dem Windows- oder dem Verbundadministratorkonto (AD FS OIDC) der Websitesammlung anmelden können.

Schritt 7: Einrichten Personen Pickers

Bei der OIDC-Authentifizierung überprüft der Personen Picker die Eingabe nicht, was dazu führen kann, dass Rechtschreibfehler auftreten oder Benutzer versehentlich den falschen Anspruchstyp auswählen. Dies kann entweder mithilfe eines benutzerdefinierten Anspruchsanbieters oder mithilfe des neuen UPA-gestützten Anspruchsanbieters behoben werden, der in SharePoint Server-Abonnementedition enthalten ist. Informationen zum Konfigurieren eines UPA-gestützten Anspruchsanbieters finden Sie unter Erweiterte Personen auswahl für die moderne Authentifizierung.