我正在爲IdP啓動的SSO在ASP.Net中執行POC。 我使用ADFS登錄頁面上的AD憑據成功登錄。 但是,在我的斷言頁面上,如何獲得SAML響應並驗證用戶? 我可以看到使用開發人員工具的反應,但我怎樣才能得到它使用C#?如何閱讀SAML響應?
我曾嘗試:
我試圖打印從SAMLResponse查詢字符串參數值(我發現這個地方谷歌搜索後,所以不知道它是如何工作)。
ClaimsPrincipal claimsPrincipal = System.Threading.Thread.CurrentPrincipal as ClaimsPrincipal;
Response.Write("Is user Authenticated = " + claimsPrincipal.Identity.IsAuthenticated.ToString());
我得到這個爲:假
Response.Write(" Current Principal = " + System.Threading.Thread.CurrentPrincipal.ToString());
我得到這個爲:System.Security.Principal.GenericPrincipal
string rawSamlData = Request["SAMLResponse"];
Response.Write("Raw data \n");
Response.Write(rawSamlData);
rawSamlData = HttpUtility.UrlDecode(rawSamlData);
Response.Write("after url decode \n");
Response.Write(rawSamlData);
// read the base64 encoded bytes
byte[] samlData = Convert.FromBase64String(rawSamlData);
Response.Write("after base 64 \n");
Response.Write(samlData);
// read back into a UTF string
string samlAssertion = Encoding.UTF8.GetString(samlData);
Response.Write("saml assertion \n");
Response.Write(samlAssertion);
我得到的一些加密的字符串。我如何將其解碼爲SAML響應並對用戶進行身份驗證?