我们的SAAS系统目前使用的是标准的Microsoft.AspNet.Identity。拥有库,通过承载令牌验证用户,以及社交登录,如Facebook/Google/Twitter/等。
我们的一些用户要求我们开始允许通过ADFS进行认证。
我想知道这是怎么做到的。不幸的是,所有的博客似乎都在深入讨论细节,而没有提供一个很好的概述。此外,大多数博客谈论信任一个特定的活动目录,而我们需要信任大量的潜在客户的活动目录——并且是动态的。IE:客户使用自定义用户名/密码注册帐户,然后向我们的SAAS应用程序提供有关其AD的一些信息。之后,我们的SAAS应用程序应该信任该AD中用户的身份验证(只是验证部分)
有谁能提供相关信息吗?
TIA
同意@vibronet的观点。
另一种方法是向SaaS应用程序添加STS支持。这可以是WS-Fed或SAML。你已经用Azure标记了这个问题,所以AAD可能是一个选项。
然后您可以与任何数量的其他STS(如ADFS)联合。注意,如前所述,每个ADFS必须同意添加您的元数据。
另一种方法是使用IDaaS(例如Auth0, Okta)。这些将为您完成身份识别的繁重工作,并基本上提供STS能力。
问题有两部分,
-
如何使用ADFS实例和
-
如何处理来自不同ADFS实例的任意数量主人。
1)的答案是使用WS-Federation中间件,它可以与您已经使用的中间件一起添加。然而,中间件的初始化需要知道你想要的ADFS的元数据文档的位置;此外,ADFS管理员必须显式地配置您的应用程序,否则不会颁发令牌。因此,您建议的流程(临时用户名/密码和随后的详细信息交换)可能很棘手,但并非不可能。
About 2)没有办法连接任意数量的不同ADFS实例,除非你对中间件设置进行了大量修改。实际的答案是,处理这种情况的标准做法是依赖一个中介ADFS(或同等的),它可以代理对所有其他的信任,而你的应用只需要信任中介ADFS。