首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

聯合身分識別:使用 WIF 實作 ASP.NET 被動式聯盟驗證

     編輯:關於ASP.NET

前言

Windows Identity Foundation (WIF) 簡化了基於宣告的身分驗證。本文聚焦被動式聯盟:瀏覽器導向 STS 登入,取得安全權杖,應用程式依宣告授權。涵蓋通訊流程、ASP.NET 整合、單一登入/登出方案。

被動式聯盟基礎

  • 基於 WS-Federation 規格:定義權杖請求、聯盟中繼資料、登入/登出流程。
  • 瀏覽器透過 HTTP GET/POST、重導向、Cookie 完成互動。
  • WS-Trust 定義 RequestSecurityToken (RST) / RSTR 瀏覽器相容格式。

核心角色

  • Identity Provider (IdP):驗證使用者身分。
  • Security Token Service (STS):簽發含宣告的安全權杖。
  • Relying Party (RP):信任 STS 簽發權杖的應用程式/服務。

WIF 關鍵元件

  • WSFederationAuthenticationModule:HTTP 模組,攔截未驗證請求導向 STS。
  • SessionAuthenticationModule:管理會話權杖 Cookie。
  • ClaimsPrincipal / ClaimsIdentity:取代 IPrincipal,攜帶豐富宣告。
  • ClaimsAuthorizationManager:集中式授權決策點。

單一登入 (SSO) 與單一登出 (SLO)

  1. 使用者存取 RP → 重導向 STS 登入頁。
  2. STS 驗證成功 → 簽發權杖 → 重導向回 RP。
  3. RP 驗證權杖簽名、建立會話 Cookie。
  4. 登出:RP 清除會話 → 通知 STS → STS 清除自身會話 → 通知其他 RP 登出 (可透過 wsignoutcleanup1.0 端點)。

整合步驟摘要

  1. 安裝 WIF SDK / NuGet Microsoft.IdentityModel。
  2. web.config 註冊 WSFederationAuthenticationModule、SessionAuthenticationModule。
  3. 設定 <microsoft.identityModel> 區段:issuerNameRegistry、audienceUris、federationConfiguration。
  4. 實作 ClaimsAuthorizationManager 自訂授權邏輯。
  5. 配置 STS (如 ADFS、IdentityServer) 信任 RP 領域。

總結

WIF 將複雜的聯盟協定封裝為 ASP.NET 原生模組與宣告模型,讓開發者專注於業務授權而非協定細節,是跨域身分整合的首選框架。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved