SAML 2.0配置

时间:2014-03-17 01:16:41

标签: asp.net saml

我对SAML完全不熟悉。我想为我的ASP.NET网站实现SSO。我收到了客户的SAML断言。我想知道从客户端获取它需要的所有其他要求以及我需要在最终实现的设置。

任何人都可以帮助我吗?

提前致谢。

2 个答案:

答案 0 :(得分:1)

我要做的第一件事就是避免自己编写SAML代码。那里有很多东西。 @Woloski(上图)有一些。我的公司有一些(我为制作PingFederate的公司工作)。还有一些开源的东西。我见过KentorIT authServices的良好关系。如果这是你第一次涉足SAML,那么我的赌注是ADFS太过分了。老实说,我们在Ping看到的最常见的群体就是当他们决定去#34;所有人都在"与SSO。前一个或两个连接很容易。特恩此后迅速成为管理噩梦。我之所以说要避免写自己的原因,是因为SAML存在很多细微差别,存在巨大的陷阱,以及你不需要的头痛。

作为服务提供商(SP),您需要告诉您的客户(身份提供商或IdP)什么"属性"您需要从他们那里将他们的用户正确地连接到您的应用程序中的帐户(可能是用户名?)。此外,您可以要求其他属性,以确保他们的个人资料是最新的 - 电话号码,电子邮件等。由您决定您需要什么(以及他们将给予什么)您)。显然,如果您不需要,他们不应该发送社会安全号码。

您还需要决定是否要进行SP发起的SSO(用户是否会获得应用程序内部文档的链接?),或者只是IdP发起(或者总是只是来到前门?)就足够了。单点登出怎么样?你(或他们)想要那样做吗? [就个人而言,我建议不,但这是一个不同的主题]

签署断言怎么样?你的证书还是他们的?如果你正在进行SP-init,你是否需要使用他们的证书或你的签名来签署AuthnRequest?你需要加密断言,或者只是一些属性吗?

通常,您通过"元数据交换"来完成所有这些操作。你给他们你的元数据说"这就是我们需要的"。他们导入该元数据以构建新连接,通过调用LDAP或其他用户存储库来满足应用程序所需的属性,以及进行身份验证(如果需要)。他们完成建立连接,并导出您导入的元数据,以建立您的连接(从而确保您都同意证书)。你将它挂钩到你的应用程序,然后就离开了。

我让这听起来很容易。它是,而且它不是。滚动你自己可能意味着问题。其中很多。有些是如此微小,需要专业时间(和几天)才能看到它。什么时候工作,它很有效。

HTH - 安迪

答案 1 :(得分:0)

您可以使用ADFS之类的东西来接受SAML断言。 ADFS安装在Windows 2008或2012上。

您需要询问您的客户

  • 签名证书公钥和
  • 登录网址。

然后,您将在ADFS中创建“声明提供程序信任”并输入这些详细信息。然后是代表您的申请的“依赖方信任”。最后,您必须使用WIF使用ADFS配置应用程序。这篇博客文章有更多细节:

http://thedotnethub.blogspot.com.ar/2012/12/adfs-20-by-example-part1-adfs-as-ip-sts.html

此外,您可以使用Auth0来完成相同操作而无需设置任何软件(免责声明:我在那里工作)。