【问题标题】:How to handle the SAMLResponse from OKTA?如何处理来自 OKTA 的 SAMLResponse?
【发布时间】:2015-11-11 07:37:07
【问题描述】:

我正在尝试通过 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等。问题是如何检查是否验证?

【问题讨论】:

    标签: single-sign-on saml okta


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      有什么理由不在 .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 初始化 SAML 和 http://travisspencer.com/blog/2010/09/idp-initiated-sso-using-wif.html 获取 IdP 初始化 SAML。

      【讨论】:

      • 感谢您的回答。我通过表单收到了来自 okta 的 SAMLResponse。我需要做的是检查请求是否有效。如果请求验证,我会跳过登录页面,让用户自动登录。如何确保请求得到验证?换句话说,我应该如何使用证书和令牌?
      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2015-06-28
        • 2015-12-23
        • 2011-07-11
        • 1970-01-01
        • 2019-03-22
        • 2021-08-17
        • 2011-08-22
        • 2020-04-05
        相关资源
        最近更新 更多