Oauth - Какие разрешения должны быть предоставлены в токене входа по умолчанию? - PullRequest
0 голосов
/ 27 декабря 2018

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

Я читал о том, как здесь работает OAuth: https://www.oauth.com/oauth2-servers/background/

Большинство из нихимеет смысл, однако у меня есть одна проблема:

Как мне сделать так, чтобы пользователю не нужно было предоставлять доступ к моим собственным мобильным приложениям?

Другими словами, как я могу сделатьтак ли сервер автоматически предоставляет определенные разрешения моим мобильным приложениям?Я предполагаю, что часть этого заключается в создании идентификатора клиента и секрета клиента для этих приложений, как и в других, но как я могу безопасно обойти грант из этих приложений?

Я не уверен, что делаюэто правильно, потому что в моем API у меня есть конечная точка signIn, которая берет имя пользователя и пароль и возвращает токен авторизации.

Если у меня просто нет конечной точки signIn, а вместо этого просто есть валидатор токеначто передает системе OAuth, если токен недействителен?

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

1 Ответ

0 голосов
/ 27 декабря 2018

Для первого вопроса о мобильных клиентах есть OAuth2 для собственных приложений RFC , в котором обсуждается эта тема.Короче говоря, вы должны использовать код авторизации с PKCE и обновлять токены, поэтому ваши мобильные приложения должны запрашивать авторизацию только один раз.Для этого ваши мобильные приложения должны быть зарегистрированы клиентами OAuth2, а конечная точка token должна быть настроена так, чтобы не запрашивать секрет (так как вы не можете хранить секреты в мобильных приложениях).

Для второй части одинПреимущество протокола OAuth2 заключается в том, что только аутентификационный сервер получает учетные данные пользователя, а не приложения.Это усложняет компрометацию учетных данных и позволяет пользователям делегировать только определенные права (области).Поэтому было бы хорошо придерживаться некоторых основных потоков OAuth2 (код авторизации, неявный, гибридный) и не использовать свою конечную точку для аутентификации.Это сделает ваше приложение более безопасным и, возможно, даже более простым в использовании (если вы используете такие вещи, как SSO ).

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