我正在構建一個應用程序,其中的要求似乎是標準問題(至少對我來說)...我有一個基於asp.net.net mvc &客戶端的Web.UI iphone,andriod & blackberry。.net服務架構中的n層身份和授權
因此,明智的做法是將我所有的業務邏輯轉移到可以通過http訪問的服務層。這個服務層必須接受具有用戶上下文(身份)的請求,並且以一種很好的方式執行授權,無論哪種類型的客戶端與它通信(我希望?)。
過去的一年,我去了一個3個月的演出,那個演員使用了W.I.F. (Windows身份基礎)的混合內部部署&雲架構。我喜歡它。 (1)外部化認證,而不是關心它是如何完成的,(2)從業務邏輯中移除授權邏輯,(3)基於權利要求的授權。
在過去的一年裏,我聽過並關注Rest Services提供的'嶄新酷酷的嬉皮士做事方式'。所以我很好,讓我們試試看。在我開始玩&獲得編碼後,我開始變得非常困惑(並且隨後在不寫另一行c#的情況下,昨天讀了大約10個小時)。我仍然對所有SOAP vs REST,WS。* vs vs Http,SAML vs SWT babble感到困惑。我真的不希望這個線程是關於這個的,因爲有足夠的這個在stackoverflow上說,但我覺得我有兩個陣營之間的選擇,當它不真的覺得我想要一個或另一個但從每個位?
對我來說,我上面提到的關於WIF的3點看起來不像是應該與WS綁定的概念。但是我感覺他們,或者至少現在WIF如何在沒有專家調整的情況下(例如,我偶然發現這篇文章是在幾天前寫的 - http://zamd.net/2011/02/08/using-simple-web-token-swt-with-wif/)。
我不太瞭解的其他領域是我的客戶端(iphone,andriod,blackberry)能夠使用WIF進行播放,它是否是向他們拋出SAML令牌的STS,它們的行爲就像瀏覽器並像其他客戶端一樣將其傳回標題中?是的,我必須要知道,但是如果這是與W.I.F的交易斷路器,並且在發佈之後我會直截了當地發現,那麼至少我可以專注於此。
最後再投入一件東西。我真的不想去想這些。我想使用第三方身份驗證/身份提供商 - 我相信使用OpenID的http://www.janrain.com/products/engage。這可以融入W.I.F.或者我只是從OpenID創建一個新的SAML令牌,並從那時起使用WIF。
我想在這個喋喋不休的結尾,我想回到我開始的地方,因爲越來越複雜,我提出的問題越多,考慮的選擇越多。
是否有一個服務層(在WCF上)與不同的非.NET客戶端進行通信,這需要身份上下文和授權如此奇怪?如果你已經建立了這樣的東西,你是如何接近它的?
一個SAML令牌只是嵌入在cookie中的格式....就算他們能得到非常大的,但如果它的設計沒有吹出來的,我不明白爲什麼一個SAML令牌不能使用跨平臺。 – 2011-02-18 18:23:11
爲了澄清這一點,我不太在乎客戶端的授權和使用SAML,我更關心它在服務層。我需要知道的是客戶端可以像瀏覽器一樣攜帶令牌。換句話說,我可以假設你在回覆中說'假設'。 – 2011-02-18 18:26:54
我不認爲iphone應用程序是一樣的使用Safari瀏覽器在iphone上?我想你想用的是這個,也許 - http://developer.apple.com/library/ios/#documentation/DataManagement/Conceptual/iPhoneCoreData01/Introduction/Introduction.html ...無論如何,我想知道如果任何人實際上在更大的圖片上有一個裂縫。 – 2011-02-18 18:47:42