У нас есть веб-приложение, в котором мы разрешаем пользователям входить в приложение с помощью любого поставщика Open ID (например, Okta, Google, Facebook и т. Д.).Мы хотим реализовать правильную методологию / рабочий процесс Open ID Connect, чтобы пользователь вошел на сайт.
Существующая реализация рассматривает истечение срока действия токена доступа, а затем, если он близок к истечению срока действия, использует токен обновления, чтобы получить новый токен доступа для входа пользователя в систему. Я чувствую, что это неправильно.Когда пользователь входит в веб-приложение, Identity Token используется для аутентификации личности пользователя с использованием рабочего процесса кода авторизации.Токен доступа и токен обновления хранятся на стороне сервера.Периодически токен обновления используется для получения новых токенов доступа, позволяющих пользователю войти на сайт.Я считаю, что это угроза безопасности, потому что -
Представьте, если пользователь вошел в свою учетную запись OP в браузере.Он открывает Sky и напрямую вошел в MP, потому что он уже вошел в MP.Затем он в отдельной вкладке выходит из своей учетной записи OP.Он будет продолжать входить в MP в течение нескольких дней на основе этого механизма Обновить токен / токен доступа!Разве это не угроза безопасности?
Если вы чувствуете, что правильный путь для этого - использовать Управление сессиями с использованием фреймов, как это предписано здесь на OIDC - https://openid.net/specs/openid-connect-session-1_0.html
Для получения дополнительной информации,когда пользователь входит в наше WebApp, мы извлекаем данные из конечной точки UserInfo OP, чтобы создать профиль в нашем WebApp и устанавливать разрешения / роли в нашем приложении на основе данных, передаваемых из конечной точки UserInfo OP.Мы продолжаем делать это периодически.Для этой цели я чувствую, что использование токена доступа (и использование токена обновления для получения нового токена доступа) для доступа к API UserInfo является правильным, поскольку оно соответствует концепции OAuth 2.0 по защите / авторизации конечных точек API / ресурсов с использованием токенов доступа.
Я хочу знать, действительно ли это правильный способ управления входом пользователя в систему при поддержке Open ID Connect.