SharePoint 2013 開發——Provider-hosted APP準備工作

Justin-Liu發表於2015-06-18

後續的內容我們來一步一步開發一個SharePoint Porvider-hosted APP,本篇主要介紹一些準備工作。

SharePoint需要一系列步驟包括證書和建立唯一的客戶端ID來使用伺服器到伺服器(STS)的通訊協議。使用STS通訊協議的APP叫做高信任應用程式,因為APP允許使用使用者的訪問令牌(access token)來模擬使用者身份。STS協議是通用的通訊協議,需要臨時的access token來訪問,被微軟的應用廣泛使用,如Exchange,Lync等。本地伺服器建立的SharePoint provider-hosted app不能像雲端那樣使用上下文令牌來識別使用者身份,高信任應用程式並不是完全信任的應用程式,它必須請求安裝它的使用者來獲取許可權。

下面我們就來看看如何做:

1. 建立一個證書。

在SharePoint伺服器上開啟IIS管理器,選擇伺服器節點,雙擊伺服器證書。

點選右側選單中的建立自簽名證書。

為證書取一個好記的名稱,我們這裡叫HighTrustTest了。

點選確定之後就可以看到我們建立的證書了,右鍵點選證書選擇匯出,通常我們匯出到Visual Studio的專案資料夾目錄,這裡還沒有建立,先匯出到桌面,密碼隨便起一個,我們這裡起abc123。

證書先放這,後面會用。


2. 建立一個相應的.cer檔案。

在伺服器證書檢視中,雙擊我們之前建立的證書顯示證書明細,並選擇到詳細資訊標籤頁。

點選複製到檔案按鈕,選擇下一步,預設值下一步,重複預設值下一步,在檔名這裡,我們起作HighTrustTestCert,下一步,點選完成完成匯出。

注意:.pfx檔案必須跟Visual Studio在同一個機器,.cer檔案必須跟SharePoint 2013在同一個機器。.pfx檔案必須部署到你的Web應用程式所在Web伺服器。


3. 配置SharePoint 2013上的服務供STS應用程式使用,確保配置了應用程式管理服務和使用者配置檔案應用程式。

管理中心->應用程式管理->管理服務應用程式,確保使用者配置檔案應用程式和應用程式管理服務啟動了。管理中心->應用程式管理->伺服器上的服務,確保使用者配置檔案服務啟動了。


4. 配置SharePoint 2013以使用證書並配置對你的應用程式的信任

a. 在文字編輯器或 Windows PowerShell 編輯器中,啟動一個新檔案並向其新增下面的行以建立證書物件

$publicCertPath = "C:\HighTrustTestCert.cer"

$certificate = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2($publicCertPath)


b. 新增下面的行以確保 SharePoint 將證書視為根證書頒發機構

New-SPTrustedRootAuthority -Name "HighTrustTestCert" -Certificate $certificate


c. 新增下面的行以獲取授權領域的ID

$realm = Get-SPAuthenticationRealm


d. 你的遠端 Web 應用程式將使用訪問令牌獲取對 SharePoint 資料的訪問許可權。該訪問令牌必須是由 SharePoint 信任的令牌頒發者頒發的。在高信任 SharePoint 相關應用程式 中,該證書是令牌頒發者。新增下面的行以 SharePoint 需要的格式構造頒發者 ID:specific_issuer_GUID@realm_GUID。(ID可以用Visual Studio自帶的GUID建立工具生成一個,注意要小寫)

$specificIssuerId = "ed5182f0-3090-4e83-a58b-9eb145619993"

$fullIssuerIdentifier = $specificIssuerId + '@' + $realm


e. 新增下面的行以將證書註冊為受信任的令牌頒發者。-Name 引數必須是唯一的,以便在生產配置中,通常可以使用 GUID 作為部分(或全部)名稱,但是在此上下文中,你可以使用友好名稱。需要 –IsTrustBroker 開關以確保可以為你開發的所有高信任應用程式使用相同的證書。要立即註冊令牌頒發者,需要 iisreset 命令。如果沒有該命令,你可能需要等待 24 小時才能註冊新的頒發者。

New-SPTrustedSecurityTokenIssuer -Name "High Trust Test Cert" -Certificate $certificate -RegisteredIssuerName $fullIssuerIdentifier -IsTrustBroker

iisreset


f. SharePoint 2013 通常不接受自簽名證書。因此當你使用自簽名證書進行除錯時,請新增下面的行以關閉在遠端 Web 應用程式呼叫到 SharePoint 中時使用的 HTTPS 的 SharePoint 的一般要求。如果未新增,則當遠端 Web 應用程式使用自簽名證書呼叫 SharePoint 時,你將收到"403(已禁止)"訊息。你將在之後的過程中撤銷此步驟。關閉 HTTPS 要求意味著從遠端 Web 應用程式到 SharePoint 的請求未加密,但是該證書仍然可以用作訪問令牌的受信任的頒發者,這是其在高信任 SharePoint 相關應用程式 中的主要目的。

$serviceConfig = Get-SPSecurityTokenServiceConfig

$serviceConfig.AllowOAuthOverHttp = $true

$serviceConfig.Update()


g. 使用名稱 HighTrustConfig-ForDebugOnly.ps1 儲存該檔案


h. 以管理員身份開啟"SharePoint Management Shell",然後使用下面的行執行檔案

./HighTrustConfig-ForDebugOnly.ps1


下一篇我們將用Visual Studio進行Provider-hosted APP的開發和部署。

更多資訊



相關文章