本文為機器翻譯文章。如需檢視英文版,請選取 [原文] 核取方塊。您也可以將滑鼠指標移到文字上,即可在快顯視窗顯示英文原文。
譯文
原文

限制或啟用服務應用程式的存取 (SharePoint 2013)

 

適用版本:SharePoint Foundation 2013, SharePoint Server 2013

上次修改主題的時間:2016-12-16

摘要:了解如何透過新增及移除服務帳戶限制存取服務應用程式,以及如何在 SharePoint 2013 重新建立存取服務應用程式的本機全伺服器陣列。

在 SharePoint 2013 中,您可以限制存取服務應用程式,以便於僅允許指定的 Web 應用程式存取服務應用程式。

根據預設,在本機伺服器陣列上的所有服務應用程式,均適用於本機伺服器陣列上的所有 Web 應用程式。如果您在相同的伺服器陣列中主控多個客戶,而且想要將某個客戶的服務應用程式與另一個客戶的 Web 應用程式隔離,您可能會想要限制存取服務應用程式。

如果您限制存取服務應用程式,但後來決定讓這個服務應用程式可用於整個伺服器陣列,則可以將此限制取消。

本文內容:

開始進行此工作之前,請先檢閱下列有關先決條件的資訊:

注意事項 附註:
由於 SharePoint 2013 在 IIS 中以網站形式運作,所以系統管理員與使用者均依賴瀏覽器提供的協助工具功能。SharePoint 2013 支援所支援之瀏覽器的協助工具功能。如需詳細資訊,請參閱下列資源:

若要限制存取服務應用程式,可移除服務應用程式的服務帳戶。相反地,若要啟用存取服務應用程式,可在服務應用程式中新增服務帳戶。您可以使用管理中心或 Windows PowerShell 3.0 執行這些工作。

若要限制存取服務應用程式,必須完成下列工作:

  1. 新增特定的服務帳戶至服務應用程式。

  2. 移除服務應用程式的本機伺服器陣列識別碼。

注意事項 附註:
本文中的步驟說明如何限制或還原存取服務應用程式。不過,您可以遵循程序中的步驟新增任何服務帳戶至任何的服務應用程式,或者刪除任何服務應用程式的任何服務帳戶。
例如,使用管理中心還原服務應用程式的本機全伺服器陣列存取權這一程序清楚地說明如何新增服務應用程式的本機伺服器陣列識別碼。同樣的程序也可用來新增服務應用程式的任何其他服務帳戶。為達成此目的,您必須提供適當的服務帳戶而非本機伺服器陣列識別碼。

因為本機伺服器陣列識別碼預設會提供服務應用程式之本機全伺服器陣列的存取權限,如果再明確為服務應用程授與本機 Web 應用程式權限,將會顯得多餘,除非您也移除了本機伺服器陣列識別碼。

若要授與服務應用程式權限,您必須取得並提供適當的服務帳戶。對於 Web 應用程式,此帳戶也稱為「應用程式集區識別帳戶」。

在您授與權限至服務帳戶,並移除服務應用程式的本機伺服器陣列識別碼後,只有指派服務帳戶管理的 Web 應用程式才能存取服務應用程式。透過重複這些步驟,並將不同的 Web 應用程式服務帳戶新增至服務應用程式中,您可以指派多個 Web 應用程式 (具有不同的管理服務帳戶)。

警告 警告:
如果您移除服務應用程式的本機伺服器陣列識別碼,並且沒有為服務應用程式指派任何其他的服務帳戶,則服務應用程式對於所有 Web 應用程式都將不可使用。

本節內容:

若要使用 SharePoint 管理中心網站限制存取服務應用程式,請遵循下列步驟:

  1. 擷取 Web 應用程式服務帳戶。

  2. 新增 Web 應用程式服務帳戶至服務應用程式。

  3. 移除服務應用程式的本機伺服器陣列識別碼。

本節中的程序:

