簡體   English   中英

使用針對asp.net的WSFederationAuthenticationModule對多個身份提供程序進行身份驗證

[英]Authentication against multiple identity providers using WSFederationAuthenticationModule for asp.net

我們有多租戶asp.net MVC網站,支持多個合作伙伴。 目前,我們正在使用表單身份驗證來驗證用戶。 現在,一些合作伙伴要求使用SAML進行單點登錄支持。

我做了快速的POC來測試它對抗“Thinktecture”身份提供者。 我所做的只是為VS 2012安裝“身份和訪問”擴展並配置身份提供者。 我注意到擴展程序在web.config文件中添加了IP和域的URL等配置設置。 它還添加了“WSFederationAuthenticationModule”模塊來處理身份驗證。 該模塊處理所有重定向和場景后響應的驗證。

在我的情況下,因為我們將擁有多個身份提供商,具體取決於合作伙伴,我將選擇身份提供商。 不同IP的URL將存儲在數據庫中。 我無法在web.config中列出所有IP。 因此,我需要一種機制,我可以將用戶重定向到適當的IP URL,一旦IP回發結果,驗證結果並通過聲明檢索用戶信息。 我不想對結果進行XML解析並驗證響應,但只想調用“WSFederationAuthenticationModule”中的方法來執行繁重的工作。 但我不確定哪種方法對我有用。 有人可以幫助我或列出我需要執行的方法序列嗎?

看看我的簡單例子

http://www.wiktorzychla.com/2014/11/simplest-saml11-federated-authentication.html

訣竅是不要在pipleline中使用WSFam模塊,而是使用其api來觸發重定向並使用響應。 如果你按照我的代碼,你會看到有兩個條款

 // wsfed response or not
 if ( !fam.IsSignInResponse(...) )
    // redirect to provider
 else
    // create local config and validate the incoming token

這個簡單的例子非常適合多租戶場景,實際上我們每天都在多租戶環境中使用ws-fed,大多數客戶都是基於這種核心方法。

也就是說,在使用響應的分支中以編程方式創建SecurityTokenHandlerConfiguration ,可以完全控制如何為不同的租戶驗證令牌。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM