Как мне прочитать ответ SAML ?
Привет,
Я делаю POC в ASP.Net для ВПЛ инициировано SSO.
Я успешно вошел в систему с моими учетными данными AD на странице входа в ADFS.
Но на моей странице утверждения, как я могу получить ответ SAML и проверить пользователя?
Я могу видеть ответ с помощью инструмента разработчика, но как я могу получить его с помощью c#?
Что я уже пробовал:
Я попытался распечатать значения из параметра SAMLResponse querystring (я нашел это где-то после того, как погуглил. Так что не уверен, как это на самом деле работает).
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());
Я получаю это как: система.Безопасность.Главный.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 и аутентифицировать пользователя?