Delen via


Serververificatie configureren met SharePoint on-premises

Servergebaseerde SharePoint integratie voor documentbeheer wordt gebruikt om apps voor klantbetrokkenheid (Dynamics 365 Sales, Dynamics 365 Customer Service, Dynamics 365 Field Service, Dynamics 365 Marketing en Dynamics 365 Project Service Automation) te verbinden met SharePoint on-premises. Bij gebruik van servergebaseerde authenticatie wordt Microsoft Entra Domain Services gebruikt als trust broker en hoeven gebruikers zich hier niet bij aan te melden SharePoint.

Vereiste machtigingen

De volgende lidmaatschappen en machtigingen zijn vereist om SharePoint-documentbeheer in te schakelen.

  • Microsoft 365 Lidmaatschap als globale beheerder is vereist voor:

    • Toegang op beheerderniveau tot het Microsoft 365-abonnement.
    • Uitvoeren van de op Enable Server gebaseerde verificatiewizard.
    • De AzurePowerShell-cmdlets uitvoeren.
  • Power Apps Met het recht SharePoint Integratiewizard Uitvoeren kunt u de wizard Servergebaseerde verificatie inschakelen.

    Standaard heeft de beveiligingsrol Systeembeheerder deze bevoegdheid.

  • Voor SharePoint on-premises integratie is SharePoint lidmaatschap van de groep Farm Administrators vereist om de meeste PowerShell-opdrachten op de SharePoint server uit te kunnen voeren.

Server-naar-server-verificatie instellen met SharePoint on-premises

Volg de stappen in de aangegeven volgorde om apps voor klantbetrokkenheid in te stellen met SharePoint 2016 on-premises.

Belangrijk

De hier beschreven stappen moeten in de opgegeven volgorde worden voltooid. Als een taak niet is voltooid, bijvoorbeeld een PowerShell-opdracht die een foutmelding retourneert, moet het probleem worden opgelost voordat u doorgaat naar de volgende opdracht, taak of stap.

Vereisten controleren

Voordat u apps voor klantbetrokkenheid en SharePoint on-premises configureert voor op een server gebaseerde verificatie, moet aan de volgende vereisten zijn voldaan:

SharePoint-vereisten

Andere vereisten

  • SharePoint Online-licentie. Voor apps voor klantbetrokkenheid naar SharePoint on-premises op server gebaseerde verificatie moet de SharePoint SPN (Service Principal Name) geregistreerd zijn in Microsoft Entra-id. Om toegang te verkrijgen, is minimaal één SharePoint Online gebruikerslicentie vereist. De SharePoint Online-licentie kan uit één gebruikerslicentie voortkomen en komt meestal uit een van de volgende:

    • Een abonnement op SharePoint Online. Elk SharePoint Online-abonnement volstaat zelfs als de licentie niet aan een gebruiker is toegewezen.

    • Een Microsoft 365-abonnement dat SharePoint Online omvat. Als u bijvoorbeeld Microsoft 365 E3 hebt, hebt u de benodigde licentie nodig, zelfs als de licentie niet aan een gebruiker is toegewezen.

      Ga voor meer informatie over deze plannen naar Vind de juiste oplossing voor u en Vergelijk SharePoint opties.

  • De volgende softwarefuncties zijn vereist om de PowerShell-cmdlets uit te voeren die in dit artikel worden beschreven.

    Microsoft.Graph

    Om de Microsoft.Graph-module te installeren, voert u de volgende opdracht in vanuit een PowerShell-sessie met beheerders.

    $currentMaxFunctionCount =
        $ExecutionContext.SessionState.PSVariable.Get("MaximumFunctionCount").Value
    
    # Set execution policy to RemoteSigned for this session
    if ((Get-ExecutionPolicy -Scope Process) -ne "RemoteSigned") {
        Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned -Force
    }
    
    # Update MaximumFunctionCount if needed
    if ($currentMaxFunctionCount -lt 32768) {
        $ExecutionContext.SessionState.PSVariable.Set("MaximumFunctionCount", 32768)
    }
    
    # Install and import required modules
    if (-not (Get-Module -ListAvailable -Name "Microsoft.Graph")) {
        $Params = @{
            Name = "Microsoft.Graph"
            Scope = CurrentUser
        }
        Install-Module @Params -Force
    }
    
    $Params = @{
        Name = "Microsoft.Graph"
        Function = @("Connect-MgGraph", "Get-MgOrganization")
    }
    Import-Module @Params
    
    if (-not (Get-Module -ListAvailable -Name "Microsoft.Graph.Identity.DirectoryManagement")) {
        $Params = @{
            Name = "Microsoft.Graph.Identity.DirectoryManagement"
            Scope = CurrentUser
        }
        Install-Module @Params -Force
    }
    
    $Params = @{
        Name = "Microsoft.Graph.Identity.DirectoryManagement"
        Function = @("Get-MgServicePrincipal", "Update-MgServicePrincipal")
    }
    Import-Module @Params
    
  • Een geschikt type van op claims gebaseerde verificatietoewijzing om te gebruiken voor het toewijzen van identiteiten tussen apps voor klantbetrokkenheid en SharePoint on-premises. Standaard wordt e-mailadres gebruikt. Meer informatie vindt u in Klantbetrokkenheidsapps toestemming geven voor toegang SharePoint en de toewijzing van op claims gebaseerde authenticatie configureren.

