다음을 통해 공유


서비스 응용 프로그램에 대한 액세스 제한 또는 허용(SharePoint Server)

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

SharePoint Server에서는 지정된 웹 응용 프로그램만 서비스 응용 프로그램을 사용할 수 있도록 서비스 응용 프로그램에 대한 액세스를 제한할 수 있습니다.

기본적으로 로컬 팜의 모든 웹 응용 프로그램은 로컬 팜의 모든 서비스 응용 프로그램을 사용할 수 있습니다. 동일한 팜에 여러 고객을 호스트하고 한 고객의 서비스 애플리케이션을 다른 고객의 웹 애플리케이션에서 격리하려는 경우 서비스 애플리케이션에 대한 액세스를 제한할 수 있습니다.

서비스 응용 프로그램에 대한 액세스를 제한했다가 나중에 전체 팜에서 서비스 응용 프로그램을 사용할 수 있도록 설정하려는 경우 제한을 제거하면 됩니다.

서비스 응용 프로그램 액세스 제한

서비스 응용 프로그램에 대한 액세스를 제한하려면 서비스 응용 프로그램에서 서비스 계정을 제거합니다. 반대로, 서비스 응용 프로그램에 대한 액세스를 허용하려면 서비스 응용 프로그램에 서비스 계정을 추가합니다. 중앙 관리를 사용하거나 PowerShell을 사용하여 이러한 작업을 수행할 수 있습니다.

서비스 응용 프로그램에 대한 액세스를 제한하려면 다음 작업을 완료해야 합니다.

  1. 서비스 응용 프로그램에 특정 서비스 계정을 추가합니다.

  2. 서비스 응용 프로그램에서 로컬 팜 ID를 제거합니다.

이 문서의 절차에서는 서비스 응용 프로그램에 대한 액세스를 제한하거나 복원하는 방법을 설명합니다. 그러나 이 절차에서 단계에 따라 어떤 서비스 응용 프로그램에나 원하는 서비스 계정을 추가할 수도 있고, 어떤 서비스 응용 프로그램에서나 원하는 서비스 계정을 제거할 수도 있습니다.

예를 들어 중앙 관리를 사용하여 서비스 응용 프로그램에 대한 로컬 팜 차원 액세스를 복원하려면 절차에서는 서비스 응용 프로그램에 로컬 팜 ID를 추가하는 방법을 명시적으로 설명합니다. 동일한 절차를 사용하여 원하는 다른 서비스 계정을 서비스 응용 프로그램에 추가할 수도 있습니다. 이렇게 하려면 로컬 팜 ID 대신 해당하는 서비스 계정을 입력하면 됩니다.

로컬 팜 ID는 기본적으로 서비스 응용 프로그램에 대한 로컬 팜 차원 액세스 권한을 제공하므로, 로컬 팜 ID도 제거하는 경우가 아니면 서비스 응용 프로그램에 명시적인 로컬 웹 응용 프로그램 사용 권한도 부여하는 것은 중복된 작업입니다.

서비스 응용 프로그램에 대한 사용 권한을 부여하려면 해당하는 서비스 계정을 검색 및 제공해야 합니다. 웹 응용 프로그램의 경우에는 이 계정을 응용 프로그램 풀 ID 계정이라고도 합니다.

서비스 계정에 대해 사용 권한을 부여한 후에 서비스 응용 프로그램에서 로컬 팜 ID를 제거하면 할당된 서비스 계정을 통해 관리되는 웹 응용 프로그램만 서비스 응용 프로그램에 액세스할 수 있습니다. 이 절차를 반복하고, 서비스 응용 프로그램에 여러 웹 응용 프로그램 서비스 계정을 추가하면 관리하는 서비스 계정이 서로 다른 여러 웹 응용 프로그램을 동일한 서비스 응용 프로그램에 할당할 수 있습니다.

주의

서비스 응용 프로그램에서 로컬 팜 ID를 제거하고 다른 서비스 계정을 해당 서비스 응용 프로그램에 할당하지 않는 경우에는 모든 웹 응용 프로그램에서 서비스 응용 프로그램을 사용할 수 없게 됩니다.

중앙 관리를 사용하여 서비스 응용 프로그램 대한 액세스 제한

