Я прочитал несколько постов, в которых рассказывалось о том, как неявное предоставление представляет угрозу безопасности и почему после перенаправления в приложение следует использовать предоставление кода авторизации с запросом AJAX на сервер авторизации (без передачи client_secret на сервер аутентификации).
Теперьв 2019 году нет проблемы CORS, поскольку я могу разрешить домены приложений на сервере аутентификации.
У меня есть следующие проблемы
Если я использую неявное предоставление:
- Теперь неявное предоставление имеет проблемы с безопасностью, поскольку сервер авторизации перенаправляет на сервер приложений с токеном в URL.
- Если я установлю срок действия от 5 до 10 минут, после истечения срока действия пользователь будет перенаправлен на вход в систему, и это будет проблематично, особенно если он заполняет важную форму заявки.Что делать в этом сценарии?Обратите внимание, что в неявном разрешении нет маркера обновления для обновления новым токеном, поэтому токен обновления отсутствует.
Если я использую код авторизации: Предположим, если янажмите AJAX-запрос после перенаправления на основной сайт моего приложения и получите токен в обмен на код:
- При авторизации кода используется client_secret.И в приложении javascript, где любой может увидеть код, мы не можем использовать секрет.
- Предположим теперь, если я не использую client_secret.Есть несколько сайтов, которые используют сервер аутентификации, скажем, сайт 1, 2, 3. Теперь, если мы скажем, что не использовать секрет, любой может сделать запись узла на сервере nginx, которая будет иметь доменное имя моего сайта, но его собственный IP-адрес.В этом случае инъекция хоста является проблемой.Как с этим бороться?
Какой подход следует использовать здесь?Я более склонен к auth_code для SPA, но вопрос в том, как бороться с client_secret?
Спасибо за чтение.
Существует несколько ссылок, которые рекомендуют использовать предоставление кода авторизации вместо SPA.Несколько из нескольких ссылок:
https://www.oauth.com/oauth2-servers/single-page-apps/
https://medium.com/oauth-2/why-you-should-stop-using-the-oauth-implicit-grant-2436ced1c926