다음을 통해 공유


SharePoint 온-프레미스에서 서버 기반 인증 구성

문서 관리를 위한 서버 기반 통합은 고객 참여 앱(Dynamics 365 Sales, Dynamics 365 Customer Service, Dynamics 365 Field Service, Dynamics 365 Marketing 및 Dynamics 365 Project Service Automation)을 SharePoint 온프레미스와 연결하는 데 사용됩니다. 서버 기반 인증을 사용하면 Microsoft Entra 도메인 서비스는 신뢰 브로커로 사용되며 SharePoint에 로그인할 필요가 없습니다.

필수 사용 권한

SharePoint 문서 관리를 활성화하려면 다음 구성원 및 권한이 필요합니다.

  • Microsoft 365 전역 관리자 멤버십은 다음의 경우 필요합니다.

    • Microsoft 365 구독에 대한 관리 수준 액세스 권한입니다.
    • 서버 기반 인증 활성화 마법사를 실행 중입니다.
    • AzurePowerShell cmdlet을 실행합니다.
  • Power Apps SharePoint 통합 마법사 실행 권한이 있으면 서버 기반 인증 사용 마법사를 사용할 수 있습니다.

    기본적으로 시스템 관리자 보안 역할은 이 권한이 있습니다.

  • SharePoint 온-프레미스 통합의 경우, SharePoint 서버에서 대부분의 PowerShell 명령을 실행하려면 SharePoint 팜 관리자 그룹 구성원 자격이 필요합니다.

SharePoint 온-프레미스에서 서버 간 인증 구성

SharePoint 2016 온-프레미스를 사용하여 고객 참여 앱을 실행하기 위해 제공되는 순서로 단계를 수행합니다.

중요

여기에서 설명하는 단계는 제공된 순서로 완료해야 합니다. 오류 메시지를 반환하는 PowerShell 명령 같은 작업이 완료되지 않은 경우 다음 명령, 작업 또는 단계를 계속하기 전에 문제를 해결해야 합니다.

필수 구성 요소 확인

서버 기반 인증을 위해 고객 참여 앱 및 SharePoint 온-프레미스를 구성하기 전에 다음 전제 조건을 충족해야 합니다.

SharePoint 필수 구성 요소

기타 필수 조건

  • SharePoint Online 라이선스. SharePoint 온-프레미스 서버 기반 인증에 대한 고객 참여 앱은 SharePoint SPN(서비스 계정 이름)을 Microsoft Entra ID에 등록해야 합니다. 액세스하려면 SharePoint Online 사용자 라이선스가 하나 이상 필요합니다. SharePoint Online 라이선스는 단일 사용자 라이선스에서 파생될 수 있으며 일반적으로 다음 중 하나에서 가져옵니다.

    • SharePoint Online 구독. SharePoint Online 플랜은 라이선스가 사용자에게 할당되지 않은 경우에도 충분합니다.

    • SharePoint Online을 포함하는 Microsoft 365 구독. 예를 들어 Microsoft 365 E3가 있는 경우 라이선스가 사용자에게 할당되지 않은 경우에도 적절한 라이선스를 갖고 있는 것입니다.

      이러한 플랜에 대한 자세한 내용은 나에게 맞는 솔루션 찾기SharePoint 비교 옵션을 참고하십시오.

  • 다음 소프트웨어 기능은 이 문서에서 설명하는 PowerShell cmdlet을 실행해야 합니다.

    Microsoft.Graph

    Microsoft.Graph 모듈을 설치하려면 관리자 PowerShell 세션에서 다음 명령을 입력합니다.

    $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
    
  • 매핑에 사용할 적절한 클레임 기반 인증 매핑 유형은 고객 참여 앱 및 SharePoint 온-프레미스 간을 식별합니다. 기본적으로 전자 메일 주소가 사용됩니다. 고객 참여 앱에 권한을 부여하여 SharePoint에 액세스하고 클레임 기반 인증 매핑을 구성에서 자세히 알아보세요.

Microsoft Entra 도메인 서비스에서 SharePoint Server SPN 업데이트

