ASP.NET Boilerplate Аутентификация через LDAP через SSL (LDAPS) - PullRequest
1 голос
/ 22 мая 2019

Я не могу подтвердить, поддерживает ли ASP.NET Boilerplate аутентификацию с использованием протокола LDAP Active Directory через Active Directory.Документация гласит, что протокол LDAP поддерживается, но в нем не упоминается механизм удаленной аутентификации с использованием LDAPS или аналогичных процедур.

Я предполагаю, что ASP.NET Boilerplate использует пространство имен System.DirectoryServices и его компоненты под капотом для обработки аутентификации LDAP, и если да, то было бы лучше попытаться изменить код Boilerplate для поддержки LDAPS, выполнив нечто подобное это или я должен разделить реализацию LDAPS на пользовательский класс и вообще не использовать LDAP в Boilerplate?

1 Ответ

1 голос
/ 23 мая 2019

В частности, Abp Zero 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 Zero Ldap все равно будет рекомендован длявы хорошо интегрированы с потоком входа пользователя в систему Abp Zero.

Если вы все еще хотите использовать LdapConnection для проверки с помощью сервера AD, вы можете создать свой собственный источник аутентификации ldap, расширив его от LdapAuthenticationSource<TTenant, TUser>

...