Share via


建立 ASP.NET 信賴憑證者應用程式

根據 WS-Federation 規格 1.2,這個案例稱為被動式要求者設定檔。 瀏覽器用戶端會用來執行表單重新導向,而用戶端中不會出現任何 WS-Trust 序列化邏輯。 這個案例會提供兩種方式來保護使用被動式同盟的 ASP.NET Web 應用程式。

  1. 使用 FederatedPassiveSignIn 控制項。

  2. <PassiveRedirect> 元素新增至 web.config 檔案的 Microsoft.IdentityModel 設定區段中。

第二種方法會要求您啟用 Web 應用程式中的 WSFederationAuthenticationModule。 為了維護驗證工作階段,您將必須同時採用 SessionAuthenticationModule。 如需相關資訊,請參閱WS-同盟驗證模組概觀

為同盟設定登入頁面的方法有兩種:(1) 使用 FederatedPassiveSignIn 控制項,以及 (2) 設定被動式重新導向適用的 WS-FAM。

方法 1:使用 FederatedPassiveSignIn 控制項

WIF 會提供 FederatedPassiveSignIn 控制項,以便輕鬆地將 Web 應用程式和宣告感知身分識別模型整合在一起,以及將 Web 應用程式設定為具備宣告感知特性。 透過使用這個控制項,您可以指定 Web 應用程式應該要將使用者重新導向到其上的 STS 位址,將驗證程序從 Web 應用程式移到該 STS。 當接收到 STS 發出的回應時,此控制項會驗證出現在該回應中的安全性權杖。 如果驗證成功,它會發出呼叫者會用於任何後續呼叫的 Cookie,這樣那些呼叫就不需要再次重新導向回到 STS。 當 Cookie 到期時,呼叫者必須再次向該 STS 進行驗證,才可取得新的安全性權杖。

如果使用的是 Visual Studio 2005,則在進行此動作之前,請先確定已將 WIF 控制項安裝到 Visual Studio 工具箱。 您可以依序開啟工具箱,對它按一下滑鼠右鍵,然後選取 [選擇項目],便可執行這個動作。 在結果對話方塊中,選取 [.NET Framework 元件] 索引標籤,然後按一下右下角的 [瀏覽] 按鈕。 從 WIF 安裝資料夾中的 Reference Assemblies 目錄中,選取 Microsoft.IdentityModel.dll 組件,然後按一下 [開啟]。 再按一下 [確定]。 新控制項將會出現在 [標準] 類別下方的工具箱視窗中。 其中有個控制項稱為 FederatedPassiveSignIn,也就是您將用於下列步驟中的控制項。

  1. 在 Visual Studio 中,從工具箱中將 FederatedPassiveSignIn 控制項新增到該頁面上。

  2. [簽發者] 屬性設定成特定權杖簽發者的 URL。

  3. 設定 [領域] 屬性。 STS 會使用這個屬性來識別信賴憑證者執行個體,以及選取對應的權杖簽發原則和加密憑證。

  4. 您可以在標記中設定事件處理常式,例如將在驗證權杖時呼叫的處理常式。 您也可以指定 Cookie 在權杖驗證成功執行之後是否要傳回給使用者 (將 SignInMode 設定成 Session) 或是不回傳任何 Cookie。 若是後者,當使用者發出新要求時,呼叫者會再次重新導向到 STS (將 SignInMode 設定成 Single)。 預設值為 Session

  5. 您可以透過設定 [外觀] 類別中的各種屬性,來自訂控制項的外觀和行為。 例如,SignInButtonStyle 屬性會決定控制項在呈現頁面上要顯示為可按下的影像或是簡單連結。

下列範例程式碼會顯示 FederatedPassiveSignIn 控制項的標記:

<wif:FederatedPassiveSignIn id="FederatedPassiveSignIn1" runat="server" Issuer="https://www.contoso.com:441/PassiveIdentityProvider/default.aspx" SignInButtonType="Link" Realm="https://www.contoso.com:441" OnSecurityTokenReceived="FederatedPassiveSignIn1_SecurityTokenReceived"> </wif:FederatedPassiveSignIn>

方法 2:使用 <passiveRedirect> 元素來執行自動呼叫者登入

WS-FAM 會提供 <passiveRedirect> 設定元素,以便啟用將未驗證的使用者要求自動重新導向到指定的 STS。 您必須將 federatedAuthentication 元素新增到 Microsoft.IdentityModel 區段,才能啟用被動式重新導向。 當自動被動式重新導向啟用時可使用兩種必要屬性 (Attribute)。 issuer 屬性會指定負責簽發權杖的 STS。 realm 屬性則會將信賴憑證者識別提供給 STS。 這些屬性 (Attribute) 與 FederatedPassiveSignIn 控制項上的 IssuerRealm 等屬性 (Property) 具有相同意義,如先前內容所述。 下面程式碼範例會示範如何新增這個元素:

<federatedAuthentication enabled="true"> <passiveRedirect enabled="true" issuer="https://localhost/SimplePassiveSTS1/default.aspx" realm="https://localhost/ClaimsAwareWebApp1"></passiveRedirect> </federatedAuthentication>

如需相關資訊,請參閱 HOW TO:建立 ASP.NET 信賴憑證者應用程式