SharePoint 중앙 관리 웹 사이트를 사용하여 서비스 응용 프로그램에 대한 액세스를 제한하려면 다음 단계를 수행해야 합니다.

  1. 웹 응용 프로그램 서비스 계정을 검색합니다.

  2. 서비스 응용 프로그램에 웹 응용 프로그램 서비스 계정을 추가합니다.

  3. 서비스 응용 프로그램에서 로컬 팜 ID를 제거합니다.

중앙 관리를 사용하여 웹 응용 프로그램 서비스 계정을 검색하려면

  1. 이 절차를 수행하는 사용자 계정이 Farm Administrators SharePoint 그룹의 구성원인지 확인합니다.

  2. 중앙 관리 홈 페이지의 보안 섹션에서 서비스 계정 구성을 클릭합니다.

  3. 서비스 계정 페이지의 첫 번째 드롭다운 목록에서 서비스 및 웹 응용 프로그램 구성 요소를 선택합니다.

    서비스 계정은 이 구성 요소에 대한 계정 선택 목록에 표시됩니다. 다음 절차에서 사용하므로 서비스 계정 이름을 기록합니다.

  4. 취소를 클릭하여 변경을 수행하지 않고 서비스 계정 페이지를 종료합니다.

중앙 관리를 사용하여 서비스 계정에 대한 서비스 응용 프로그램 액세스 권한을 부여하고 제거하려면

  1. 이 절차를 수행하는 사용자 계정이 Farm Administrators SharePoint 그룹의 구성원인지 확인합니다.

  2. 중앙 관리 홈 페이지의 응용 프로그램 관리 섹션에서 서비스 응용 프로그램 관리를 클릭합니다.

  3. 서비스 응용 프로그램 관리 페이지에서 사용 권한을 할당할 서비스 응용 프로그램이 포함된 행을 클릭합니다.

    그러면 리본 메뉴를 사용할 수 있게 됩니다.

  4. 리본 메뉴의 공유 그룹에서 사용 권한을 클릭합니다.

  5. 연결 권한 대화 상자에서 이전 절차에서 검색한 서비스 계정 이름을 입력한 다음 추가를 클릭합니다.

  6. 새로 추가한 서비스 계정 이름이 가운데 창에서 선택되어 있는지 확인한 다음 아래쪽 창에서 해당하는 확인란을 클릭하여 필수 권한 수준을 제공합니다.

  7. 가운데 창에서 로컬 팜을 클릭하고 제거를 클릭합니다.

  8. 연결 권한 페이지에 서비스 응용 프로그램에 액세스하는 데 사용할 서비스 계정만 표시되어 있으며, 해당 서비스 계정에 서비스 응용 프로그램에 대한 필수 권한이 있는지 확인합니다. 사용 권한을 변경하려면 확인을 클릭하고, 변경하지 않고 작업을 종료하려면 취소를 클릭합니다.

이 절차를 사용하여 원하는 서비스 계정에 대해 사용 권한을 부여하고 제거할 수 있습니다. CentralAdmin_2nd를 사용하여 서비스 응용 프로그램에 대해 로컬 팜 ID를 복원하려면 다른 서비스 계정에는 적용되지 않는 추가 단계를 수행해야 합니다. 이 작업을 수행하는 방법에 대한 자세한 내용은 이 문서의 뒷부분에 있는 서비스 애플리케이션에 대한 팜 전체 액세스 복원을 참조하세요.

Microsoft PowerShell을 사용하여 서비스 응용 프로그램 액세스 제한

이 섹션의 모든 절차에서는 적절한 권한이 있다고 가정합니다.

PowerShell을 사용하여 서비스 애플리케이션에 대한 액세스를 제한하는 프로세스는 중앙 관리를 사용하여 동일한 작업을 수행하는 것보다 더 복잡합니다. PowerShell에서는 몇 가지 절차를 사용하여 입력할 정보를 수집하고 이후 프로시저에 저장합니다.