SharePoint 온-프레미스 서버의 SharePoint 2016 Management Shell에서 지정된 순서대로 PowerShell 명령을 실행합니다.

  1. Microsoft 365에 연결합니다.

    Connect-MgGraph 명령을 실행할 때 필요한 SharePoint Online 라이선스에 대한 전역 관리자 구성원 자격이 있는 유효한 Microsoft 계정을 제공해야 합니다.

    여기에 나열된 각 Microsoft Entra IDPowerShell 명령에 대한 자세한 내용은 Windows PowerShell을 사용하여 Microsoft Entra 관리를 참조하십시오.

    Connect-MgGraph -Scopes "Directory.ReadWrite.All", "Application.ReadWrite.All"  
    
  2. SharePoint 호스트 URL을 설정합니다.

    변수 HostNameUrl에 대해 설정된 값은 SharePoint 사이트 모음의 완전한 호스트 이름 URL이어야 합니다. 호스트 이름은 사이트 모음 URL에서 파생되어야 하며 대/소문자를 구분합니다. 이 예에서는 사이트 모음 URL이 https://SharePoint.constoso.com/sites/salesteam이므로 호스트 이름 URL이 https://SharePoint.contoso.com입니다.

    중요

    사이트가 여러 개 있는 경우 각 사이트에 대해 다음 명령을 실행합니다.

    # 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. Microsoft 365 개체(테넌트) ID 및 SharePoint Server 서비스 사용자 이름(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. Microsoft 365 개체(테넌트) ID 및 SharePoint Server 서비스 사용자 이름(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
            }
        }
    }
    

이러한 명령을 완료한 후 SharePoint 2016 Management Shell을 닫지 마십시오. 다음 단계를 계속합니다.

SharePoint 영역을 SharePoint Online 영역과 일치하도록 업데이트

SharePoint 온-프레미스 서버의 SharePoint 2016 Management Shell에서 이 Windows PowerShell 명령을 실행합니다.

다음 명령은 SharePoint 팜 관리자 구성원 자격이 필요하며 SharePoint 온-프레미스 팜의 인증 영역을 설정합니다.

주의

이 명령을 실행하면 SharePoint 온-프레미스 영역의 인증 영역이 변경됩니다. 기존 보안 토큰 서비스(STS)를 사용하는 응용 프로그램의 경우, 이 명령은 액세스 토큰을 사용하는 다른 응용 프로그램에서 예기치 않은 동작을 초래할 수 있습니다. 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

SharePoint에서 Microsoft Entra ID에 대한 신뢰할 수 있는 보안 토큰 발급자 만들기

SharePoint 온-프레미스 서버의 SharePoint 2016 Management Shell에서 지정된 순서대로 PowerShell 명령을 실행합니다.

다음 명령은 SharePoint 팜 관리자 구성원 자격이 필요합니다.

이러한 PowerShell 명령에 대한 자세한 내용은 SharePoint 2016: PowerShell cmdlet 목록으로 이동합니다.

  1. PowerShell 세션을 활성화하여 SharePoint 팜에 대한 보안 토큰 서비스로 변경합니다.

    $c = Get-SPSecurityTokenServiceConfig  
    $c.AllowMetadataOverHttp = $true  
    $c.AllowOAuthOverHttp= $true  
    $c.Update()  
    
  2. 메타데이터 끝점을 설정합니다.

    $metadataEndpoint = 
        "https://login.microsoftonline.com/common/.well-known/openid-configuration"  
    $oboissuer = "https://sts.windows.net/*/" 
    $issuer = "00000007-0000-0000-c000-000000000000@" + $SPOContextId  
    
  3. 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
    }
    

고객 참여 앱에 권한을 부여하여 SharePoint에 액세스하고 클레임 기반 인증 매핑을 구성

SharePoint 온-프레미스 서버의 SharePoint 2016 Management Shell에서 지정된 순서대로 PowerShell 명령을 실행합니다.

다음 명령은 SharePoint 사이트 모음 관리 구성원 자격이 필요합니다.

  1. SharePoint 사이트 모음이 있는 고객 참여 앱을 등록합니다.

    SharePoint 온-프레미스 사이트 모음 URL을 입력합니다. 이 예제에서는 <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. SharePoint 사이트에 대한 고객 참여 앱 액세스 권한을 부여합니다. <https://sharepoint.contoso.com/sites/crm/>을 SharePoint 사이트 URL로 바꿉니다.

    노트

    다음 예제에서 고객 관리 앱은 –Scope 사이트 모음 매개 변수를 사용하여 지정된 SharePoint 사이트 모음에 권한이 부여됩니다. Scope 매개 변수는 다음 옵션을 허용합니다. SharePoint 구성에 가장 적합한 범위를 선택합니다.

    • site. 지정된 SharePoint 사이트에만 고객 참여 앱 사용 권한을 부여합니다. 명명된 사이트 아래의 모든 하위 사이트에는 권한이 부여되지 않습니다.
      • sitecollection. 지정된 SharePoint 사이트 모음 내의 모든 웹 사이트 및 하위 사이트에 고객 참여 앱 권한을 부여합니다.
      • sitesubscription. 모든 사이트 모음, 웹 사이트 및 하위 사이트를 포함한 SharePoint 팜에 있는 모든 웹 사이트에 고객 참여 앱 권한을 부여합니다.

    중요

    사이트가 여러 개 있는 경우 각 사이트에 대해 스크립트를 실행합니다.

    $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. 클레임 기반 인증 매핑 유형을 설정합니다.

    중요

    기본적으로 클레임 기반 인증 매핑은 매핑을 위해 사용자의 Microsoft 계정 이메일 주소와 사용자의 SharePoint 온-프레미스 업무용 이메일 주소를 사용합니다. 클레임 기반 인증 매핑을 사용하는 경우 두 시스템 간의 사용자 이메일 주소가 일치해야 합니다. 클레임 기반 인증 매핑 유형 선택에서 자세히 알아보세요.

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