SharePoint Server SPN bijwerken in Microsoft Entra Domein Services

Voer op de SharePoint on-premises server, in de SharePoint 2016 Management Shell, deze PowerShell-opdrachten uit in de vermelde volgorde.

  1. Verbinding maken met Microsoft 365.

    Wanneer u de opdracht Connect-MgGraph uitvoert, moet u een geldig Microsoft-account met globaal beheerderslidmaatschap voor de vereiste onlinelicentie opgeven. SharePoint

    Ga naar Microsoft Entra Beheren met Windows PowerShell voor gedetailleerde informatie over elk van de hier vermelde IDPowerShell-opdrachten Microsoft Entra .

    Connect-MgGraph -Scopes "Directory.ReadWrite.All", "Application.ReadWrite.All"  
    
  2. Stel de SharePoint host-URL in.

    De waarde die u instelt voor de variabele HostNameUrl moet de volledige hostnaam-URL van de SharePoint siteverzameling zijn. De hostnaam moet worden afgeleid van de siteverzamelings-URL en is hoofdlettergevoelig. In dit voorbeeld is de URL van de siteverzameling https://SharePoint.constoso.com/sites/salesteam, dus de URL van de hostnaam is https://SharePoint.contoso.com.

    Belangrijk

    Als er meerdere sites zijn, voer dan de volgende opdracht uit voor elke site.

    # Generate Service Principal Name
    # Note: If there are multiple sites, and the host is the same, no action is needed.
    #       If the host is different, each site needs to be configured to add the 
    #       host to the service principal.
    $uri = [System.Uri]"https://SharePoint.constoso.com/sites/salesteam"
    $hostName = $uri.Host
    $baseUrl = "$($uri.Scheme)://$hostName"
    $servicePrincipalName = $baseUrl
    
  3. Haal de Microsoft 365 object-ID (tenant) en de SharePoint Server Service Principal Name (SPN) op.

    # SharePoint Online App ID
    $SPOAppId = "00000003-0000-0ff1-ce00-000000000000"
    
    # Retrieve SharePoint Online Service Principal
    $SharePoint = Get-MgServicePrincipal -Filter "AppId eq '$SPOAppId'"
    
    $UpdatedServicePrincipalNames = $SharePoint.ServicePrincipalNames |
        Where-Object { $_ -ne $servicePrincipalName }
    $UpdatedServicePrincipalNames += $servicePrincipalName
    
  4. Haal de Microsoft 365 object-ID (tenant) en de SharePoint Server Service Principal Name (SPN) op.

    $maxRetries = 5
    $retryDelay = 5 # seconds 
    
    for ($retry = 1; $retry -le $maxRetries; $retry++) {
        try {
            $Params = @{
     	         ServicePrincipalId = $SharePoint.Id
     			     ServicePrincipalNames = $UpdatedServicePrincipalNames
     		   }
     		   Update-MgServicePrincipal @Params
     		   Write-Host "Service Principal Names updated successfully."
     		   break
     	 }
     	 catch {
     		   if ($_.Exception.Message -match "Directory_ConcurrencyViolation" -and
                $retry -lt $maxRetries) {
     			     Write-Host "Concurrency violation detected. (Attempt $retry of $maxRetries)"
     			     Start-Sleep -Seconds $retryDelay
       		 }
       		 else {
         			 Write-Host "Failed to update Service Principal Names. Error: $_"
     		    	 exit 1
            }
        }
    }
    

