2012-02-07 107 views
1

我正在嘗試創建一個OData服務,該服務將使用由ACS提供的身份驗證&授權。用ACS對IdP進行身份驗證後顯示SWT令牌

我能夠配置ACS,但現在我需要爲服務的用戶提供能夠生成他們的SWT令牌以將其添加到「授權」標頭中的能力。我雖然要創建一個網頁,將提供可用的IdP列表,並將成功驗證後顯示SWT令牌。

怎麼辦?

+0

這聽起來像你想舉辦一個網站,將像一個RP,將用戶重定向到ACS,然後到身份提供者和背部,並那麼只需顯示從ACS接收的SWT。如果是這樣SCB的鏈接應該給你的代碼,你需要做到這一點,但我很想知道更多關於你的情況。你的OData客戶端的性質是什麼?例如,您是否有一個代表用戶進行OData呼叫的網站? – 2012-02-08 22:17:58

+0

我的最終目標是創建使用現有OData(.NET)服務的JavaScript應用程序。我想用ACS來保護OData服務。目前我正在努力檢索應該在調用我的服務時由Javascript應用程序插入到授權標頭中的SWT令牌。 – Glaxalg 2012-02-09 20:02:37

回答

2

SCB的鏈接在這裏一個良好的開端。這聽起來像是您的OData服務,您希望託管一個能夠獲取和緩存由ACS發佈的SWT令牌的網站,以便它可以用來代表用戶對您的OData服務進行經過驗證的調用。

您可以使用基於WIF的網站(如ACS sample)執行此操作,但您需要提供自己的自定義安全令牌處理程序,以便它瞭解SWT令牌,而WIF本身不支持該令牌。

查看april 2011 identity training kit提供瞭如何做到這一點的線索。例如,您可以找到在Windows Phone 7示例中的WIF庫上構建的SimpleWebToken和SimpleWebTokenHandler類。查看該演練的步驟38,其中顯示瞭如何將SimpleWebTokenHandler添加到您網站的web.config中。

有了這些工作,您還需要在web.config的microsoft.identityModel/service部分中配置saveBootstrapTokens =「true」。這樣一來,你的網站可以抓住SWT令牌就像這樣:

SimpleWebToken swt = ((IClaimsIdentity)HttpContext.Current.User.Identity).BootstrapToken as SimpleWebToken 
+0

我正在做這樣的事情。我得到引導的令牌並能夠將其傳輸到客戶端。它看起來像這樣:http%3a%2f%2fschemas.xmlsoap.org%2fws%2f2005%2f05%2fidentity%2fclaims%2fnameidentifier = HM81Sv2xnRD6P%2bm2W2T%2feBAfAhH2ZTMMxSBBOQ1Rxqs%3d&http%3a%2f%2fschemas.microsoft.com%2faccesscontrolservice%2f2010 %2f07%2fclaims%2fidentityprovider = URI%3aWindowsLiveID&受衆= HTTP%3A%2F%2f77.75.160.102%3a48451%2F&ExpiresOn = 1348788305&發行= HTTPS%3A%2F%2ftraffictheory.accesscontrol.windows。net%2f&HMACSHA256 = hLqNJd%2b1ZzgxqYY%2fXGQuOdmNpHBmWy0X7n1hO0mPVrY%3d問題是: – 2012-09-28 00:16:55

+0

從客戶端我不知道如何處理這個令牌,它是否應該直接設置到認證頭中? – 2012-09-28 00:17:21

+0

現在我的網站在FederatedAuthentication.WSFederationAuthenticationModule上遇到身份驗證失敗事件 – 2012-09-28 00:18:12

1

如果我正確理解你的問題,你正試圖顯示一個列出可用提供者的頁面。

微軟有一個很好的例子來說明如何連接ACS,其中包括顯示自動生成的提供程序列表。

http://www.windowsazure.com/en-us/develop/net/how-to-guides/access-control/

在問候掛鉤的OData到ACS的數據訪問團隊還必須通過一系列在他們的博客非常好走。

http://blogs.msdn.com/b/astoriateam/archive/2011/01/20/oauth-2-0-and-odata-protecting-an-odata-service-using-oauth-2-0.aspx

相關問題