서버 기반 SharePoint 통합 마법사 사용 실행

다음 단계를 수행하세요.

  1. 마법사를 실행할 수 있는 적절한 권한이 있는지 확인하십시오. 필수 권한에서 자세히 알아보세요.

  2. 설정>문서 관리로 이동합니다.

  3. 문서 관리 영역에서 서버 기반 SharePoint 통합 활성화를 클릭합니다.

  4. 정보를 검토한 후 다음을 클릭합니다.

  5. SharePoint 사이트의 경우 온-프레미스를 클릭한 후 다음을 클릭합니다.

  6. SharePoint 온-프레미스 사이트 모음 URL(예: https://sharepoint.contoso.com/sites/crm)을 입력합니다. 사이트는 SSL에 대해 구성되어 있어야 합니다.

  7. 다음을 클릭합니다.

  8. 유효성 검사 사이트 섹션이 나타납니다. 모든 사이트가 유효한 것으로 결정되면 활성화를 클릭합니다. 하나 이상의 사이트가 잘못된 경우에는 서버 기반 인증 문제 해결을 참고하십시오.

문서 관리에 포함하려는 엔터티 선택

기본적으로 거래처, 문서, 잠재 고객, 제품, 견적 및 영업 홍보 자료 엔터티가 포함 되어있습니다. 문서 관리 설정에서 SharePoint의 문서 관리에 사용되는 엔터티를 추가하거나 제거할 수 있습니다. 설정>문서 관리로 이동합니다. 엔터티에서 문서 관리 사용에서 자세히 알아보세요.

비즈니스용 OneDrive 통합 추가

고객 참여 앱 및 SharePoint 온-프레미스 서버 기반 인증 구성을 완료한 후 비즈니스용 OneDrive를 통합할 수도 있습니다. 고객 참여 앱 및 비즈니스용 OneDrive 통합을 사용하면 사용자는 비즈니스용 OneDrive를 사용하여 개인 문서를 만들고 관리할 수 있습니다. 시스템 관리자가 비즈니스용 OneDrive를 활성화한 후에 해당 문서에 액세스할 수 있습니다.

비즈니스용 OneDrive 사용

SharePoint Server 온-프레미스가 실행되는 Windows Server에서 SharePoint 관리 셸을 열고 다음 명령을 실행합니다.

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

클레임 기반 인증 매핑 유형 선택

기본적으로 클레임 기반 인증 매핑은 매핑을 위해 사용자의 Microsoft 계정 이메일 주소와 사용자의 SharePoint 온-프레미스 업무용 이메일 주소를 사용합니다. 사용하는 클레임 기반 인증 유형에 따라 이메일 주소 같은 값은 고객 참여 앱 및 SharePoint 간에 일치해야 합니다. Microsoft 365 디렉터리 동기화는 이메일 주소를 일치시키는 데 도움이 됩니다. 자세한 내용은 Microsoft Azure에서 Microsoft 365 디렉토리 동기화 배포에서 확인하세요. 다른 종류의 클레임 기반 인증 매핑을 사용하려면 SharePoint 서버 기반 통합에 대한 사용자 지정 클레임 매핑 정의를 참고하세요.

중요

작업 전자 메일 속성을 활성화하려면 SharePoint 온-프레미스는 사용자 프로필 서비스 응용 프로그램을 구성하고 시작해야 합니다. SharePoint에서 사용자 프로필 서비스 응용 프로그램을 활성화하려면 SharePoint Server 2016에서 사용자 프로필 서비스 응용 프로그램 만들기, 편집 또는 삭제를 참고하십시오. 작업 전자 메일 같은 사용자 속성을 변경하려면 사용자 프로필 속성 편집을 참고하십시오. 사용자 프로필 서비스 응용 프로그램에 대한 자세한 내용은 SharePoint Server 2016에서 사용자 프로필 서비스 응용 프로그램 개요를 참고하십시오.