PowerShell을 시작한 후에 서비스 응용 프로그램에 대한 액세스를 제한하는 나머지 단계는 다음과 같습니다.

  1. 로컬 팜 ID를 검색합니다.

  2. 웹 응용 프로그램 서비스 계정을 검색합니다.

  3. 웹 응용 프로그램 서비스 계정이 포함된 새 클레임 사용자를 만듭니다.

  4. 서비스 응용 프로그램의 보안 개체를 검색합니다.

  5. 서비스 응용 프로그램의 보안 개체에 웹 응용 프로그램 서비스 계정을 추가합니다.

  6. 서비스 응용 프로그램의 보안 개체에서 로컬 팜 ID를 제거합니다.

  7. 서비스 응용 프로그램에 업데이트된 보안 개체를 할당합니다.

  8. 업데이트된 사용 권한을 표시하고 검토합니다.

Microsoft PowerShell 세션을 시작하려면

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

    • SQL Server 인스턴스에 대한 securityadmin 고정 서버 역할

    • 업데이트하려는 모든 데이터베이스에 대한 db_owner 고정 데이터베이스 역할

    • PowerShell cmdlet을 실행 중인 서버의 Administrators 그룹

    관리자는 Add-SPShellAdmin cmdlet을 사용하여 SharePoint Server cmdlet 사용 권한을 부여할 수 있습니다.

    참고

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

  2. SharePoint 관리 셸을 시작합니다.

Microsoft PowerShell을 사용하여 웹 응용 프로그램 서비스 계정을 검색하고 새 클레임 사용자를 만들려면

  1. PowerShell 명령 프롬프트에서 다음 명령을 입력하여 웹 응용 프로그램의 서비스 계정(응용 프로그램 풀 ID 계정)을 검색합니다.

    $webapp = Get-SPWebApplication <http://WebApplication>
    $webApp.ApplicationPool.UserName
    

    여기서 <http://WebApplication> 은 웹 애플리케이션 URL입니다.

    웹 응용 프로그램 서비스 계정 이름이 명령 프롬프트에 표시됩니다.

  2. 새 클레임 사용자를 만들려면 다음 명령을 입력합니다.

    $principal = New-SPClaimsPrincipal <ServiceAccount> -IdentityType WindowsSamAccountName
    

    여기서 <ServiceAccount> 는 이전 명령을 실행하여 검색된 사용자 이름(또는 contoso\jane 형식 jane@contoso.com )입니다. 새 클레임 사용자는 $principal 변수에 포함됩니다.

서비스 응용 프로그램의 보안 개체를 검색하려면

  1. 서비스 응용 프로그램의 보안 개체를 검색하려면 다음 명령을 입력합니다. 서비스 응용 프로그램 보안 개체는 $security 변수에 저장됩니다.

    $spapp = Get-SPServiceApplication -Name "<ServiceApplicationDisplayName>"
    $spguid = $spapp.id
    $security = Get-SPServiceApplicationSecurity $spguid
    

    여기서 <ServiceApplicationDisplayName> 은 서비스 애플리케이션의 표시 이름입니다.

    중요

    표시 이름을 따옴표로 묶어야 하며 서비스 애플리케이션 표시 이름과 정확히 일치해야 합니다. 대/소문자 표시도 포함됩니다. 동일한 표시 이름을 가진 둘 이상의 서비스 애플리케이션이 있는 경우(권장하지 않음) 인수 없이 Get-SPServiceApplication cmdlet을 실행하여 모든 서비스 애플리케이션을 볼 수 있습니다. 그런 다음, 해당 GUID를 통해 서비스 애플리케이션을 직접 식별할 수 있습니다.

    Get-SpServiceApplication
    

    모든 서비스 응용 프로그램이 나열됩니다.

    $spapp = Get-SpserviceApplication -Identity <GUID>
    $spguid = $spapp.id
    

    여기서 <GUID> 는 권한을 업데이트하려는 서비스 애플리케이션의 GUID입니다.

