【发布时间】:2016-09-09 23:38:59
【问题描述】:
我想在我的公司实施通用认证和授权机制。它应该能够使用 Active Directory 帐户、自定义用户数据库、外部 OAuth 令牌并准备添加其他方法(可能类似于“安全 VPN”帐户)。
我已经阅读了很多关于安全令牌服务的内容,它完全符合我的需求,但我发现我应该只将自定义 STS 用于开发/测试目的,而在生产环境中我应该使用 Active Directory 之类的东西联合服务 2.0 或 Microsoft Azure 访问控制服务,但 AD FS 2.0 无法授权 AD 中不存在的用户,对吗?他们坚持使用他们的解决方案的原因是什么?
在 Visual Studio 2015 中,我什至找不到像“身份和访问工具”这样的工具,一切都隐藏在框架中。所以我想知道基于 System.IdentityModel.SecurityTokenService 创建自定义 STS 是个好主意还是我不了解实际标准?如果是这样,是否有人有一些指向教程/示例的链接,如何在 WIF 4.5 中进行操作?
【问题讨论】:
-
对于您所要求的意见,我无法帮助您,但您可能会在泰泽尔的网站上找到一些帮助:bitoftech.net
-
我刚刚问了同样的问题,令我惊讶的是,这个问题没有一个简单的解决方案,当内部用户在 AD 中并且外部用户存储在数据库中时,用户在域内进行身份验证和在域外进行用户身份验证。我被同样的问题困住了!所有这些出色的 MS 产品都无法解决这种情况。一个版本的 VS 到处都是 STS,而 VS 2013、2015 什么都没有,恕我直言,我认为 MS 无法下定决心。
-
自从我问了这个问题一个月后,我的结论是:在我看来,VS STS 类已被弃用。有一个名为 IdentityServer v3 的开源 STS 项目。在版本 2 中,他们使用的是标准 VS STS 类并在此基础上构建了不错的 STS。但是 v3 使用 OAuth 2.0 标准提供了更多的灵活性,并支持 OpenId 连接。在 IS3 中,您可以在任何地方对任何东西进行身份验证(在 WCF 中进行身份验证或使用 Windows 身份验证有点棘手但可能)。所以我推荐使用它。如果您没有经验或没有很多时间,就不可能创建更好的解决方案。
标签: c# .net visual-studio-2015 wif sts-securitytokenservice