Nadat deze opdrachten zijn voltooid, mag u de SharePoint 2016 Management Shell niet sluiten. Ga door naar de volgende stap.

Het SharePoint-domein gelijk maken aan dat van SharePoint Online

Voer op de SharePoint on-premises server, in de SharePoint 2016 Management Shell, deze Windows PowerShell-opdracht uit.

De volgende opdracht vereist lidmaatschap van SharePoint-farmbeheerder en stelt het verificatierealm van de SharePoint on-premises farm in.

Let op

Door het uitvoeren van deze opdracht verandert het verificatierealm van de SharePoint on-premises farm. Voor toepassingen die gebruikmaken van een bestaande Security Token Service (STS), kan deze opdracht onverwacht gedrag veroorzaken bij andere toepassingen die toegangstokens gebruiken. Meer informatie vindt u in Set-SPAuthenticationRealm.

# SPOContextId is the tenant ID for the dynamics 365 tenant. It is used to identify the tenant in Azure AD and SharePoint Online.
$SPOContextId = "<tenantId>"
Set-SPAuthenticationRealm -Realm $SPOContextId

Een vertrouwde beveiligingstokenuitgever maken voor Microsoft Entra ID op SharePoint

Voer op de SharePoint on-premises server, in de SharePoint 2016 Management Shell, deze PowerShell-opdrachten uit in de vermelde volgorde.

De volgende opdrachten vereisen lidmaatschap van SharePoint-farmbeheerder.

Ga naar SharePoint 2016: Lijst met PowerShell-cmdlets voor gedetailleerde informatie over deze PowerShell-opdrachten.

  1. Schakel de PowerShell-sessie in om wijzigingen aan te brengen in de STS voor de SharePoint-farm.

    $c = Get-SPSecurityTokenServiceConfig  
    $c.AllowMetadataOverHttp = $true  
    $c.AllowOAuthOverHttp= $true  
    $c.Update()  
    
  2. Stel het meta-eindpunt in.

    $metadataEndpoint = 
        "https://login.microsoftonline.com/common/.well-known/openid-configuration"  
    $oboissuer = "https://sts.windows.net/*/" 
    $issuer = "00000007-0000-0000-c000-000000000000@" + $SPOContextId  
    
  3. Maak de nieuwe toepassingsproxy voor de tokencontroleservice in Microsoft Entra-id

    $existingIssuer = Get-SPTrustedSecurityTokenIssuer "D365Obo"
    if ($existingIssuer) {
        $Params = @{
            Identity = $existingIssuer
            IsTrustBroker = $true
            MetadataEndpoint = $metadataEndpoint
            RegisteredIssuerName = $oboissuer
        }
        Set-SPTrustedSecurityTokenIssuer @Params
    } else {
        $Params = @{
            Name = "D365Obo"
            IsTrustBroker = $true
            MetadataEndpoint = $metadataEndpoint
            RegisteredIssuerName = $oboissuer
        }
        $obo = New-SPTrustedSecurityTokenIssuer @Params
    }
    

Apps voor klantbetrokkenheid machtigen toegang tot SharePoint te verkrijgen en de op claims gebaseerde verificatietoewijzing te configureren

