在我的SAAS应用程序中验证外部ADFS用户

时间:2015-10-05 05:01:10

标签: authentication azure asp.net-identity adfs azure-active-directory

我们的SAAS系统目前正在使用标准的 Microsoft.AspNet.Identity.Owin 库通过Bearer令牌以及Facebook / Google / Twitter等社交登录来验证用户。

我们的一些用户要求我们开始允许通过ADFS进行身份验证。

我试图了解如何做到这一点。不幸的是,所有的博客似乎都没有提供关于所涉及的内容的良好概述。此外,大多数博客都谈论信任特定的Active Directory,而我们需要信任一大堆可能的客户'活动目录 - 并动态执行。 IE:客户使用自定义用户名/密码注册帐户,然后向我们的SAAS应用程序提供有关其AD的一些信息。之后,我们的SAAS应用程序应该信任该AD中用户的身份验证(只是身份验证部分)

任何人都可以提供有关涉及的内容的信息吗?

TIA

2 个答案:

答案 0 :(得分:1)

这个问题有两部分,

  1. 如何使用ADFS实例和

  2. 如何处理来自不同的任意数量的ADFS实例 所有者。

  3. 1)的答案是使用WS-Federation中间件,它可以与您已经使用的中间件一起添加。但是,该中间件的初始化需要了解您要定位的ADFS的元数据文档的位置;此外,ADFS管理员必须明确配置您的应用程序,否则不会发出令牌。因此,您建议的流程(临时用户名/密码和后续的详细信息交换)可能很棘手 - 但并非不可能。

    关于2)除非你非常严重地修改中间件设置,否则没有办法连接任意数量的不同ADFS实例。实际的答案是,处理该场景的标准做法是依赖一个中间ADFS(或等效的),它可以信任所有其他的ADFS,而您的应用只需要信任中间ADFS。

答案 1 :(得分:1)

同意@ vibronet的观点。

另一种方法是为您的SaaS应用程序添加STS支持。这可以是WS-Fed或SAML。您已使用Azure标记了问题,因此可以选择AAD。

然后,您可以与任意数量的其他STS(如ADFS)联合。请注意,每个ADFS必须同意添加您的元数据。

另一种方法是使用IDaaS(例如Auth0,Okta)。这些将为您提供身份繁重,并且基本上可以提供STS功能。