Dela via


Konfigurera serverbaserad autentisering med SharePoint lokalt

Serverbaserad SharePoint integrering för dokumenthantering används för att ansluta appar för kundengagemang (Dynamics 365 Sales, Dynamics 365 Customer Service Dynamics 365 Field Service, Dynamics 365 Marketing och Dynamics 365 Project Service Automation) med SharePoint lokala lösningar. När du använder serverbaserad autentisering Microsoft Entra används Domain Services som förtroendemäklare och användarna behöver inte logga in på SharePoint.

Behörigheter som krävs

Följande medlemskap och privilegier krävs för att aktivera SharePoint-dokumenthantering.

  • Microsoft 365 Globalt administratörsmedlemskap krävs för:

    • Åtkomst på administrativ nivå till prenumerationen Microsoft 365.
    • För att köra Aktivera serverbaserad Autentiseringsguide.
    • Köra AzurePowerShell-cmdlets.
  • Power Apps Privilegiet Kör SharePoint integreringsguiden tillåter guiden Aktivera serverbaserad autentisering.

    Systemadministratörens säkerhetsroll har detta privilegium som standard.

  • För SharePoint lokal integrering SharePoint krävs gruppmedlemskap för servergruppsadministratörer för att köra de flesta PowerShell-kommandon på SharePoint servern.

Konfigurera server-till-server-autentisering med SharePoint-lokalt.

Följ stegen, i den ordning som anges, för att konfigurera appar för kundengagemang med SharePoint 2016 lokalt.

Viktigt

Stegen som beskrivs här måste slutföras i den ordning som anges. Om en uppgift inte har slutförts, till exempel ett PowerShell-kommando som returnerar ett felmeddelande, måste problemet lösas innan du fortsätter till nästa kommando, uppgift eller steg.

Verifiera förutsättningar

Innan du kan konfigurera program för kundengagemang och SharePoint lokalt för serverbaserad autentisering måste följande förutsättningar ha uppfyllts:

Förutsättningar för SharePoint

Övriga förutsättningar

  • SharePoint Online-licens. Program för kundengagemang avsedda för lokal, serverbaserad SharePoint-autentisering måste ha huvudnamnet för SharePoint-tjänst (SPN) registrerat i Microsoft Entra ID. För att få åtkomst krävs minst en SharePoint onlineanvändarlicens. SharePoint Online-licensen kan härledas från en licens för en användare och kommer vanligtvis från något av följande:

    • En SharePoint Online-prenumeration. En SharePoint Online-plan är tillräcklig även om licensen inte är tilldelad till en användare.

    • En Microsoft 365-prenumeration som inkluderar SharePoint Online. Till exempel, om du har Microsoft 365 E3 har du rätt licensiering även om licensen inte är tilldelad till en användare.

      Mer information om dessa planer finns i Hitta rätt lösning för dig och Jämför SharePoint alternativ.

  • Följande programvarufunktioner krävs för att köra PowerShell-cmdletarna som beskrivs i den här artikeln.

    Microsoft.Graph (på engelska)

    Om du vill installera modulen Microsoft.Graph anger du följande kommando från en PowerShell-administratörssession.

    $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
    
  • En lämplig mappningstyp för anspråksbaserad autentisering som ska användas för att mappa identiteter mellan program för kundengagemang och SharePoint lokalt. E-postadressen används som standard. Läs mer i Bevilja appar för kundengagemang behörighet att komma åt SharePoint och konfigurera den anspråksbaserade autentiseringsmappningen.

Uppdatera SharePoint Server SPN i Microsoft Entra Domain Services

