게시 및 사용 팜 간에 서버 간 인증 구성
적용 대상:2013 2016 2019 Subscription Edition SharePoint in Microsoft 365
팜에서 게시 팜의 사용자 프로필 서비스 애플리케이션을 사용하는 경우 SharePoint는 일부 기능에 대해 사용자를 대신하여 서버-서버 인증을 사용하여 요청을 실행합니다.
사용자의 개인 사이트가 외부 팜의 웹 애플리케이션에 있는 경우 콘텐츠 웹 애플리케이션의 문서를 따릅니다. 콘텐츠 웹 애플리케이션은 사용자를 대신하여 내 사이트 웹 애플리케이션에 OAuth 요청을 합니다.
콘텐츠 웹 애플리케이션에 있지만 내 사이트 웹 애플리케이션에서 사용자의 내 사이트 뉴스 피드를 통해 수행되는 사이트의 사이트 피드 게시물을 만들거나 회신합니다. 내 사이트 웹 애플리케이션은 사용자를 대신하여 콘텐츠 웹 애플리케이션에 게시물 또는 회신을 작성하도록 요청합니다.
피드 캐시를 다시 채워야 하는 사용자 프로필 서비스 애플리케이션 작업은 개인 사이트 또는 콘텐츠 사이트에서 읽어야 합니다. 사용자 프로필 서비스 애플리케이션이 다른 팜에서 실행 중인 경우 OAuth 요청을 내 사이트 웹 애플리케이션 또는 콘텐츠 웹 애플리케이션으로 전송하여 사용자 또는 사이트 피드 데이터를 캐시로 읽습니다.
시작하기 전에
이 문서의 절차를 수행하려면 다음을 이미 구성해야 합니다.
- SharePoint Server의 팜 간에 서비스 애플리케이션 공유에 설명된 대로 소비 팜과 게시 팜 간에 사용자 프로필 서비스 애플리케이션을 공유했습니다.
- 이 문서의 "구독 설정 및 앱 관리 서비스 애플리케이션 구성" 섹션에 설명된 대로 게시 및 사용 팜 모두에서 구독 설정 및 앱 관리 서비스 애플리케이션을 구성했습니다.
다음 멤버 자격이 있는지 확인합니다.
- 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에서 서버 간 인증 계획