2015-05-29 3 views
1

я, кажется царски запутался, как-то oauth2 или новее более строгим подмножеством OpenID Connect просто не кликайте в моей голове ...oauth2 потока для аутентификации через клиентов

Мое приложение является RESTful сервис, который не имеет Веб-интерфейс.

Несколько клиентов используют его (как из веб-приложений, так и из мобильных приложений) Мой сервис должен храниться на пользовательских данных.

Теперь мы хотим, чтобы клиенты для аутентификации с помощью обычных провайдеров, которые поддерживают oauth2 (например, facebook, Google и т.д ..)

Они должны быть в состоянии управлять аутентификацией в их применении и просто дать моей службы идентичности токен, который я могу проверить, как в «Хорошо, это действительный токен пользователя, который был подписан действительным полномочием» и может использовать для связывания данных пользователей на моей стороне с ним. (и вернуться к клиентам, конечно, в более позднее время)

Как достичь этого с помощью OAUTH2? Какой поток использовать?

ответ

1

Идентификатор идентичности - это OIDC (OpenID Connect), OAuth2 - это авторизация. проверка (аутентификация) Конечный пользователь Идентификация является основной целью OIDC.

В вашем случае использования: обычно после того, как конечный пользователь, прошедший аутентификацию OP (в основном с использованием неявного потока), клиент/RP (ретранслирующая сторона) получит идентификатор идентичности, а токен доступа, идентификатор идентичности предназначен для клиента, токен доступа это токен, который будет использоваться для запроса вашего защищенного REST API.

Пример: setRequestHeader("Authorization", "Bearer " + token);

Теперь ваш REST API, вышлите полученный маркер/доступа однонаправленного (обычно в формате JWT) для ОП, если его действительным, то вы применить разрешения/фильтрацию логику.

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

Надеюсь, что ответ на ваш вопрос.

Смежные вопросы