OpenID Connect со встроенными ресурсами
Настройка: у нас есть наш пользователь. Наша платформа аутентификации (сервер авторизации). И два разных ресурса. Код авторизации кода используется в нашей настройке.
Теперь ресурс A встраивает материал из ресурса B в свои страницы (с чем-то вроде iFrame). Теперь то, что мы хотели бы сделать, это то, что, как только пользователь авторизован для ресурса A, он будет иметь прямой доступ к встроенным ресурсам из ресурса B.
Это возможно? Если так, как?
1 ответ
Если сервер авторизации поддерживает функцию единого входа (SSO), встроенная страница может получить свои токены без необходимости ввода учетных данных. Шаги будут такими:
- Пользователь запрашивает ресурс A
- Ресурс А перенаправляет пользователя на сервер OAuth2 для получения токенов
- Сервер OAuth2 создает сеанс для пользователя (определяется cookie-файлом браузера)
- Пользователь проходит аутентификацию и перенаправляется на страницу ресурса A
- Страница ресурса A запрашивает страницу ресурса B, поэтому ресурс B переходит к точке 2, но точка 4 пропускается, поскольку сервер OAuth2 уже имеет сеанс для пользователя и больше не запрашивает аутентификацию.
Или, если вашим приложениям не нужны access_tokens, просто ID-токены, вы можете передать его из ресурса A в ресурс B (например, в качестве параметра URL). В этом случае идентификационные токены должны содержать обоих клиентов (Ресурс A и B) в своем aud
(аудитория) параметр.