【问题标题】:SSO/SAML with .NET applicationSSO/SAML 与 .NET 应用程序
【发布时间】:2018-12-07 08:28:50
【问题描述】:

背景

我有一个 .NET(不是 MVC 或 ASP.NET)应用程序(它是一个 Excel 插件),它对数据执行 1 次 REST 调用(REST 调用是受保护的资源 - 需要经过身份验证的用户)。 目前,此 Excel 插件使用基本身份验证(使用用户名/密码输入字段)向 REST 后端进行身份验证。 用户在 Windows 域上进行身份验证。

问题

我想摆脱用户名/密码输入并开始使用 SAML2 为这些用户实现真正的单点登录。来自此 .NET 应用程序。

问题 1:是否可以为我的应用执行客户端 SAML2 身份验证?

使用哪个框架/库?

如果可能的话(我希望如此......),我找到了这个信息:

“不是官方的 C# 客户端协议栈”,但是有各种实现 SAML2 的第三方库”,但这些似乎都集中在 ASP.NET 上。

  • Sustainsys.Saml2
  • OneLogin
  • AspNetSaml
  • ITfoxtec

我尝试了几个库,但它们似乎都想将用户(在浏览器中 - 我不在应用程序中使用)重定向到特定端点。

我不是 .NET 专家,所以如果可能的话,任何带有清晰示例/教程的库都将不胜感激。

2018-12-13 跟进

因此,只有在此 Excel 加载项应用程序的自定义窗格中包含 WebBrowserControl 时,才能进行真正的 SAML 身份验证。 此 WebBrowserControl 将处理 SAML 协商(包括跟踪所有重定向等)。 但是,我刚刚注意到,当我访问触发 Firefox 中 SAML 身份验证的 URL(它具有空的 NTLM 可信 URI)时,我得到了一个身份验证弹出窗口。当我输入我的凭据时,我就通过了身份验证。

问题 2

我是否仍然可以在没有 WebBrowserControl 的情况下在 .NET 后端执行 SAML 协商,但是通过提供我目前在我的 GUI 中仍然拥有的用户名 + 密码? 我可以在过程中的某个时刻设置正确的标题吗? 如果有,怎么做?

【问题讨论】:

  • 在您的应用程序中显示一个 WebBrowserControl。
  • 是的,这似乎是一种选择。我不知道我用来构建 Excel 插件的框架是否支持在功能区中添加 WebBrowserControl。有没有其他选择?完全原生(没有浏览器组件)身份验证是否可行?
  • 我强烈怀疑没有浏览器是可能的。
  • 好的,经过一番研究,WebBrowserControl 似乎确实是唯一的出路。您有多确定这真的可以与 WebBrowserControl 一起使用?是否有任何问题、特定的 IE 版本或操作系统要求?

标签: .net saml-2.0


【解决方案1】:

SAML stacks列表。

为什么选择 SAML?

如您所指出的,SAML 使用浏览器重定向。

我建议使用 ADAL 库,即 OpenID Connect。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-23
    • 2016-03-06
    • 2017-02-04
    • 2020-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多