게시 및 사용 팜 간에 서버 간 인증 구성

적용 대상:yes-img-132013 yes-img-162016 yes-img-192019 yes-img-seSubscription Edition no-img-sopSharePoint in Microsoft 365

팜에서 게시 팜의 사용자 프로필 서비스 애플리케이션을 사용하는 경우 SharePoint는 일부 기능에 대해 사용자를 대신하여 서버-서버 인증을 사용하여 요청을 실행합니다.

  • 사용자의 개인 사이트가 외부 팜의 웹 애플리케이션에 있는 경우 콘텐츠 웹 애플리케이션의 문서를 따릅니다. 콘텐츠 웹 애플리케이션은 사용자를 대신하여 내 사이트 웹 애플리케이션에 OAuth 요청을 합니다.

  • 콘텐츠 웹 애플리케이션에 있지만 내 사이트 웹 애플리케이션에서 사용자의 내 사이트 뉴스 피드를 통해 수행되는 사이트의 사이트 피드 게시물을 만들거나 회신합니다. 내 사이트 웹 애플리케이션은 사용자를 대신하여 콘텐츠 웹 애플리케이션에 게시물 또는 회신을 작성하도록 요청합니다.

  • 피드 캐시를 다시 채워야 하는 사용자 프로필 서비스 애플리케이션 작업은 개인 사이트 또는 콘텐츠 사이트에서 읽어야 합니다. 사용자 프로필 서비스 애플리케이션이 다른 팜에서 실행 중인 경우 OAuth 요청을 내 사이트 웹 애플리케이션 또는 콘텐츠 웹 애플리케이션으로 보내서 사용자 또는 사이트 피드 데이터를 캐시로 읽습니다.

시작하기 전에

이 문서의 절차를 수행하려면 다음을 이미 구성해야 합니다.

다음 멤버 자격이 있는지 확인합니다.

  • SQL Server 인스턴스에 대한 Securityadmin 고정 서버 역할
  • 업데이트하려는 모든 데이터베이스에 대한 db_owner 고정 데이터베이스 역할
  • PowerShell cmdlet을 실행 중인 서버의 기본 제공 Administrators 그룹의 구성원입니다. 관리자는 Add-SPShellAdmin cmdlet을 사용하여 SharePoint Server cmdlet 사용 권한을 부여할 수 있습니다.

    참고

    권한이 없는 경우 설치 관리자 또는 SQL Server 관리자에게 문의하여 권한을 요청하십시오. PowerShell 권한에 대한 자세한 내용은 Add-SPShellAdmin을 참조하십시오.

게시 팜과 소비 팜 사이의 서버 간 인증 구성

다음 절차에서는 게시 및 사용 팜 간에 서버 간 인증을 구성하고 소셜 기능이 작동할 수 있도록 필요한 권한만 부여하는 방법을 설명합니다. 각 팜은 고유한 고유한 인증 영역을 유지합니다.

사용 중인 팜에 MySites 웹 애플리케이션을 호스트하는 팜에 OAuth 요청을 보낼 권한을 부여합니다.

MySites 웹 애플리케이션(게시 팜이 아닐 수 있음)을 실행하는 팜의 SharePoint 서버에서 SharePoint 관리 셸을 시작하고 이 PowerShell 스크립트를 실행하여 소비 팜을 신뢰할 수 있는 발급자로 등록하고 앱 주체를 가져와 필요한 권한 부여를 부여합니다.

# Register the consuming farm as a trusted issuer using information in its metadata file
$trustedIssuer = New-SPTrustedSecurityTokenIssuer -MetadataEndpoint "https://<ConsumingFarmWinClaimsWebApp>/_layouts/15/metadata/json/1" -Name "<ConsumingFarmFriendlyName>"

# Get the app principal and set required authorizations
$mySiteHost = Get-SPWeb "http://<MySiteHostUrl/"
$appPrincipal = Get-SPAppPrincipal -Site $mySiteHost -NameIdentifier $trustedIssuer.NameId

# Grant permissions AppOnly and Write on the MySite host
Set-SPAppPrincipalPermission -EnableAppOnlyPolicy -Site $mySiteHost -AppPrincipal $appPrincipal -Scope SiteSubscription -Right Write

# Grant permissions Manage on the PrivateAPI and Read on the SocialPermissionProvider
$privateAPITypeId = New-Object -TypeName System.Guid ("a2ccc2e2-1703-4bd9-955f-77b2550d6f0d")
$socialPermissionProviderId = New-Object -TypeName System.Guid ("fcaec196-a98c-4f8f-b60f-e1a82272a6d2")
$mgr = New-Object -TypeName Microsoft.SharePoint.SPAppPrincipalPermissionsManager ($mySiteHost)
$mgr.AddSiteSubscriptionPermission($appPrincipal, $privateAPITypeId, [Microsoft.SharePoint.SPAppPrincipalPermissionKind]::Manage)
$mgr.AddSiteSubscriptionPermission($appPrincipal, $socialPermissionProviderId, [Microsoft.SharePoint.SPAppPrincipalPermissionKind]::Read)

사용 중인 팜에 OAuth 요청을 보내도록 게시 팜에 권한 부여

사용 중인 팜의 SharePoint 서버에서 SharePoint 관리 셸을 시작하고 이 PowerShell 스크립트를 실행하여 게시 팜을 신뢰할 수 있는 발급자로 등록하고 앱 주체를 가져와 필요한 권한 부여를 부여합니다.

# Register the publishing farm as a trusted issuer using information in its metadata file
$trustedIssuer = New-SPTrustedSecurityTokenIssuer -MetadataEndpoint "https://<PublishingFarmWinClaimsWebApp>/_layouts/15/metadata/json/1" -Name "<PublishingFarmFriendlyName>"

# Get the app principal
$centralAdminWeb = Get-SPWeb "http://<ConsumingFarmCentralAdminURL/"
$appPrincipal = Get-SPAppPrincipal -Site $centralAdminWeb -NameIdentifier $trustedIssuer.NameId

# Grant app only permission and Read on the SiteSubscription
Set-SPAppPrincipalPermission -EnableAppOnlyPolicy -AppPrincipal $appPrincipal -Site $centralAdminWeb -Scope SiteSubscription -Right Read

# Grant permissions Manage on the PrivateAPI
$privateAPITypeId = New-Object -TypeName System.Guid ("a2ccc2e2-1703-4bd9-955f-77b2550d6f0d")
$mgr = New-Object -TypeName Microsoft.SharePoint.SPAppPrincipalPermissionsManager ($centralAdminWeb)
$mgr.AddSiteSubscriptionPermission($appPrincipal, $privateAPITypeId, [Microsoft.SharePoint.SPAppPrincipalPermissionKind]::Manage)

참고 항목

개념

SharePoint Server에서 팜 간에 서비스 응용 프로그램 공유

SharePoint Server의 인증 개요

SharePoint Server에서 서버 간 인증 계획

기타 리소스

New-SPTrustedSecurityTokenIssuer

Set-SPAppPrincipalPermission