På den lokala SharePoint-servern i SharePoint 2016 Management Shell, kör dessa PowerShell-kommandon i angiven ordning.

  1. Anslut till Microsoft 365.

    När du kör kommandot Connect-MgGraph måste du ange ett giltigt Microsoft-konto som har globalt administratörsmedlemskap för den SharePoint onlinelicens som krävs.

    Detaljerad information om vart och ett av IDPowerShell-kommandona Microsoft Entra som anges här finns i Hantera Microsoft Entra med Windows PowerShell.

    Connect-MgGraph -Scopes "Directory.ReadWrite.All", "Application.ReadWrite.All"  
    
  2. Ställ in värd-URL:en SharePoint .

    Värdet som du anger för variabeln HostNameUrl måste vara den fullständiga värdnamns-URL:en för webbplatssamlingen SharePoint . Värdnamnet måste härledas från webbplatssamlingens webbadress och är skiftlägeskänsligt. I det här exemplet är https://SharePoint.constoso.com/sites/salesteam URL:en för webbplatssamlingen, så värdnamns-URL:en är https://SharePoint.contoso.com.

    Viktigt

    Om det finns flera platser kör du följande kommando för varje plats.

    # 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. Hämta objekt-ID:t (klientorganisationen) och Microsoft 365 servertjänstens SharePoint huvudnamn (SPN).

    # 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. Hämta objekt-ID:t (klientorganisationen) och Microsoft 365 servertjänstens SharePoint huvudnamn (SPN).

    $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
            }
        }
    }
    

När dessa kommandon har slutförts ska du inte stänga SharePoint 2016 Management Shell. Fortsätt till nästa steg.

Uppdatera SharePoint-sfären för att matcha SharePoint Online

På den lokala SharePoint-servern, i SharePoint 2016 Management Shell, kör detta Windows PowerShell-kommando.

Följande kommando kräver SharePoint servergruppsadministratörsmedlemskap och anger autentiseringssfären för den lokala SharePoint-servergruppen.

Varning

När du kör det här kommandot ändras autentiseringssfären för den lokala SharePoint-servergruppen. För program som använder en befintlig säkerhetstokentjänst (STS) kan det här kommandot orsaka oväntat beteende med andra program som använder åtkomsttoken. Läs mer i 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

Skapa ett betrodd säkerhetstokenutfärdare för Microsoft Entra ID på SharePoint

På den lokala SharePoint-servern i SharePoint 2016 Management Shell, kör dessa PowerShell-kommandon i angiven ordning.

Följande kommandon kräver SharePoint-servergruppsadministratörsmedlemskap.

Detaljerad information om dessa PowerShell-kommandon finns i SharePoint 2016: Lista över PowerShell-cmdletar.

  1. Aktivera PowerShell-sessionen för att göra ändringar i säkerhetstokentjänsten för SharePoint-servergruppen.

    $c = Get-SPSecurityTokenServiceConfig  
    $c.AllowMetadataOverHttp = $true  
    $c.AllowOAuthOverHttp= $true  
    $c.Update()  
    
  2. Ange slutpunkten för metadata.

    $metadataEndpoint = 
        "https://login.microsoftonline.com/common/.well-known/openid-configuration"  
    $oboissuer = "https://sts.windows.net/*/" 
    $issuer = "00000007-0000-0000-c000-000000000000@" + $SPOContextId  
    
  3. Skapa en ny programproxy för tokenkontrolltjänst i 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
    }
    

Bevilja program för kundengagemang behörighet att komma åt SharePoint och att konfigurera mappningen för anspråksbaserad autentisering

På den lokala SharePoint-servern i SharePoint 2016 Management Shell, kör dessa PowerShell-kommandon i angiven ordning.

Följande kommandon kräver SharePoint-webbplatssamlingsadministratörsmedlemskap.

  1. Registrera program för kundengagemang med SharePoint-webbplatssamlingen.

    Ange den lokala SharePoint-webbplatssamlingens URL. I det här exemplet,används <https://sharepoint.contoso.com/sites/crm/> .

    $site = Get-SPSite "https://sharepoint.contoso.com/sites/crm/"
    $Params = @{
        site = $site.RootWeb
        NameIdentifier = $issuer
        DisplayName = "crmobo"
    }
    Register-SPAppPrincipal @Params
    
  2. Bevilja program för kundengagemang åtkomst till SharePoint-webbplatsen. Ersätt <https://sharepoint.contoso.com/sites/crm/> med din SharePoint webbadress.

    Obs

    I följande exempel beviljas programmet för kundengagemang åtkomst till angiven SharePoint-webbplatssamling genom att använda webbplatssamlingsparametern ”–Scope”. Parametern Omfattning godkänner följande alternativ. Välj den omfattning som är mest lämplig för din SharePoint-konfiguration.

    • site. Beviljar programmen för kundengagemang behörighet endast till angiven SharePointwebbplats. Behörighet beviljas inte till eventuella underwebbplatser för den namngivna webbplatsen.
      • sitecollection. Ger program för kundengagemang behörighet till alla webbplatser och underwebbplatser inom angiven SharePoint-webbplatssamling.
      • sitesubscription. Ger program för kundengagemang behörighet till alla webbplatser i SharePoint-servergruppen, inklusive alla webbplatssamlingar, webbplatser och underwebbplatser.

    Viktigt

    Om det finns flera platser kör du skriptet för varje plats.

    $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. Konfigurera mappningstyp för anspråksbaserad autentisering.

    Viktigt

    Som standard använder mappningen av anspråksbaserad autentisering användarens e-postadress för Microsoft-konto och användarens SharePoint lokala e-postadress för arbetet för mappning. När du använder mappning av anspråksbaserad autentisering måste användarens e-postadresser matcha mellan de två systemen. Läs mer i Välja en mappningstyp för anspråksbaserad autentisering.

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

Kör guiden Aktivera serverbaserad SharePoint-integrering

Följ stegen nedan:

  1. Bekräfta att du har rätt behörighet att köra guiden. Läs mer i Behörigheter som krävs.

  2. Gå till Inställningar>Dokumenthantering.

  3. I området Dokumenthantering klickar du på Aktivera serverbaserad SharePoint-integrering.

  4. Granska informationen och klicka sedan Nästa.

  5. För SharePoint-webbplatserna, klicka på Lokal och klicka sedan Nästa.

  6. Ange lokalt webbplatssamlings-URL för SharePoint, exempelvis https://sharepoint.contoso.com/sites/crm. Platsen måste vara konfigurerad för SSL.

  7. Klicka på Nästa.

  8. Avsnittet Validera platser visas. Om alla platser är giltiga, klicka Aktivera. Om en eller flera platser bedöms vara ogiltiga går du till Felsöka serverbaserad autentisering.

Välj vilka entiteter du vill ska inkluderas i dokumenthantering

Som standard ingår entiteterna konto, artikel, lead, produkt, offert och dokumentation. Du kan lägga till eller ta bort de enheter som används för dokumenthantering i SharePoint Inställningar för dokumenthantering. Gå till Inställningar>Dokumenthantering. Läs mer i Aktivera dokumenthantering för entiteter.

Lägg till OneDrive för företag-integrering

När du har slutfört konfigurationen för program för kundengagemang och lokal, serverbaserad autentisering för SharePoint lokalt kan du även integrera OneDrive för företag. Med program för kundengagemang och integrering av OneDrive för företag kan du även skapa och hantera privata dokument med hjälp av OneDrive för företag. Dessa dokument kan nås efter att systemadministratören har aktiverat OneDrive för företag.

Aktivera OneDrive för företag

På den Windows Server där SharePoint Server lokalt körs öppnar du Management Shell för SharePoint och kör följande kommandon:

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()    

Välja en mappningstyp för anspråksbaserad autentisering.

Som standard använder mappningen av anspråksbaserad autentisering användarens e-postadress för Microsoft-konto och användarens SharePoint lokala e-postadress för arbetet för mappning. Oavsett vilken typ av anspråksbaserad autentisering du använder måste värdena, till exempel e-postadresser, matcha mellan appar för kundengagemang och SharePoint. Microsoft 365 Katalogsynkronisering hjälper e-postadresser att matcha. Läs mer i Distribuera Microsoft 365 katalogsynkronisering i Microsoft Azure. Om du vill använda en annan typ av mappning av anspråksbaserad autentisering går du till Definiera anpassad anspråksmappning för SharePoint serverbaserad integrering.

Viktigt

För att aktivera egenskapen arbets-e-post måste den lokala SharePoint ha ett användarprofiltjänstprogram konfigurerat och i gång. Om du vill aktivera ett tjänstprogram för användarprofiler går SharePoint du till Skapa, redigera eller ta bort tjänstprogram för användarprofiler i SharePoint Server 2016. Om du vill göra ändringar i en användaregenskap, till exempel e-post för arbete, går du till Redigera en användarprofilegenskap. Mer information om tjänstprogrammet för användarprofiler finns i Översikt över tjänstprogrammet för användarprofiler i SharePoint Server 2016.