Привет, ребята, мы создаем приложение ASP.NET MCV 3 с нуля, работающее в Windows Azure.
Об уровне аутентификации и авторизации мы думаем использовать Сервис контроля доступа.
Я просмотрел несколько статей о ACS, в которых получил основную идею, но у меня все еще есть некоторые сомнения по этому поводу.
Насколько я понимаю, используя ACS, мы передаем процесс аутентификации на аутсорсинг одному или нескольким провайдерам идентификации (IP), в основном мы доверяем другой системе (например, Microsoft Live ID) для аутентификации наших пользователей.
Основной процесс очень прост: на этапе аутентификации мы перенаправляем (ACS делает это) пользователя на один из наших «доверенных» IP-адресов, который перенаправляет пользователя (с действительным токеном) в ACS и, в конечном итоге, в наше приложение.
Здесь возникает ряд вопросов ...
Поскольку мы не хотим, чтобы все пользователи с учетной записью Live ID имели доступ к нашему приложению, я предполагаю, что должен быть другой процесс для проверки этого пользователя и проверки его регистрации в нашем приложении.
Вопрос в том, где?
В АСУ или в нашем приложении.
У меня есть идея по этому поводу, но я не знаю, правильно ли это сделать:
На этапе регистрации система (наше веб-приложение) запрашивает у пользователя, какой IP-адрес (т. Е. Live ID, Google, Facebook и наше приложение) он хочет использовать для аутентификации в приложении.
Затем пользователь проходит процесс аутентификации в системе IP, и когда он возвращается, мы сохраняем его имя пользователя (имя пользователя IP) в нашей БД.
Поэтому в следующий раз на этапе аутентификации мы можем проверить, зарегистрирован ли этот пользователь в нашей системе.
Если приведенная выше теория верна, это означает, что в нашем приложении. нам нужно создать нашего провайдера членства для хранения имен пользователей, пришедших с IP-адресов и пользователей, которые выбрали наше приложение. глоток.
Я прав?
Какова наилучшая практика для разработки вышеуказанного процесса?
Теперь поговорим об авторизации и «ролях».
Как это работает с ACS?
Управляет ли ACS несколькими ролями на пользователя?
Опять же, насколько я понимаю, с помощью ACS вы можете создать несколько «групп правил», связанных с IP, а не с одним пользователем.
Если это правильно, как мы можем управлять ролями пользователей в нашем приложении?
Допустим, например, что у нас есть несколько ролей, и наши пользователи могут быть связаны с этими ролями, можем ли мы использовать ASC для управления им?
Итак, заключительные вопросы:
Охватывает ли сама ACS весь процесс аутентификации и авторизации?
Нужно ли нам использовать поставщика членства .net?
Какова наилучшая практика для удовлетворения наших требований?
Большое спасибо за ваш вклад.