it-roy-ru.com

Аутентификация при входе пользователя в систему с помощью API-интерфейса Restful asp.net и API защиты

Я учусь разрабатывать asp.net Web API с помощью инфраструктуры внешнего вида AngularJS. Я проводил много исследований по этому вопросу уже около недели. Я читал о oauth 2, Оуэне и других. Но сейчас запутался, что лучше.

У меня есть пара вопросов и надеюсь, что вы, ребята, можете помочь мне с этим.

1) В моем приложении - только зарегистрированный пользователь сможет получить доступ к приложению через логин и пароль. Может кто-нибудь указать мне хороший ресурс или статью о том, как создать хорошую регистрацию и аутентификацию при входе в систему с помощью API. Это достаточно безопасно, так как я буду собирать пользовательские данные и хранить их.

2) Какой тип безопасности мне нужен для защиты моего API, сначала API будет находиться за брандмауэром, а затем, когда проект будет завершен, он будет открыт для всего мира? а также, пожалуйста, укажите мне правильное направление, если это возможно.

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

Любое предложение или помощь по этому вопросу приветствуется.

Спасибо за все ваши усилия по этой теме

9
GeekOnGadgets

Вы можете использовать аутентификацию на основе токенов, используя Asp.Net Web API 2, OWIN, Asp.Net Identity и AngularJS. 

Веб-API Asp.Net теперь полностью поддерживает OWIN. Katana - это реализация Microsoft OWIN.

Веб-API Asp.Net теперь поддерживает авторизацию с использованием OAuth 2.0. OAuth стал возможен благодаря компонентам Microsoft OWIN. 

Вы путаете с терминами Identity, OWIN, OAuth ... вот их краткий обзор.

Asp.Net Identity разработан для решения проблем системой членства asp.net. Asp.Net Identity позволяет нам использовать различные хранилища (табличное хранилище, без SQL) и позволяет использовать внешние поставщики удостоверений, так как он использует OWIN.

OWIN - это разрыв жесткой связи ч/б Asp.Net и IIS. OWIN это просто спецификация. Katana - это собственная реализация Microsoft. OWIN находится в конвейере http-запросов. В конвейере OWIN есть компоненты промежуточного программного обеспечения, в которых можно упомянуть внешние механизмы входа в систему.

OAuth был создан, чтобы избавить пользователей от необходимости делиться своими паролями со сторонними приложениями. 

Примечание: Здесь Asp.Net Identity не имеет ничего общего с OWIN, OAuth и наоборот. Это три отдельных понятия. Asp.Net Identity - это реализация Microsoft. OWIN, OAuth открыты Стандартные понятия. Поскольку Microsoft внедрила OWIN, OAuth стал возможен.

Таким образом, Web API 2 использует маркер носителя OAuth вместо файла cookie проверки подлинности форм, что более правильно в мире Web API. Потому что это позволяет использовать различные устройства конечных пользователей, такие как мобильные устройства.

В вашем случае вы можете использовать шаблоны по умолчанию, предоставленные в Visual Studio 2013.
1. Создайте новый проект и выберите веб-приложение Asp.Net.
2. Выберите веб-API или шаблон SPA.
3. Изменить аутентификацию и выбрать отдельные учетные записи пользователей.
4. Нажмите ОК. 

Теперь все настроено по умолчанию для использования OWIN, Asp.Net Identity, OAuth. Поскольку мы используем аутентификацию на основе токенов, вы можете обнаружить, что в Account Controller нет способа входа в систему. 

  1. Для регистрации пользователей используйте метод Register, доступный в AccountController
  2. Для входа необходимо отправить данные в следующем формате в http://example.com/token (который можно настроить в StartUp.Auth.cs).
    grant_type = пароль и имя пользователя = Алиса и пароль = пароль123
  3. После входа в систему мы получаем токен на предъявителя, который нам нужно отправлять с заголовком авторизации при каждом запросе доступа к защищенному ресурсу.

Поскольку вы используете потрясающую внешнюю среду AngularJs, вы можете сохранить токен носителя в локальном хранилище и написать службу перехватчика http, которая позаботится об отправке токена носителя при каждом запросе.

Здесь регистрация пользователя осуществляется с помощью идентификатора Asp.Net, где в качестве аутентифицирующего пользователя используется OAuthAuthorizationServer, который по умолчанию присутствует в папке «Поставщики».

Токены на предъявителя, которые мы получаем, не относятся к конкретному клиенту, поэтому любой может их перехватить. Так что используйте их только через SSL.

Пожалуйста, перейдите по этой ссылке 

http://www.asp.net/web-api/overview/security/individual-accounts-in-web-apihttp://bitoftech.net/2014/06/09/ angularjs-токен-аутентификация-использование-asp-net-web-api-2-owin-asp-net-identity/

28
Vikram Babu Nagineni

Шаблон проекта веб-приложения Vs2013 поставляется с хорошей настройкой. Я предлагаю изучить это

0
Ibrahim ben Salah