将 SAML 与我的 mvc Web 应用程序集成

Posted

技术标签:

【中文标题】将 SAML 与我的 mvc Web 应用程序集成【英文标题】:Integrate SAML with my mvc web aplication 【发布时间】:2013-12-16 07:12:11 【问题描述】:

我对 SAML 非常陌生,需要澄清一下。

我有一个 asp.net mvc 应用程序。现在我想使用 tableau API 并显示一些图表。我想通过使用 SAML SSO 的 tableau 身份验证。 我的需要是这样的,

    我的应用程序/Tableau Server 通过 HTTP 充当 SAML SP SP 将用户重定向到 Idp 以进行身份​​验证 SAML IdP 将用户重定向回 SAML SP,并提供身份验证结果和原始请求。 SAML SP 告诉 Tableau 可信身份验证用户已成功通过身份验证。 可信身份验证向用户颁发信任票证。 用户能够访问(授权的)Tableau 视图/内容。

我需要为此创建 Idp。

任何分步说明或代码示例都会有所帮助。 请您介绍一下如何使用 SAML。

谢谢阿尼什。

【问题讨论】:

【参考方案1】:

SAML 使网站(服务提供商)能够请求用户在另一个域(身份提供商)登录。有很多方法可以实现这一点。

从您的措辞中并不清楚您要达到的目标。我认为你的意思是你希望你的 asp.net 应用程序的用户使用他们的 asp.net 应用程序会话/凭据登录到另一个应用程序,那么你的 asp.net 应用程序是 IdP,另一个应用程序是 SP。有两种选择:

    asp.net 应用程序可以将包含用户信息的 SAML 断言推送到其他应用程序的 saml sso 端点。 或 其他应用程序可以通过 SAML 请求将用户定向到 asp.net 应用程序,要求其对用户进行身份验证并返回 saml 断言。

这是否说明了一些问题?

【讨论】:

我已经根据我的需要更新了我的问题..你能看一下吗。 您可以使用任何您喜欢的 IdP。 Shibboleth 是一个被广泛使用的开源 SAML IdP。它的学习曲线相当陡峭,但大多数 saml IdP 都有。 在应用程序中创建 IdP 是不是很忙。?能否请您详细说明步骤。 我不知道你为什么要创建一个既是 IdP 又是 SP 的应用程序,它可以让用户自己登录。 SAML 允许跨域/应用程序身份验证和授权。如果应用程序只需要用户登录,那么 SAML 就毫无意义。【参考方案2】:

关于SAML IDP,请看:

ADFS OpenAM Shibboleth SimpleSAMLphp

SAML 是一个复杂的协议,因此没有简单的 SAML IDP 这样的东西。

在 .NET 中,没有您可以使用的开源服务器端 SAML 堆栈。

最重要的是,您的 IFP 需要一个凭据存储来进行身份验证。你建议用什么?例如

公元 SQL 数据库 LDAP

而且此 Tableau 应用程序必须具有某种授权,例如谁可以做什么,谁有权访问,谁可以编辑等。

这由 IDP 以令牌内的 SAML 断言的形式提供。

【讨论】:

以上是关于将 SAML 与我的 mvc Web 应用程序集成的主要内容,如果未能解决你的问题,请参考以下文章

在 asp.net mvc Web 应用程序中集成第三方应用程序的 SAML SSO

ITfoxtec SAML2 能否支持多个 IdP?

将 CAS 与外部 SAML 身份提供者集成

如何将 Spring Security 与我现有的 REST Web 服务集成

Spring security SAML:自己的登录页面而不是 ADFS 登录重定向

我的数据库未与我的 MVC 应用程序一起部署