Мне было поручено обновить устаревший WCF и угловой проект, написанный давно фрилансером, и добавить к нему аутентификацию и авторизацию.Я совершенно новичок в проекте, и я был в ужасе, когда увидел код.
К сожалению, я не могу поделиться кодом, но могу сказать вам, что:
- Клиент-side - это приложение SPA angularjs.
- Проект довольно мал.
- Нет ORM - только запросы SQL (хранимая процедура).
- База данных - SQL Server.
- Схема базы данных «Пользователи, роли и т. Д.» Была определена фрилансером и не была построена каким-либо инструментом (например, членством в Microsoft) и без учета каких-либо обычных схем таблиц пользователей.Таблица пользователя содержит имя пользователя, адрес электронной почты, пароль и множество других столбцов данных приложения.
- Большинство столбцов таблицы базы данных зашифровываются / дешифруются сервером перед записью или чтением в / из базы данных.Он написал службу шифрования.
- Пароль был зашифрован симметричным шифрованием (и только один раз).
- Данные, отправляемые на сервер, шифруются клиентом и дешифруются сервером и стихами.,Сервер всегда получает и возвращает строки (я думаю, он не доверял HTTPS).Существует 2 шифрования - одно между клиентом и сервером, а другое между сервером и базой данных.
- Сервер всегда возвращает статус 200, даже в случае сбоя.Тип возвращаемого значения всегда должен быть объектом типа {success, resultObj} - это то, что ожидал клиент.
- Эта система работает на производстве с работающими пользователями, поэтому изменение схемы также приведет к изменению схемы на производстве.
- Сервер WCF пока только обслуживает запросы сайтов, но может понадобиться и для обслуживания других приложений в ближайшем будущем
- К счастью, бизнес-логика хорошо организована в сервисах, и в коде нет кода.Контроллеры WCF, за исключением функций вызывающих служб.
- Существует отдельный проект для службы WCF и еще один для приложения angularjs
- Нет авторизации или аутентификации вообще !!!Вход в систему ничего не делает (без cookie, без сеанса, без токена - нет ничего).
Требования:
- Мне нужно внедрить минимум аутентификации иавторизация.
- Мне нужно как можно больше обновить технологию сервера, чтобы помочь нам в ближайшем будущем создать новые функции на ее основе.
- Время - это суть
Я знаю, что это много для обработки, и я готов поделиться всеми необходимыми данными (кроме кода).Я много читал о Asp.Net Identity и Identity Server и Web API Security и MVC Security, но я действительно не знаю, куда идти.
Вопросы:
- Яподумывает о том, чтобы убить проект WCF Service и открыть новый проект, куда я перенесу всю свою бизнес-логику.Я не уверен, нужно ли мне создавать приложение MVC или веб-API.Мой клиент - приложение angularjs spa.Если мне не нужны бритвенные виды, следует ли мне использовать веб-API?
- Могу ли я реализовать Identity Server в базе данных с нестандартной схемой без структуры сущностей?Рекомендовано ли это?
- Я понял, что Identity Server не используется для аутентификации и авторизации запроса, если да, что я должен использовать поверх него?
Если у вас есть какие-либомысли, конкретные статьи или любые наводящие вопросы, я действительно буду очень признателен за помощь.