Проблема: попытка создания единого входа между мобильным приложением. и браузера.
Что мы имеем:
У нас есть ионное мобильное приложение. с "Войти в Google" с использованием аутентификации OAuth 2.0. У нас есть несколько встроенных приложений, которые работают на OAuth2 и SAML, поэтому у нас есть SSO для GSuite, так что все приложения работают с одним логином и паролем. Теперь, когда мы нажмем кнопку "Войти с Google",
-
Открывается страница входа в систему SSO в приложении для браузера. У нас включен SSO поэтому мы установили login_hint, который помогает нам в прямом Страница входа в систему SSO.
-
Пользователь вводит пароль пользователя и пароль и перенаправляет его на redirect_uri отправляет успешную аутентификацию с параметром кода OAuth 2.
-
Redirect_uri выполняется таким образом, что когда URL-адрес запускается, он перенаправляет обратно в наше приложение для Android снова с параметром кода OAuth 2 и то мы извлекаем access_token и useremail из токена и конечные точки userinfo.
-
Основываясь на авторизации, на панели мониторинга отображаются ссылки на наши внутренние Программы. который работает с аутентификацией Google SAML 2.0 или OAuth2.
Ожидается:
Когда пользователь нажимает на любую из ссылок SAML/OAuth 2 из мобильного приложения. панель инструментов, мы открываем эту ссылку в приложении для браузера. и он должен автоматически войти в это приложение. и забираем нас на целевую страницу, поскольку у нас уже установлены сеансы Google, установленные в шаге #a.
Вещи, отклоняющиеся от ожиданий:
- Когда мы пытаемся получить доступ к приложениям SAML/OAuth, он отображает выбор учетной записи, когда в браузере Chrome есть профиль, в котором перечислены все учетные записи, синхронизированные на устройстве, но не один пользователь вошел в систему С#b. Он должен показывать эту учетную запись или напрямую войти и показать целевую страницу. Его не происходит, когда у нас нет набора хромовых профилей.
- Сессии во всех браузерах автоматически уничтожаются, когда мы это делаем, и, следовательно, снова запрашиваем учетные данные.
- закрыть вкладку браузера (иногда).
- очистить браузер от последнего лотка приложений (в большинстве случаев)
- перезагрузите устройство (всегда)
Хотелось понять, как и когда сеансы создаются и автоматически убиваются в Google Chrome на мобильных телефонах?
Есть ли там, где сохранить сеанс в целости? | Есть ли способ пропустить учетную запись, отображающую учетные записи, синхронизированные с телефоном?
Обновление
Возможность выяснить странное наблюдение: Мы сохранили SSO, чтобы на экране Google Google появился экран. С этим все работает нормально. Сеансы не убиваются даже при перезапуске браузера или телефона независимо от Android или iOS.
Итак, проблема в SSO, которую мы разработали. Не удалось определить, что должно быть установлено в XML SAML, который мы отправляем в URL-адрес Google ACS.