Внешние логины и c # web api - PullRequest
       6

Внешние логины и c # web api

0 голосов
/ 26 января 2019

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

При использовании внешних входов в систему я следовал этим инструкциям здесь .Это все работает хорошо, если я создаю простой веб-проект API и запускаю, я получаю веб-страницу, где я могу войти в систему, аутентифицироваться, работает отлично.Но это не моя конечная цель, я создаю веб-API, а не веб-приложение.В моем случае, допустим, у меня есть приложения для iOS и Android, и мой внешний вход выполняется в самом приложении. Как передать токен в веб-API?Я хочу использовать метод [Authorize] в веб-API, чтобы убедиться, что не делается неавторизованный доступ к API-интерфейсам, и в дополнение к этому я хотел бы использовать роли.

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

Ответы [ 2 ]

0 голосов
/ 28 января 2019

Как правило, ваш веб-интерфейс будет работать как провайдер идентификации, он будет выдавать и проверять токены JWT:

http://bitoftech.net/2014/06/01/token-based-authentication-asp-net-web-api-2-owin-asp-net-identity/

Вы также можете реализовать авторизацию с помощью вашего внешнего провайдера входа. Если у вас есть SDK или собственный код в клиентском приложении, чтобы помочь выполнить аутентификацию, для части авторизации вы также можете зарегистрировать свой веб-API в том же провайдере идентификации. Например, вы используете внешний логин аутентификации Google в своем клиентском приложении, вам нужно зарегистрировать свое клиентское приложение и веб-интерфейс на странице регистрации приложения Google, затем вы можете использовать гибридный поток OpenID Connect для аутентификации пользователя и получить токен доступа для доступа в Интернет. api. Каждый провайдер идентификации предоставляет способы реализации аутентификации / авторизации с большим количеством документов.

0 голосов
/ 26 января 2019

У вас может быть конечная точка, которая разрешает анонимный доступ, получает токен и проверяет его. Затем он может отправить обратно JWT, который содержит утверждения / роли, которые вы хотите применить к конкретному пользователю. Каждый раз, когда клиент получает доступ к защищенной конечной точке, он может отправить ваш JWT в заголовке, который проверяется перед вызовом определенного метода в вашем контроллере API. Вы можете посмотреть потоки OAuth, если хотите интегрировать социальные логины. Например, Google имеет эту документацию для OAuth- https://developers.google.com/identity/sign-in/web/backend-auth

...