기본 설정 사용 권한으로 서비스 응용 프로그램 보안 개체를 업데이트하려면

  1. 서비스 응용 프로그램 보안 개체를 업데이트하는 첫 번째 단계에서는 새 클레임 사용자 $principal을 서비스 응용 프로그램 보안 개체 $security에 추가합니다. 이렇게 하려면 다음 명령을 입력합니다.

    Grant-SPObjectSecurity $security $principal -Rights "<Rights>"
    

    여기서 <권한> 은 부여하려는 권한입니다. 일반적으로 이 작업은 모든 권한이 됩니다. 사용 가능한 권한은 서비스 애플리케이션마다 다를 수 있습니다.

    모든 권한을 부여하지 않으려는 경우, 서비스 응용 프로그램에 부여할 수 있는 권한을 모르면 다음 명령을 실행하여 사용 가능한 권한 문자열을 반환할 수 있습니다.

    $rightslist = Get-SPServiceApplicationSecurity $spapp
    $rightslist.NamedAccessRights
    
  2. 서비스 애플리케이션 보안 개체$security 로컬 팜 ID($farmID 변수에 저장됨)를 제거하려면 다음 명령을 입력합니다.

    Revoke-SPObjectSecurity $security $farmID
    
  3. 업데이트된 $security 보안 개체를 서비스 애플리케이션에 할당하고 서비스 애플리케이션의 보안 개체가 적절하게 업데이트되어 있는지 확인하려면 다음 명령을 입력합니다.

    Set-SPServiceApplicationSecurity $spapp -ObjectSecurity $security (Get-SPServiceApplicationSecurity $spapp).AccessRules
    

    이러한 절차에 따라 원하는 서비스 계정을 서비스 응용 프로그램에 추가하거나 서비스 응용 프로그램에서 제거할 수 있습니다.

서비스 응용 프로그램에 대한 팜 수준 액세스 복원

서비스 응용 프로그램에 로컬 팜 ID를 추가하여 서비스 응용 프로그램에 대한 팜 차원 액세스를 복원할 수 있습니다. 중앙 관리를 사용하거나 PowerShell 명령을 사용하여 이 작업을 수행할 수 있습니다. 그러나 PowerShell을 사용하여 로컬 팜 ID를 가져와야 합니다.

PowerShell을 사용하여 로컬 팜 ID를 검색하려면

  1. Microsoft PowerShell 세션을 시작하려면 절차의 4단계를 수행한 후에 이 절차를 시작합니다.

  2. 다음 명령은 로컬 팜 ID를 검색하고 , $farmID 변수에 저장하고, 명령 프롬프트에 ID를 표시합니다.

    $farmID = Get-SPFarm | select id
    

    중앙 관리를 사용하여 팜 차원 액세스를 복원하려면 이 값을 클립보드에 복사하여 다음 절차에서 사용합니다.

    PowerShell을 사용하여 서비스 애플리케이션에 대한 팜 전체 액세스를 복원하려면 PowerShell 명령 프롬프트에 다음 추가 명령을 입력합니다. 검색된 정보는 다음 절차에서 사용합니다.

    $claimProvider = (Get-SPClaimProvider System).ClaimProvider 
    $principal = New-SPClaimsPrincipal -ClaimType "http://schemas.microsoft.com/sharepoint/2009/08/claims/farmid" -ClaimProvider $claimProvider -ClaimValue $farmid
    

중앙 관리를 사용하여 서비스 응용 프로그램에 대한 로컬 팜 차원 액세스를 복원하려면

  1. 중앙 관리를 사용하여 서비스 계정에 대한 서비스 응용 프로그램 액세스 권한을 부여하고 제거하려면 절차의 1-3단계를 수행합니다.

  2. 연결 권한 대화 상자에서 이전 절차에서 검색한 로컬 팜 ID를 복사한 다음 추가를 클릭합니다.

  3. 가운데 창에서 로컬 팜 ID가 선택되어 있는지 확인합니다. 아래쪽 창에서 모든 권한 확인란을 클릭합니다.

  4. 확인을 클릭하여 서비스 응용 프로그램에 대한 팜 차원 액세스를 복원하거나, 취소를 클릭하여 변경하지 않고 작업을 종료합니다.