使用管理中心擷取 Web 應用程式服務帳戶
  1. 確認執行此程序的使用者帳戶為 SharePoint 伺服器陣列管理員群組的成員。

  2. 在管理中心首頁上的 [安全性] 區段中,按一下 [設定服務帳戶]。

  3. 在「服務帳戶」頁面上,選取第一個下拉式清單中的 Web 應用程式名稱。

    服務帳戶會顯示在 [選取此元件的帳戶] 清單中。請記錄此服務帳戶的名稱,因為您將在下一步驟中使用此名稱。

  4. 按一下 [取消],結束「服務帳戶」頁面,但不進行任何變更。

使用管理中心授與或移除服務帳戶對服務應用程式的存取權限
  1. 確認執行此程序的使用者帳戶為 SharePoint 伺服器陣列管理員群組的成員。

  2. 在管理中心首頁上,按一下 [應用程式管理] 區段中的 [管理服務應用程式]。

  3. 在「管理服務應用程式」頁面上,按一下包含要授與權限之服務應用程式的列。

    功能區隨即變為可用。

  4. 在功能區的 [共用] 群組中,按一下 [權限]。

  5. 在 [連線權限] 對話方塊中,輸入您在前一步驟取得的服務帳戶名稱,然後按一下 [新增]。

  6. 請確定已選取中央窗格中,剛新增的服務帳戶名稱,然後在下方窗格中按一下適當的核取方塊,以提供所需的權限層級。

  7. 在中央窗格中,按一下 [本機伺服器陣列],然後再按一下 [移除]。

  8. 確認「連線權限」頁面現在僅列出您希望可以存取服務應用程式的服務帳戶,而且服務帳戶在服務應用程式上具備所需的權限。按一下 [確定] 變更權限,或者按一下 [取消] 結束工作,但不進行任何變更。

使用此步驟可以為任何服務帳戶授與及移除權限。

注意事項 附註:
若要使用管理中心將本機伺服器陣列識別碼還原至服務應用程式,還需要一個額外的步驟,此步驟不適用於其他服務帳戶。如需如何執行這項操作的資訊,請參閱本文稍後的<還原對服務應用程式的伺服器陣列層級的存取>。

本節中的所有步驟都假設您具備適當的權限,並且已開啟 Windows PowerShell 3.0 命令提示字元視窗,如本節稍後的<啟動 Windows PowerShell 工作階段>程序中所述。

與使用管理中心限制對服務應用程式的存取相比,使用 Windows PowerShell 執行相同的工作的程序更加複雜。在 Windows PowerShell 中,您將使用一些程序來收集與儲存用於輸入至稍後程序中的資訊。

啟動 Windows PowerShell 後,限制存取服務應用程式的其餘步驟如下所示:

  1. 取得本機伺服器陣列識別碼。

  2. 擷取 Web 應用程式服務帳戶。

  3. 建立包含 Web 應用程式服務帳戶的新宣告主體。

  4. 取得服務應用程式安全性物件。

  5. 新增 Web 應用程式服務帳戶至服務應用程式的安全性物件中。

  6. 移除服務應用程式安全性物件中的本機伺服器陣列識別碼。

  7. 指派服務應用程式更新的安全性物件。

  8. 顯示並檢閱更新的權限

本節內容:

啟動 Windows PowerShell 工作階段
  1. 確認您具備下列成員資格:

    • SQL Server 執行個體上的 securityadmin 固定伺服器角色。

    • 待更新之所有資料庫上的 db_owner 固定資料庫角色。

    • 執行 Windows PowerShell Cmdlet 之伺服器上的系統管理員群組。

    系統管理員可以使用 Add-SPShellAdmin Cmdlet 授與使用權限,以使用 SharePoint 2013 Cmdlet。

    注意事項 附註:
    如果您沒有權限,請連絡安裝程式系統管理員或 SQL Server 系統管理員以要求權限。如需有關 Windows PowerShell 權限的詳細資訊,請參閱<Add-SPShellAdmin>。
  2. 啟動 SharePoint 2013 管理命令介面。

    • 若為 Windows Server 2008 R2:

      • 在 [開始] 功能表上,依序按一下 [所有程式]、[Microsoft SharePoint 2013 產品]、[SharePoint 2013 管理命令介面]。

    • 若為 Windows Server 2012:

      • 在 [開始] 畫面上,按一下 [SharePoint 2013 管理命令介面]。

        如果 [SharePoint 2013 管理命令介面] 設為關閉 [開始] 畫面:

      • 在 [電腦] 上按滑鼠右鍵,按一下 [所有應用程式],然後按一下 [SharePoint 2013 管理命令介面]。

    如需如何與 Windows Server 2012 互動的詳細資訊,請參閱<Windows Server 2012 的常見管理工作及瀏覽方式>。

使用 Windows PowerShell 擷取 Web 應用程式服務帳戶並建立新的宣告主體
  1. 在 Windows PowerShell 命令提示字元處,輸入下列命令以擷取 Web 應用程式的服務帳戶 (也就是應用程式集區識別帳戶):

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

    其中:

    <http://WebApplication> 是 Web 應用程式的 URL。

    Web 應用程式服務帳戶名稱在命令提示字元後顯示。

  2. 若要建立新的宣告主體,請輸入下列命令:

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

    其中:

    <ServiceAccount> 是執行前述命令後擷取到的使用者名稱 (形式為 jane@contoso.com 或 contoso\jane)。$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>"
    

    其中:

    <Rights> 是您要授與的權限。通常此處為「完全控制」。可用的權限可能因服務應用程式不同而異。

    提示 提示:
    如果您不要授與「完全控制」權限,而且不知道可以為服務應用程式授與哪種權限,則可以執行下列命令,傳回可用的權限字串:
    $rightslist = Get-SPServiceApplicationSecurity $spapp
    $rightslist.NamedAccessRights
  2. 若要移除服務應用程式安全性物件 $security 的本機伺服器陣列識別碼 (儲存在 $farmID 變數中),請輸入下列命令:

    Revoke-SPObjectSecurity $security $farmID
    
  3. 若要指派更新的 $security 安全性物件至服務應用程式,並確認服務應用程式的安全性物件已得到適當的更新,請輸入下列命令:

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

使用這些步驟可以在服務應用程式中新增或移除服務帳戶。

新增本機伺服器陣列識別碼至服務應用程式中,您可以還原存取服務應用程式的全伺服器陣列。您可以使用管理中心或 Windows PowerShell 命令執行此作業。不過,您必須使用 Windows PowerShell 3.0 取得本機伺服器陣列識別碼。

本節內容:

使用 Windows PowerShell 取得本機伺服器陣列識別碼
  1. 此程序在<啟動 Windows PowerShell 工作階段>程序的步驟 4 之後開始。

  2. 下列命令可擷取本機伺服器陣列識別碼,將其儲存在 $farmID 變數中,並在命令提示字元後顯示此識別碼:

    $farmID = Get-SPFarm | select id
    

    如果您要使用管理中心還原存取全伺服器陣列,請將此值複製至剪貼簿,以供後面的步驟使用。

    如果您要使用 Windows PowerShell 還原存取服務應用程式的全伺服器陣列,請在 Windows 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. 確定已在中央窗格中選取本機伺服器陣列識別碼。按一下下方窗格中的 [完全控制] 核取方塊。

  4. 按一下 [確定] 還原存取服務應用程式的全伺服器陣列,或者按一下 [取消] 結束工作,但不進行任何變更。

使用 Windows PowerShell 還原存取服務應用程式的本機全伺服器陣列
  1. 此程序在<使用 Windows Powershell 擷取本機伺服器陣列識別碼>程序的步驟 2 之後開始。

  2. 若要還原擷取的本機伺服器陣列識別碼至服務應用程式安全性物件 $security,請輸入下列命令;

    $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 識別服務應用程式。

在下列範例中,管理員想要將對 "Contoso BDC" 服務應用程式的存取限定於 http://contoso/hawaii Web 應用程式,這個應用程式是由服務帳戶 "contoso\jane" 管理。透過新增 "contoso\jane" 並移除服務應用程式中的本機伺服器陣列服務帳戶,可將 "Contoso BDC" 限定於只能由服務帳戶 "contoso\jane" (在此範例中為 http://contoso/hawaii) 管理的 Web 應用程式存取。

$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" 會還原為可供本機伺服器陣列中所有 Web 應用程式存取。

$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

https://technet.microsoft.com/zh-tw/library/cc678863.aspx
顯示: