Shibboleth 和 .NET

Posted

技术标签:

【中文标题】Shibboleth 和 .NET【英文标题】:Shibboleth and .NET 【发布时间】:2010-11-21 18:53:34 【问题描述】:

我要求 ASP.NET Web 应用程序使用 Shibboleth 进行身份验证。有没有人这样做过?是否有支持方法调用的库?还是这只是 Java 的事情?

【问题讨论】:

我以为希伯勒斯是上古之神之一。显然他对人进行身份验证? 如果您为此找到了 .NET 解决方案,我会很感兴趣。 我还没有为 .NET 做过这个,但是通过我在 iPhone 上的 Objective-C 实现,你可能会得到一些想法。 【参考方案1】:

这绝对不是 Java 独有的,在 Shibboleth 网站上有一个 Apache 模块可供下载。

我不知道是否有任何特定于 .NET 的内容。

不久前我们实现了 Shibboleth,我们最初尝试使用 Java 解决方案 - 这是一场噩梦。 Java 应用程序写得不好,有缺陷,文档也很糟糕。麻烦又麻烦,我们最终决定在专用服务器上使用 Apache 模块,并将成功通过身份验证的用户转发到我们的 Tomcat 应用程序。 Apache 模块的设置、配置和工作都很容易。

不知道您是否已经意识到,但 Shib 文档和网站非常难以浏览 - 寻找任何有用信息是一场斗争。我确实去那里寻找 .NET 实现但放弃了!

如果我们的 Java 经验值得借鉴,我会认真建议您设置一个安装了 Shibboleth 模块的 Apache 服务器,这样可以省去您的痛苦。

这是一个测试您的 Shibboleth 安装的好站点:http://www.testshib.org/testshib-two/index.jsp

如果您确实找到了一个好的 .NET 解决方案,那么我会非常有兴趣了解它。祝你好运!

【讨论】:

链接(不出所料)已损坏。请转至此处samltest.id【参考方案2】:

我知道这是一个非常古老的问题,但我认为我可以为那些从 Google 寻找答案的人做一些更好的扩展。

按照上面的建议,您确实希望配置您的网络服务器来加载模块。 shibboleth 最难的部分是配置文件,但假设您组织中的其他人使用了 shibboleth,您可以使用他们的作为模板,而且相当容易。

对于基于 .NET 的身份验证,您需要configure Shibboleth in IIS。 IIS 的默认配置会创建一个名为 /secure 的目录,并且放在该目录下的任何内容都需要 shibboleth 身份验证(即,它将重定向到身份提供者)。您可以将其配置为覆盖其他目录,甚至进行惰性身份验证。

一旦您完成了身份验证,您就可以检查标头以“读取”身份提供者传递给您的信息。 IIS 处理事情的方式与 Apache 略有不同,但它仍然很容易。如果你只想要用户名,你可以使用 HTTP_REMOTEUSER 虽然可能有更好的选择;即Ohio State University recommends using the eduPersonPrincipalName。

【讨论】:

这就是我对 Shibboleth 所做的。唯一的配置是 Shibboleth XML 和 Discovery 模板。我同意,对于 Apache 知识有限的人或第一次这样做的人来说,文档很难。 我知道这是一个老问题,但如果它是托管在 Azure Web 应用程序上的 .NET MVC Web 服务呢?我们的目标是将谁可以调用服务限制为 SSO (SAML/Shib) 身份验证的用户。【参考方案3】:

正如 MatthewMartin 所说,Shibboleth 只是一个 SAML 服务器,Windows Identity Foundation 支持 SAML,如 blog post 中所述。

【讨论】:

下载 CTP 的链接现已失效。 很确定 WIF 已被拉入 dotnet 框架 dll 中。所有 WS Fed 的东西都与 OWIN/Katana 混合在一起

以上是关于Shibboleth 和 .NET的主要内容,如果未能解决你的问题,请参考以下文章

Shibboleth 和 .NET

Shibboleth 宁静的 api

使用 Shibboleth 的 asp.net MVC 身份验证

如何使用 SAML 和 Shibboleth 实施或集成单点登录

Shibboleth

Shibboleth SP 和 ADFS 作为 idP