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

Posted

技术标签:

【中文标题】在 .NET Core 1.0 应用程序中针对 Active Directory 进行身份验证?【英文标题】:Authenticate against Active Directory in .NET Core 1.0 application? 【发布时间】:2016-06-28 19:10:31 【问题描述】:

随着最近发布的 .NET Core 1.0,我们正在将我们的 RC1 应用程序迁移到最终版本。我们似乎无法弄清楚的唯一部分是如何集成 Active Directory 身份验证。

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

一般来说,使用 .NET Core 框架中可用的库将 Active Directory 身份验证集成到我们的应用程序中的最佳方法是什么? IdentityServer,其他一些第三方服务,比如 Auth0 还是别的什么?

【问题讨论】:

在 github 上查看这个问题。 github.com/dotnet/corefx/issues/2089 这个也可以帮到你。 github.com/jesblit/ASPNET5-FormAuthenticationLDAP/issues/3 FWIW,基于组/名称的 Active Directory 身份验证当前有效,但仍有其他功能缺失 - 请参阅 ***.com/questions/34746645/… 【参考方案1】:

Novell.LDAP 库已将 ported 转换为 .NET Core,您可以在 NuGet 中找到它。有许多samples 可用,包括验证密码sample。

【讨论】:

仅供参考,这些样本也被“移植”了,并且选项很神秘 - 使用源 C# 文档directly from Novell 更容易启动和运行这个库 不幸的是,我不能使用 Novel.LDAP,因为绑定 e 查询 ldap 是必需的身份验证,并且此权限在我的公司中受到限制...【参考方案2】:

最好是主观的,实际上现在只有一种方法,因为缺少 DirectoryServices 命名空间(计划用于 1.1) - 联合。

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

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

【讨论】:

我在设置 ADFS 和 OAuth2 时遇到问题。是否有任何关于如何使用 AspNetCore 包和框架 1.0.* 执行此操作的文档或研讨会文件?【参考方案3】:

System.DirectoryServices 命名空间目前正在 .NET Core 中实现,工作正在进行中。 https://github.com/dotnet/corefx/issues/2089

【讨论】:

似乎在 28 天前完成。我也许会试一试;)【参考方案4】:

只想说他们刚刚发布了 Microsoft.Windows.Compatibility 的预发布版本,其中包含与 Active Directory 集成所需的 System.DirectoryServices 组件

https://www.nuget.org/packages/Microsoft.Windows.Compatibility/2.0.0-preview1-25914-04

【讨论】:

以上是关于在 .NET Core 1.0 应用程序中针对 Active Directory 进行身份验证?的主要内容,如果未能解决你的问题,请参考以下文章

.NET Core 1.0ASP.NET Core 1.0和EF Core 1.0简介

在 ASP.NET Core 6.0 中使用 Serilog

ASP.NET Core 1.0 基础与应用启动

在 asp.net core 1.0 上读取一个 excel 文件

NET Core 1.0

ASP.NET Core 1.0 中使用 Swagger 生成文档