如何处理来自OKTA的SAMLResponse?

时间:2015-11-11 07:37:08

标签: single-sign-on saml okta

我正试图通过OKTA实施SSO。我可以通过

获取SAMLResponse文本
string rawSamlData = Request["SAMLResponse"]; 

通过

将字符串转换为XML格式
     if (rawSamlData.Contains("%"))
        {
            rawSamlData = HttpUtility.UrlDecode(rawSamlData);
        }
        byte[] samlData = Convert.FromBase64String(rawSamlData);
        string samlAssertion = Encoding.UTF8.GetString(samlData);

用户的信息包含在字符串samlAssertion中,例如X509Certificate,FirstName,LastName,Email等。问题是如何检查它是否有效?

3 个答案:

答案 0 :(得分:1)

请勿自行解析SAML数据,除非您愿意投入大量时间来确保安全权。

Kentor.AuthServices是一个与Okta兼容的开源.NET SP实现。甚至还有特定的documentation

答案 1 :(得分:0)

在.NET中不使用WS-Federation进行SSO的任何原因?查看https://msdn.microsoft.com/en-us/library/hh291061(v=vs.110).aspx。要将Okta用于Step 2,您可以create a Template WS-Fed app in Okta并使用“登录”标签下提供的提供的web.config。

如果绝对需要SAML,可以使用一些框架来帮助http://www.componentpro.com/saml.net/。另请查看http://www.twobotechnologies.com/blog/2014/01/sp-init-with-wif.html以获取SP init SAML,并http://travisspencer.com/blog/2010/09/idp-initiated-sso-using-wif.html查看IdP init SAML。

答案 2 :(得分:0)

您可以使用名为mod_auth_mellon的apache模块,而不是与okta集成并处理SAML响应。 以下是install it in ubuntu

的简单步骤