C# 在Visual Studio 2015.NET 4.5中创建自定义安全令牌服务是个好主意吗?

C# 在Visual Studio 2015.NET 4.5中创建自定义安全令牌服务是个好主意吗?,c#,.net,visual-studio-2015,wif,sts-securitytokenservice,C#,.net,Visual Studio 2015,Wif,Sts Securitytokenservice,我想在我的公司实现通用的身份验证和授权机制。它应该能够使用Active Directory帐户、自定义用户数据库、外部OAuth令牌,并准备添加其他方法(可能类似于“安全VPN”帐户) 我已经读了很多关于安全令牌服务的书,它完全符合我的需要,但我发现我应该只在开发/测试时使用自定义STS,在生产环境中,我应该使用类似Active Directory Federation Services 2.0或Microsoft Azure Access Control Service的服务,但是AD FS

我想在我的公司实现通用的身份验证和授权机制。它应该能够使用Active Directory帐户、自定义用户数据库、外部OAuth令牌,并准备添加其他方法(可能类似于“安全VPN”帐户)

我已经读了很多关于安全令牌服务的书,它完全符合我的需要,但我发现我应该只在开发/测试时使用自定义STS,在生产环境中,我应该使用类似Active Directory Federation Services 2.0或Microsoft Azure Access Control Service的服务,但是AD FS 2.0不能授权广告中不存在的用户,对吗?他们坚持使用自己的解决方案的原因是什么


在VisualStudio2015中,我甚至找不到像“身份和访问工具”这样的工具,所有东西都隐藏在一个框架内。所以我想知道基于System.IdentityModel.SecurityTokenService创建自定义STS是个好主意还是我不了解实际的标准?如果是这样的话,任何人都可以链接到WIF 4.5中的教程/示例如何操作?

我找到了这篇文章,这对我很有帮助。在开始实施自己的STS之前,您应该问一些问题:

为什么不采用现有的开源框架,如IdentityServer 3()?没有必要重新发明轮子,对吗?

我无法帮助你提出你所要求的意见,但你可能会发现Taiseer的网站提供了一些帮助:我只是问了同样的问题,令我惊讶的是,这个问题没有一个简单的解决方案,当内部用户在AD中,外部用户存储在数据库中时,在域内进行身份验证的用户和在域外进行身份验证的用户。我被同样的问题困住了!所有这些伟大的微软产品都无法解决这种情况。一个版本的VS到处都是STS,而VS 2013、2015什么都没有,我不认为MS可以决定IMHO。在我问这个问题一个月后,我的结论是:我认为VS STS类不受欢迎。有一个名为IdentityServer v3的开源STS项目。在版本2中,他们使用了standrad VS STS类,并在此基础上构建了漂亮的STS。但是v3使用OAuth2.0标准提供了更大的灵活性,并且支持OpenId连接。在IS3中,您可以在任何地方对任何东西进行身份验证(在WCF中进行身份验证,或者使用Windows身份验证,虽然有点棘手,但可能)。所以我建议使用它。如果您没有经验或没有很多时间,就不可能创建更好的解决方案。