将 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 SimpleSAMLphpSAML 是一个复杂的协议,因此没有简单的 SAML IDP 这样的东西。
在 .NET 中,没有您可以使用的开源服务器端 SAML 堆栈。
最重要的是,您的 IFP 需要一个凭据存储来进行身份验证。你建议用什么?例如
公元 SQL 数据库 LDAP而且此 Tableau 应用程序必须具有某种授权,例如谁可以做什么,谁有权访问,谁可以编辑等。
这由 IDP 以令牌内的 SAML 断言的形式提供。
【讨论】:
以上是关于将 SAML 与我的 mvc Web 应用程序集成的主要内容,如果未能解决你的问题,请参考以下文章
在 asp.net mvc Web 应用程序中集成第三方应用程序的 SAML SSO
如何将 Spring Security 与我现有的 REST Web 服务集成