在 SharePoint Server 中規劃應用程式驗證

SharePoint 2013
 

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

上次修改主題的時間:2017-06-21

摘要:了解如何在 SharePoint 2013 和 SharePoint Server 2016 中規劃應用程式驗證。

應用程式驗證可以驗證外部 SharePoint 相關應用程式 的身分識別,也可以在應用程式要求存取受保護的 SharePoint 資源時,授權給應用程式和相關聯的使用者。當 SharePoint 市集 應用程式或 應用程式目錄 應用程式的外部元件嘗試存取受保護的 SharePoint 資源時,應用程式就需要驗證。例如,包含有 Microsoft Azure 執行元件的 SharePoint 相關應用程式 即為外部應用程式。應用程式驗證可以啟用一組新的功能與案例,達成的方法是允許應用程式加入 SharePoint 資源的資料,這些資料是應用程式處理以及向使用者顯示的結果。

若要提供所要求的 SharePoint 相關應用程式 資源,執行 SharePoint Server 的伺服器必須執行以下動作:

  • 確認要求的應用程式是可信任的。

    若要驗證要求的應用程式,您必須將執行 SharePoint Server 的伺服器設定為信任傳送要求的應用程式。這是單向的信任關係。

  • 確認應用程式要求的存取類型是經過授權的。

    若要授權存取,SharePoint Server 會依據在安裝應用程式時在應用程式資訊清單檔案中指定的一組應用程式權限,以及與應用程式所代表之使用者關聯的權限。SharePoint Server 還會依據在透過使用 Set-SPAppPrincipalPermissionWindows PowerShell Cmdlet 而建立信任時,所授與 SPAppPrincipal 的權限。

請注意,UNRESOLVED_TOKEN_VAL(SharePoint Server) 中的應用程式驗證與使用者驗證不同,不能當成是 SharePoint 使用者的登入驗證通訊協定。應用程式驗證會使用開放式授權 (OAuth) 2.0 通訊協定,而且不會加入使用者驗證的集合或是登入通訊協定之中,例如 WS-Federation。SharePoint Server 沒有使用新的使用者驗證通訊協定。應用程式驗證和 OAuth 不會出現在身分識別提供者的清單之中。

本文內容:

應用程式驗證的規劃包含下列工作:

  • 識別信任關係的集合,您必須在執行 SharePoint Server 的伺服器陣列上,針對會發出 SharePoint 資源請求的外部應用程式,設定對應的信任關係。

  • 從架設於網際網路的外部應用程式提供傳入存取。

重要事項重要事項:
包含有應用程式驗證端點 (用於處理 SharePoint 應用程式 的傳入要求) 的 Web 應用程式必須設定使用 Secure Sockets Layer (SSL)。您可以在 SharePoint Server 中設定 OAuth,這樣就不需要使用 SSL。不過,建議您這個方法僅限在評估、簡化設定或建立應用程式開發環境時使用。
注意事項附註:
如果您使用一個或多個需要 SharePoint 伺服器陣列資源的外部 SharePoint 應用程式,則您只需要在 SharePoint 伺服器陣列上規劃應用程式驗證。

您必須將 SharePoint 伺服器陣列設定為信任存取 Token,這些存取 Token 對應到的資源要求由下列外部應用程式類型傳送:

  • 提供者主控應用程式在網際網路或內部網路的本身伺服器上執行並登錄 Microsoft Azure,然後使用 ACS 取得存取 Token。

    對於提供者主控應用程式,您必須將 SharePoint 伺服器陣列設定為信任提供者主控應用程式的 ACS 執行個體。

    如需提供者主控應用程式的詳細資訊,請參閱<SharePoint 2013 應用程式概觀>。

  • 高信任度應用程式在內部網路的獨立伺服器上執行,然後使用簽署憑證數位簽署應用程式產生的存取 Token。

    高信任度應用程式會使用伺服器對伺服器通訊協定,代表使用者來要求資源。對於高信任度應用程式,請設定 SharePoint 伺服器陣列,加入主控應用程式之伺服器的 JavaScript Object Notation (JSON) 中繼資料端點 。或者,您可以手動設定信任。如需詳細資訊,請參閱設定 SharePoint Server 2013 的應用程式驗證

    如需高信任度應用程式的詳細資訊,請參閱做法:使用伺服器對伺服器通訊協定建立 SharePoint 2013 的高信任度應用程式

