0

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

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 等。问题是如何检查它是否 validate?

4

3 回答 3

1

不要自行解析 SAML 数据,除非您愿意花费大量时间来获得安全性。

Kentor.AuthServices 是与 Okta 兼容的开源 .NET SP 实现。甚至还有专门的文档

于 2015-11-20T07:34:02.477 回答
0

您可以使用名为mod_auth_mellon的 apache 模块,而不是与 okta 集成并自己处理 SAML 响应。这是在ubuntu中安装它的简单步骤

于 2015-11-29T15:06:45.023 回答
0

有什么理由不在 .NET 中使用 WS-Federation 进行 SSO?查看https://msdn.microsoft.com/en-us/library/hh291061(v=vs.110).aspx。要在步骤 2中使用 Okta ,您可以在 Okta 中创建模板 WS-Fed 应用程序,并使用登录选项卡下提供的 web.config。

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

于 2015-11-11T13:41:34.517 回答