После прочтения книг и просмотра видео на OAuth, OID C, PKCE, JWT и др. c. Я до сих пор не знаю, как использовать все это для моего приложения (защищенный REST API).
Мой пример использования довольно прост. Я хочу, чтобы мои пользователи могли войти в систему с помощью Google, Amazon, Okta или чего-то еще, и единственная информация, которую я хочу получить от них, - это адрес электронной почты, который они использовали для входа, и ничего больше. После первого входа в систему их электронная почта будет добавлена в базу данных, и в отдельном процессе я предоставлю им некоторые разрешения (к каким ресурсам они могут получить доступ).
Итак, давайте представим стандартный поток кода авторизации и давайте перенесемся вперед к части токена доступа. URI перенаправления был вызван, мы находимся в моем клиенте (где-то мой backend / API), где я получаю токен доступа. На данный момент пользователь успешно прошел аутентификацию.
Но что теперь?
- Меня больше не волнует Google (нужен ли мне токен доступа?), Но я все еще хочу проверить, может ли пользователь использовать мой API для каждого запроса и может ли он обращаться к ресурсам API в зависимости от его разрешений.
- Как сохранить аутентификацию пользователя (только для 2-часовых периодов) и проверить его разрешения ? Повар сеанса ie, токен или что-то еще со сроком действия?
- Нужен ли мне собственный сервер авторизации для проверки, имеет ли пользователь доступ к запрашиваемому ресурсу?
- Учитывая мои требования, нужно ли мне PKCE, если к API обращаются из SPA или мобильного приложения? Разве не будет достаточным поток кода авторизации - SPA или мобильное приложение получат код авторизации, а затем вызовут конечную точку обратного вызова из API?
И более важный вопрос: я задаю правильные вопросы или я совершенно не в курсе, и это не так, как это должно работать?