內部部署應用程式為裝載於內部部署伺服器的提供者主控應用程式,或 SharePoint 主控的應用程式。表 1 列出 SharePoint Server 不同的使用者驗證方法,以及 SharePoint Server 內部部署應用程式是否可以使用該方法。

表 1. 使用者驗證方法以及內部部署應用程式的支援

驗證方法 由 SharePoint 主控應用程式支援 由提供者主控應用程式支援

NTLM

Kerberos

是,但僅限於設定使用 NTLM 做為後援驗證方法時。不支援僅限 Kerberos。

基本

Anonymous

使用預設 ASP.NET 提供者的表單型驗證

使用輕量型目錄存取通訊協定 (LDAP) 的表單型驗證

安全性聲明標記語言 (SAML) 驗證

是,如果身份識別提供者支援萬用字元傳回統一資源定位器 (URL) 註冊,並接受 wreply 參數。

若要將 SharePoint Server 設定為使用 wreply 參數,請在 Windows PowerShell 命令提示字元中使用下列命令:

$p = Get-SPTrustedIdentityTokenIssuer
$p.UseWReplyParameter = $true
$p.Update()
注意事項附註:
Active Directory Federation Services (AD FS) 2.0 版本不支援傳回 URL 註冊的萬用字元。

如需在 SharePoint Server 中規劃使用者驗證方法的詳細資訊,請參閱<在 SharePoint 2013 中規劃使用者驗證方法>。

如果外部的提供者主控應用程式位於網際網路,您必須設定反向 Web Proxy 以執行應用程式驗證,以及請求內部網路 SharePoint 伺服器陣列的資源。位於網路邊緣且已設定完成的反向 Web Proxy 必須允許從應用程式到 SharePoint 伺服器陣列的 HTTP 連線,這些 HTTP 連線是透過 SSL (HTTPS) 傳入的 HTTP 連線。您通常可以識別出 HTTPS 型 URL,因為外部應用程式將存取並設定反向 Proxy,目的是發佈這些 URL 並提供適當的安全性。

高信任度應用程式會產生本身的存取 Token,其中包含所代表使用者的身分識別的宣告。執行 SharePoint Server 和服務傳入資源要求的伺服器必須可以解析特定 SharePoint 使用者,這個程序稱為解除凍結使用者的身分識別。請注意,此程序與提供者主控應用程式之應用程式授權的不同之處,在於使用者是經由身分識別而來,而非透過宣告。

若要解除凍結使用者的身分識別,執行 SharePoint Server 的伺服器要採用傳入存取 Token 的宣告,然後將其解析為特定 SharePoint 使用者。依預設,SharePoint Server 會使用內建的 User Profile 服務應用程式做為身分識別解析器。

解除凍結使用者身分識別的關鍵使用者屬性如下:

  • Windows 安全性識別碼 (SID)

  • Active Directory 網域服務 (AD DS) 使用者主體名稱 (UPN)

  • 簡易郵件傳送通訊協定 (SMTP) 位址

  • 工作階段初始通訊協定 (SIP) 位址

因此,應用程式必須至少包含這些使用者屬性之一,而且該使用者屬性目前必須存在使用者設定檔之中。建議您定期從身分識別儲存區同步到 User Profile 服務應用程式。

此外,根據這四個屬性中的一個或多個屬性所進行的指定查閱查詢,SharePoint Server 只需要 User Profile 服務應用程式中的一個項目。否則,查詢會傳回找到多個使用者設定檔的錯誤狀態。因此,您應該定期刪除 User Profile 服務應用程式中過時的使用者設定檔,避免發生多個使用者設定檔的錯誤。

如果針對使用者有使用者設定檔,但相關的群組成員資格不同步,則當使用者在存取應被授與存取權的指定資源時,存取可能會遭到拒絕。因此,請確認群組成員資格與 User Profile Service 應用程式保持同步的狀態。

顯示: