Я пытаюсь выяснить, что мне нужно сделать для реализации единого входа.
Так что в основном я строю:
а) сайт php (example.com)
б) Android-приложение (com.android.example)
Сайт и приложение будут иметь форму входа + социальные кнопки входа для аутентификации через твиттер, FB и т. Д.
Что я не понимаю — как люди реализуют форму авторизации на сайте, которая проходит аутентификацию на сервере OIDC без перенаправлений? Если я правильно понимаю — поток OIDC требует перенаправления пользователя на другой веб-сайт для входа в систему … Как этого избежать, чтобы взаимодействие с пользователем было легким для входа в систему с помощью моего личного сервера OIDC (для других социальных учетных записей, таких как Google, — мне все равно о перенаправлениях)?
Если у вас уже есть форма входа в систему и вы собираете учетные данные пользователя, вы сможете воспользоваться потоком «Учетные данные владельца ресурса», также известный как тип предоставления «пароль». Этот тип определяется спецификацией OAuth и наследуется OIDC.
Тип предоставления пароля позволяет клиенту OAuth / OIDC напрямую отправлять учетные данные пользователя на сервер OAuth / OIDC. Этот грант является хорошим пользовательским опытом для доверенных сторонних клиентов как в Интернете, так и в собственных приложениях для устройств.
Вы в основном отправляете запрос на /accessToken
конечная точка для вашего сервера OIDC, предоставляющая:
grant_type=password&client_id=ID&client_secret=<SECRET>&username=USERNAME&password=PASSWORD
Более подробная информация доступна на: https://tools.ietf.org/html/rfc6749#section-1.3.3
Других решений пока нет …