通过LDAP over SSL(LDAPS)的ASP.NET Boilerplate身份验证

时间:2019-05-22 16:11:58

标签: asp.net active-directory ldap aspnetboilerplate

我无法确认ASP.NET Boilerplate是否支持使用Active Directory的LDAP over SSL协议进行身份验证。 documentation声明支持LDAP协议,但是没有提及使用LDAPS或类似过程的远程认证机制。

我假设ASP.NET Boilerplate在后台使用System.DirectoryServices名称空间及其组件来处理LDAP身份验证,如果这样,最好通过做类似的事情来尝试更改Boilerplate的代码以支持LDAPS。 this还是应该将LDAPS实现划分为自定义类,并完全避免使用Boilerplate的LDAP?

1 个答案:

答案 0 :(得分:1)

具体来说,Abp零Ldap使用PrincipalContext命名空间中的System.DirectoryServices.AccountManagement

默认情况下,它使用principalContext.ValidateCredentials()调用ContextOptions.Negotiate与AD服务器通信

请参见https://github.com/aspnetboilerplate/aspnetboilerplate/blob/14e41c9ce2d902b2661fca63f4074943e9036c5b/src/Abp.Zero.Ldap/Ldap/Authentication/LdapAuthenticationSource.cs#L98

您可以尝试覆盖ValidateCredentials()并将ContextOptiona.Negotiate | Context options.SecureSocketLayer传递给principalContext.ValidateCredentials()

查看更多https://docs.microsoft.com/en-us/dotnet/api/system.directoryservices.accountmanagement.contextoptions

仍然会建议您使用Abp零Ldap模块,因为它已与Abp零用户登录流程很好地集成了。

如果您仍然想使用LdapConnection与AD服务器进行验证,则可以通过从LdapAuthenticationSource<TTenant, TUser>扩展来创建自己的ldap身份验证源