在.NET Core 1.0应用程序中对Active Directory进行身份验证?

29

最近发布了.NET Core 1.0,我们正在将RC1应用程序迁移到最终版本。唯一不确定的是如何集成Active Directory身份验证。

在RC1应用程序中,我们以前使用System.DirectoryServices.AccountManagement库来处理LDAP授权查询。然而,我们不能再将该库与.NET Core v1混合使用。

通常情况下,使用可用于.NET Core框架的库,什么是将Active Directory身份验证集成到我们的应用程序中的最佳方法?IdentityServer、像Auth0这样的第三方服务还是其他什么东西?


3
请查看GitHub上的这个问题。https://github.com/dotnet/corefx/issues/2089 这个也可能对您有所帮助。https://github.com/jesblit/ASPNET5-FormAuthenticationLDAP/issues/3 - Nick Acosta
就目前而言,基于组/名称的Active Directory身份验证已经可以使用,但仍然缺少其他功能-请参见http://stackoverflow.com/questions/34746645/aspnet-5-mvc6-windows-auth-roles-authorize-attribute/38274506#38274506。 - Coruscate5
4个回答

23

Novell.LDAP库已经被移植到.NET Core,你可以在NuGet中找到它。有许多示例可用,包括一个密码验证示例


3
仅供参考,这些示例也是“移植”的,并且选项很难理解-使用来自Novell的源C#文档(https://www.novell.com/documentation/developer/ldapcsharp/)直接获取此库更容易启动和运行。 - Coruscate5
不幸的是,我无法使用 Novel.LDAP,因为需要进行绑定和查询LDAP身份验证,而这项权限在我的公司受到限制... - Julio Schurt

8

“最好”是主观的,实际上现在只有一种方法,即使用联合(federation)方式,因为缺少DirectoryServices命名空间(该命名空间计划在1.1版本中提供)。

您需要安装ADFS并将其暴露在互联网上。然后,您将配置它作为OAuth2终端,并使用通用OAuth中间件将登录重定向到您的ADFS服务器。您也可以安装最新的ADFS beta版,它需要最新的Windows Server beta版,并使用OpenID Connect,但这是一项风险较高的beta测试,您可能无法接受。

或者,如果您只想要最新的MVC组件,请在.NET Desktop上运行它,在那里您可以完全访问目录服务命名空间。


我在设置ADFS和OAuth2时遇到了麻烦。是否有任何关于如何使用AspNetCore包和框架1.0.*进行此操作的文档或研讨会文件? - Yves Schelpe

3

1
似乎已经完成了28天。也许我会试一试 ;) - Nordes

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接