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