Я работаю в компании B2B SaaS, которая обслуживает компании, у которых есть разные провайдеры единого входа.Мы работаем над интеграцией единого входа в мобильную и серверную части, используя протоколы Open Id Connect и OAuth2.0.
Я просто дважды проверяю, правильно ли я понимаю поток, поэтому, пожалуйста, исправьте меня, если яЯ не прав:
Ожидаемый поток:
- Пользователь открывает мобильное приложение и вводит свою электронную почту
- Используя Tenant Discovery, мы определяем, какой IDP они используют (если есть), и перенаправляем их на страницу входа в систему с помощью CustomTab (мы используем библиотеку AppAuth на iOS и Android)
- Они вводятся в ихучетные данные, которые отправляются в их IDP с PKCE
- AppAuth получает AuthToken, который затем используется с code_verification PKCE для получения токена доступа.
- Мобильное приложение получает токен доступаи передает его на наш сервер в сообщении для входа с электронной почтой пользователя.
- Сервер использует токен доступа для обратной связи с IDP и проверки пользователя путем захвата его адреса электронной почты.
- Адрес электронной почты пользователя проверяется, затем мы генерируем наши файлы cookie для проверки подлинности и межсайтовой подделки, которые возвращаются обратно клиенту.
Это все правильно?