Voer op de SharePoint on-premises server, in de SharePoint 2016 Management Shell, deze PowerShell-opdrachten uit in de vermelde volgorde.

De volgende opdrachten vereisen lidmaatschap van SharePoint-siteverzamelingsbeheer.

  1. Registreer apps voor klantbetrokkenheid bij de SharePoint-siteverzameling.

    Typ de siteverzamelings-URL van SharePoint on-premises. In dit voorbeeld wordt <https://sharepoint.contoso.com/sites/crm/> gebruikt.

    $site = Get-SPSite "https://sharepoint.contoso.com/sites/crm/"
    $Params = @{
        site = $site.RootWeb
        NameIdentifier = $issuer
        DisplayName = "crmobo"
    }
    Register-SPAppPrincipal @Params
    
  2. Verleen apps voor klantbetrokkenheid toegang tot de SharePoint-site. Vervang <https://sharepoint.contoso.com/sites/crm/> door de URL van uw SharePoint site.

    Notitie

    In het onderstaande voorbeeld, is aan de app voor klantbetrokkenheid machtiging verleend voor de opgegeven SharePoint-siteverzameling met de parameter via de parameter –Scope sitecollection. De parameter Scope accepteert de volgende opties. Kies het bereik dat het meest geschikt is voor uw SharePoint-configuratie.

    • site. Verleent de app voor klantbetrokkenheid alleen machtiging voor de opgegeven SharePoint-website. Er wordt geen machtiging verleend voor subsites onder de benoemde site.
      • sitecollection. Verleent de apps voor klantbetrokkenheid machtiging voor alle websites en subsites binnen de opgegeven SharePoint-siteverzameling.
      • sitesubscription. Verleent de apps voor klantbetrokkenheid machtiging voro alle websites in de SharePoint-farm, met inbegrip van alle siteverzamelingen, websites en subsites.

    Belangrijk

    Als er meerdere sites zijn, voer dan het script uit voor elke site.

    $Params = @{
        NameIdentifier = $issuer
        Site = "https://sharepoint.contoso.com/sites/crm/"
    }
    $app = Get-SPAppPrincipal @Params
    
    $Params = @{
        AppPrincipal = $app
        Site = $site.Rootweb
        Scope = "sitecollection"
        Right = "FullControl"
    }
    Set-SPAppPrincipalPermission @Params
    
  3. Stel het toewijzingstype van op claims gebaseerde verificatie in.

    Belangrijk

    Standaard worden bij de toewijzing van verificatie op basis van claims het e-mailadres van het Microsoft-account van de gebruiker en het SharePoint on-premises werk-e-mailadres van de gebruiker gebruikt voor toewijzing. Wanneer u claims-gebaseerde authenticatietoewijzing gebruikt, moeten de e-mailadressen van de gebruiker in de twee systemen overeenkomen. Meer informatie vindt u in Een claims-gebaseerd type authenticatietoewijzing selecteren.

    $Params = @{
        IncomingClaimType = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"
        IncomingClaimTypeDisplayName = "EmailAddress"
    }
    $map1 = New-SPClaimTypeMapping @Params -SameAsIncoming
    

Wizard Op server gebaseerde SharePoint-integratie uitvoeren

Volg deze stappen:

  1. Controleer of u de juiste bevoegdheid hebt om de wizard uit te voeren. Meer informatie in Vereiste machtigingen.

  2. Ga naar Instellingen>Documentbeheer.

  3. Klik in het gebied Documentbeheer op Op server gebaseerde SharePoint-integratie inschakelen.

  4. Bekijk de informatie en klik op Volgende.

  5. Klik voor de SharePoint-sites op On-Premises en vervolgens op Volgende.

  6. Voer de SharePoint on-premises siteverzamelings-URL, zoals https://sharepoint.contoso.com/sites/crm. De site moet voor SSL zijn geconfigureerd.

  7. Klik op Volgende.

  8. De sectie voor het valideren van sites wordt weergegeven. Als is bepaald dat alle sites geldig zijn, klikt u op Inschakelen. Als een of meer sites ongeldig worden bevonden, ga dan naar Problemen oplossen met servergebaseerde authenticatie.