Microsoft PowerShell을 사용하여 서비스 응용 프로그램에 대한 로컬 팜 차원 액세스를 복원하려면

  1. 이 절차는 Windows PowerShell을 사용하여 로컬 팜 ID를 검색하려면 절차의 2단계 후에 시작됩니다.

  2. 서비스 응용 프로그램 보안 개체 $security에 대해 검색된 로컬 팜 ID를 복원하려면 다음 명령을 입력합니다.

    $spapp = Get-SPServiceApplication -Name "<ServiceApplicationDisplayName>"
    $spguid = $spapp.id
    $security = Get-SPServiceApplicationSecurity $spguid
    Grant-SPObjectSecurity -Identity $security -Principal $Principal -Rights "Full Control"
    Set-SPServiceApplicationSecurity $spguid -ObjectSecurity $security
    

    여기서 <ServiceApplicationDisplayName> 은 서비스 애플리케이션의 표시 이름입니다.

    중요

    표시 이름을 따옴표로 묶어야 하며 서비스 애플리케이션 표시 이름과 정확히 일치해야 합니다. 대/소문자 표시도 포함됩니다. 동일한 표시 이름을 가진 둘 이상의 서비스 애플리케이션이 있는 경우(권장하지 않음) 인수 없이 Get-SPServiceApplication cmdlet을 실행하여 모든 서비스 애플리케이션을 볼 수 있습니다. 그런 다음, 해당 GUID를 통해 서비스 애플리케이션을 직접 식별할 수 있습니다.

Microsoft Powershell 코드 예제

다음 예제에서 관리자는 "contoso\jane" 서비스 계정으로 관리되는 웹 애플리케이션으로 http://contoso/hawaii "Contoso BDC" 서비스 애플리케이션에 대한 액세스를 제한하려고 합니다. "contoso\jane"을 추가하고 서비스 애플리케이션에서 로컬 팜 서비스 계정을 제거하면 "Contoso BDC"는 서비스 계정 "contoso\jane"으로 관리되는 웹 애플리케이션으로만 제한됩니다. 이 경우 http://contoso/hawaii.

$farmid = Get-SPFarm | select id
$claimProvider = (Get-SPClaimProvider System).ClaimProvider 
$farmappId = New-SPClaimsPrincipal -ClaimType "http://schemas.microsoft.com/sharepoint/2009/08/claims/farmid" -ClaimProvider $claimProvider -ClaimValue $farmid 
webapp = get-spwebapplication http://contoso
$webapp.applicationpool
$principal = New-SPClaimsPrincipal contoso/jane -IdentityType WindowsSamAccountName
$spapp = Get-SPServiceApplication -Name "Contoso BDC"
$spguid = $spapp.id
$security = Get-SPServiceApplicationSecurity $spguid
Grant-SPObjectSecurity $security $principal -Rights "Full Control"
Revoke-SPObjectSecurity $security $farmappId
Set-SPServiceApplicationSecurity $spguid -ObjectSecurity $security
(Get-SPServiceApplicationSecurity $spguid).AccessRules

다음 예제에서는 서비스 응용 프로그램 "Contoso BDC"에 대한 액세스가 로컬 팜의 모든 웹 응용 프로그램으로 복원됩니다.

$farmid = Get-SPFarm | select id
$claimProvider = (Get-SPClaimProvider System).ClaimProvider 
$farmappId = New-SPClaimsPrincipal -ClaimType "http://schemas.microsoft.com/sharepoint/2009/08/claims/farmid" -ClaimProvider $claimProvider -ClaimValue $farmid 
$spapp = Get-SPServiceApplication -Name "Contoso BDC"
$spguid = $spapp.id
$security = Get-SPServiceApplicationSecurity $spguid
Grant-SPObjectSecurity -Identity $security -Principal $farmappId -Rights "Full Control"
Set-SPServiceApplicationSecurity $spguid -ObjectSecurity $security
(Get-SPServiceApplicationSecurity $spguid).AccessRules

참고 항목

개념

SharePoint Server에서 웹 응용 프로그램에 대한 서비스 응용 프로그램 연결 추가 또는 제거

SharePoint Server 2016 및 2019의 계정 권한 및 보안 설정

기타 리소스

SharePoint Server에서 웹 응용 프로그램 만들기

Get-SPWebApplication

New-SPClaimsPrincipal

Get-SPServiceApplication

Get-SPServiceApplicationSecurity

Grant-SPObjectSecurity

Set-SPServiceApplicationSecurity

Get-SPFarm

Get-SPClaimProvider