Решение для единой регистрации dot.net - разрабатывать, красть или покупать? - PullRequest
3 голосов
/ 17 апреля 2009

Проблема: в нашей среде есть несколько десятков одноразовых приложений, разбросанных по дюжине серверов. Некоторые приложения защищены одноразовыми логинами на основе форм / дБ. Некоторые приложения имеют разрешения, определенные в web.config. Некоторые приложения имеют установленные разрешения NTFS на уровне папок (некоторые с учетными записями пользователей домена, некоторые с локальными учетными записями внешних пользователей). Излишне говорить, что это абсолютный беспорядок.

Решение SSO определенно в порядке, но я должен его построить, использовать существующее FOSS или купить (и если да, то какие?)

Мне нужно уметь

  • аутентифицируется один раз через форму входа в систему, и, естественно, маркер входа будет передаваться с сервера на сервер
  • смешивать и сопоставлять учетные записи домена (предпочтительно) и создавать учетные записи в таблицах БД для внешних пользователей
  • имеет централизованное управление ролями / разрешениями
  • в ситуациях, когда пользователи проходят аутентификацию с помощью учетной записи AD / домена, используйте эту же учетную запись, чтобы разрешить любому приложению, которое они используют, подключаться к базе данных с помощью встроенной аутентификации
  • Портал был бы хорош

Если бы кто-то дал какое-то указание, я был бы очень признателен.

Ответы [ 3 ]

2 голосов
/ 17 апреля 2009

ISA Server 2006 может быть то, что вы ищете. (Примерно.).
Смотри: http://www.microsoft.com/forefront/edgesecurity/isaserver/en/us/default.aspx

Это может поддерживать аутентификацию на основе форм, а также единый вход для активного каталога.

Это потребует некоторой стандартизации ваших существующих систем, однако я бы предпочел этот маршрут написанию вашего собственного.

Относительно критериев:

  • ISA Server 2006 может сделать это.
  • Я не совсем уверен, что вы подразумеваете под первой частью этого, однако вы упомянули об использовании AD позже, я бы посоветовал вам объединить всю безопасность в Active Directory, включая внешних пользователей и разрешения, и использовать это в качестве основного инструмент для управления ими.
  • См. Пункт выше.
  • Это нормально, вам просто нужно соответствующим образом настроить IIS / web.config.
  • Не уверен, хотите ли вы создать портал или хотите, чтобы инструмент использовал портал в качестве пользовательского интерфейса?
2 голосов
/ 09 июня 2009

NoCarrier, я полагаю, вы используете платформу .NET?

Если это так, позвольте мне предложить вам свою роль. Напишите сборку, которая охватывает различные требования к аутентификации; выставляя их под общие абстракции. IPrincipal довольно распространен, или (возможно, занят) AuthenticablePrincipal ABC, может быть, подойдет?

Исходя из опыта, я бы порекомендовал вам попробовать перенести инфраструктуру разрешений на общую технологию. AD, вероятно, лучше, если у вас уже есть. Если так, то читайте дальше:

Для интеграции AD проверьте System.DirectoryServices.AccountManagement.PrincipalContext

ValidateCredentials было бы особенно полезно для вас здесь, я подозреваю. Из PrincipalContext вы можете создать экземпляр UserPrincipal , который включает запросы на разрешения, и я предполагаю (надеюсь) удовлетворить многие ваши требования для создания собственного портала.

1 голос
/ 17 апреля 2009

Я сначала скажу .. Не кради это !!

Я уверен, что вы получите более полные ответы, но вкратце, похоже, что в конечном итоге вам будет лучше, если вы сами разработаете это. Вы поддерживаете беспорядочный продукт таким образом, что ни один из существующих продуктов (насколько мне известно) никогда бы не захотел с ним справиться.

Таким образом, вы сможете постепенно развивать систему во что-то лучшее и более сильное. Добавить новое приложение? Разработайте это, чтобы сделать вещи правильно в этот раз. Я не вижу намного лучшего варианта / существующего продукта для достижения этой цели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...