Share via


HOW TO:建立 WCF 信賴憑證者應用程式

在這個練習中,您不會用到 STS。 您只要建立 WCF 服務,此服務可以讓您透過 IClaimsPrincipal 存取目前使用者的宣告。 促成這個步驟成功的關鍵,在於 FedUtil 會將 ClaimsPrincipalHttpModule 新增到您的專案中。 此模組可讓您將目前使用者的 IPrincipal 物件轉換成 IClaimsPrincipal 物件。

注意

您必須以提升權限的模式執行 Visual Studio,才能使 FedUtil 正常運作。

首先,請建立宣告感知 WCF 服務,如宣告感知 WCF 服務中所示。

接著,在方案總管中,用滑鼠右鍵按一下專案,然後選取 [新增 STS 參考]:

392cd2c5-5098-44c7-9738-f43e40da090f

這時會執行 FedUtil 工具。 這時會出現 FedUtil 對話方塊,開頭為 [歡迎使用同盟公用程式工具] 頁面:

35d73636-c363-47cf-a67f-16b3ca195d40

這個頁面會要求您輸入兩個欄位:

  1. 應用程式設定位置:請指定 WCF 服務的 web.config 檔案路徑。 如果您是從 Visual Studio 之外執行 FedUtil,這個欄位將會是空白的。 如果是從 Visual Studio 當中執行 FedUtil,這個欄位就會預先包含專案的 web.config 檔案路徑。 web.config 檔案必須已經存在,而且必須呈現其預設狀態 (也就是一開始由 Visual Studio 產生時所呈現的狀態)。 如果對相同的 web.config 檔案執行 FedUtil 超過一次,FedUtil 會直接覆寫其新增到該 web.config 檔案上的內容。

  2. 應用程式 URI:請指定 WCF 服務的 URI。 請注意,這是一個 .svc 檔案。 如果您是從 Visual Studio 之外執行 FedUtil,這個欄位將會是空白的。 如果是從 Visual Studio 當中執行 FedUtil,這個欄位就會預先包含專案的兩個 URI:一個會使用 localhost,另一個是使用電腦的完整網域名稱 (若有的話)。 在設定用於宣告的應用程式時,這個 URI 會用來做為領域值。 如果不是使用安全的 URI (也就是開頭不是 "https://"),則當您按 [下一步] 時將會收到警告訊息。

提供資訊之後,請按 [下一步]。 您將看見 [應用程式資訊] 頁面:

c869d84f-313b-436c-800c-48570365b607

選取要設定的服務名稱和端點合約名稱,然後按 [下一步]。 如果服務上有多個端點,而您只想針對特定端點設定宣告,則選取這些端點。

這時會出現 [安全性權杖服務] 頁面:

bdecc626-5ded-43dc-b569-3513a2bddbeb

選取 [沒有 STS]。 這時會建立具有宣告感知特性且不會要求 STS 簽發宣告的 WCF 服務。 此服務會取得架構所建立的預設宣告。 按 [下一步]。 這時會出現 [摘要] 頁面:

8619f6b7-c5a8-4da8-87e9-de5bb9f67638

按一下 [完成]。

這時若是檢視 web.config 檔案,您將發現 FedUtil 已將該檔案修改如下:

  • <configuration>/<configSections> 元素現在包含了 microsoft.IdentityModel 設定區段的參考:

    <section name="microsoft.identityModel" type="Microsoft.IdentityModel.Configuration.MicrosoftIdentityModelSection, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    
  • <configuration> 元素現在包含了 microsoft.identityModel 設定區段,其包含了您先前所指定的應用程式 URI:

    <microsoft.identityModel> <service name="ClaimsAwareService1.Service"> <audienceUris> <add value="https://localhost:64705/ClaimsAwareService1/Service.svc" /> </audienceUris> </service> </microsoft.identityModel>