Назад | Перейти на главную страницу

Размещенное (с внешним брандмауэром) приложение ASP.Net для клиентского LDAP

Ситуация: я управляю размещенным приложением ASP.Net, которое использует проверку подлинности winform. Приложение имеет безопасность на основе ролей и список управления доступом к различным активам. Несколько клиентов используют одно и то же приложение. Некоторые, но не все клиенты просили приложение аутентифицировать пользователей по их LDAP. Предположительно, чтобы избавить своих пользователей от необходимости входить в систему или синхронизировать их пароль и имена учетных записей.

Вопросы: На двух уровнях мне интересно, как это можно сделать. Уровень 1 - могу ли я сделать то же самое через Интернет? Если да, то что требуется. Уровень 2 - Как мне управлять регистрацией, списком и ACL для пользователей, прошедших аутентификацию таким способом вне моего приложения?

SharePoint поддерживает этот тип проверки подлинности за счет использования настраиваемого поставщика членства и ролей. В SharePoint 2010 это называется проверкой подлинности утверждений.

Провайдеры членства и ролей несут ответственность за связь с хранилищем каталогов (будь то SQL, AD, LDAP или другое). Членство сделает тяжелую работу по аутентификации (это тот человек, кем они себя называют). Роль будет делать тяжелую работу по авторизации (к каким группам принадлежит этот пользователь).

SharePoint использует локальную базу данных, которая сопоставляет роли с ACL. Таким образом, во время выполнения SharePoint авторизует запрос пользователя, используя информацию от поставщика ролей и из своей внутренней базы данных (для доступа к ресурсу Y пользователь должен иметь роль X).

Поэтому я считаю, что вам нужно будет следовать аналогичной схеме для вашего приложения.

Помните, что вы можете столкнуться с проблемами производительности, выполняя LDAP-вызовы удаленной системы в реальном времени. Таким образом, вы, вероятно, захотите иметь какой-то способ кэширования ролей пользователей из поставщика ролей в памяти.