Аутентификация ASP.NET - одна система входа в систему для нескольких приложений - PullRequest
7 голосов
/ 04 марта 2011

У нас есть сервер с, скажем, 5-10 внутренними приложениями ASP.NET (MVC), работающими в отдельных пулах приложений как отдельные веб-сайты (на разных портах и ​​/ или поддоменах). Я ничего не знаю о встроенной инфраструктуре аутентификации ASP.NET, поэтому мне было интересно, если кто-нибудь может дать мне быстрый указатель в правильном направлении ...

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

Весь смысл в том, что я не хочу, чтобы каждое приложение имело собственный механизм входа в систему / аутентификации, а скорее использую более «глобальную» систему аутентификации (все на одном сервере). Я не ищу ничего сложного (просто компания из 15-25 сотрудников, 3-5 отделов - каждый пользователь должен быть связан с отделом (ролью) на основе своего логина - и каждое приложение будет настроено, чтобы показать пользователю соответствующее данные, основанные на его роли).

Вопрос в том, как сделать так, чтобы статус аутентификации пользователя был виден во всех разных приложениях (в разных сборках и запущенных отдельно)?

Нужно ли использовать проверку подлинности с помощью форм? Или что-то в Spring.NET?

Ответы [ 2 ]

5 голосов
/ 04 марта 2011

Единая регистрация относительно легко достигается в поддомене или домене второго уровня. ASP.NET Forms Authentication - это система, основанная на тикете, в которой тикет хранится в зашифрованном виде в куки. То, что вы должны достичь, - это разрешить вашим веб-приложениям использовать этот файл cookie.

Для сценария субдомена (например, mysite.com/app1, mysite.com/app2) просто установите одинаковые клавиши encryption/decryption в настройках machinekey в файлах web.config.

Для сценария домена второго уровня (например, app1.mysite.com, app2.mysite.com), в дополнение к вышесказанному, необходимо внести некоторые изменения в код, чтобы все cookie-файлы аутентификации использовали один и тот же домен верхнего уровня. (например, mysite.com).

2 голосов
/ 04 марта 2011

Если ваша компания работает под управлением Windows, и у вас есть внутренняя настройка Active Directory (доменные службы Active Directory), вы можете настроить все свои сайты ASP.NET для использования встроенной аутентификации Windows.Это чрезвычайно легко настроить и очень распространено для сайтов интрасети.Пользователи, получающие доступ к вашим внутренним сайтам, автоматически проходят проверку подлинности с помощью идентификатора Windows, что означает отсутствие необходимости в форме имени пользователя и пароля для входа.Читайте все об этом здесь: http://www.asp.net/mvc/tutorials/authenticating-users-with-windows-authentication-cs

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