De entiteiten selecteren die u in documentbeheer wilt opnemen

Standaard worden de entiteiten Account, Artikel, Potentiële klant, Product, Prijsopgave en Verkoopdocumentatie opgenomen. U kunt entiteiten die voor documentbeheer worden gebruikt, toevoegen of verwijderen met SharePoint in instellingen voor documentbeheer. Ga naar Instellingen>Documentbeheer. Meer informatie vindt u in documentbeheer inschakelen voor entiteiten.

Integratie van OneDrive voor Bedrijven toevoegen

Nadat u een op een server gebaseerd verificatieconfiguratie van apps voor klantbetrokkenheid en SharePoint on-premises hebt voltooid, kunt u ook OneDrive voor Bedrijven integreren. Met apps voor klantbetrokkenheid en OneDrive voor Bedrijven geïntegreerd, kunnen gebruikers persoonlijke documenten maken en beheren met OneDrive voor Bedrijven. Deze documenten zijn toegankelijk nadat de systeembeheerder OneDrive for Business heeft ingeschakeld.

OneDrive voor Bedrijven inschakelen

Open op de Windows Server waar SharePoint Server on-premises wordt uitgevoerd, de SharePoint Management Shell en voer de volgende opdrachten uit:

Add-Pssnapin *  

# Access WellKnown App principal  
[Microsoft.SharePoint.Administration.SPWebService]::ContentService.WellKnownAppPrincipals  
  
# Create WellKnown App principal  
$ClientId = "00000007-0000-0000-c000-000000000000"  
$PermissionXml = @"
<AppPermissionRequests AllowAppOnlyPolicy="true">
    <AppPermissionRequest Scope="http://sharepoint/content/tenant" Right="FullControl" />
    <AppPermissionRequest Scope="http://sharepoint/social/tenant" Right="Read" />
    <AppPermissionRequest Scope="http://sharepoint/search" Right="QueryAsUserIgnoreAppPrincipal" />
</AppPermissionRequests>
"@

$wellKnownApp = New-Object `
    -TypeName "Microsoft.SharePoint.Administration.SPWellKnownAppPrincipal" `
    -ArgumentList ($ClientId, $PermissionXml)  
  
$wellKnownApp.Update()    

Een toewijzingstype voor op claims gebaseerde verificatie selecteren

Standaard worden bij de toewijzing van verificatie op basis van claims het e-mailadres van het Microsoft-account van de gebruiker en het on-premises werk-e-mailadres van de gebruiker gebruikt voor toewijzing. SharePoint Ongeacht welk type op claims gebaseerde verificatie u gebruikt, moeten de waarden, zoals e-mailadressen, overeenkomen tussen apps voor klantbetrokkenheid en SharePoint. Microsoft 365 Directory-synchronisatie zorgt ervoor dat e-mailadressen overeenkomen. Meer informatie vindt u in Directorysynchronisatie implementeren Microsoft 365 in Microsoft Azure. Als u een ander type claimsgebaseerde authenticatietoewijzing wilt gebruiken, gaat u naar Aangepaste claimtoewijzing definiëren voor SharePoint servergebaseerde integratie.

Belangrijk

Om de eigenschap Werke-mail in te schakelen moet SharePoint on-premises een gebruikersprofielservicetoepassing hebben geconfigureerd en gestart. Als u een gebruikersprofielservicetoepassing wilt inschakelen in SharePoint, gaat u naar gebruikersprofielservicetoepassingen maken, bewerken of verwijderen in SharePoint Server 2016. Als u wijzigingen wilt aanbrengen in een gebruikerskenmerk, zoals Werk-e-mailadres, gaat u naar Een gebruikersprofielkenmerk bewerken. Ga naar Overzicht van de gebruikersprofielservicetoepassing in SharePoint Server 2016 voor meer informatie over de gebruikersprofielservicetoepassing.