Единый вход с использованием OAuth 2.0

Я разрабатываю API, который использует oauth2 для аутентификации пользователей. Требуется разработать систему единого входа для 3 различных веб-приложений.
Давайте возьмем этот сценарий:

  • Пользователь входит в одно из приложений (скажем, application1).
  • application1 получает токен и токен обновления. Токен обновления сохраняется в безопасном сеансе.
  • Пользователь переходит ко второму приложению, скажем, application2. Но токен обновления нельзя использовать для application2, так как он был создан для application1.

Каков наилучший способ создания токена для второго приложения без необходимости входа пользователя?

Любое предложение было бы здорово. Правильный ли я подход?
Я использую symfony2 (FriendsOfSymfony / FOSOAuthServerBundle)

1

Решение

Если ваш Сервер авторизации поддерживает сеанс единого входа, пользователям не нужно будет снова регистрироваться при выдаче токенов для application2. Конечно, пользователи должны будут дать согласие областям, которые запрашивает application2, потому что это другое приложение (или «клиент» в терминологии OAuth 2.0), которое не имеет ничего общего с application1 и нуждается в собственных токенах и разрешениях.

Если вы хотите рассматривать два приложения как одну сущность, поскольку они контролируются одной и той же сущностью и / или вам все равно, вы можете использовать их одинаково. client_id а также client_secret и зарегистрируйтесь 2 redirect_uriЭто для этого (одного) клиента.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]