Oauth2: как и где хранить идентификатор клиента и секрет - PullRequest
0 голосов
/ 09 октября 2019

У меня есть сервер авторизации, и мой клиент - угловое приложение. Я не стороннее приложение. Я использовал этот пакет Symfony https://github.com/trikoder/oauth2-bundle Я использую тип гранта password.

{ "grant_type":"password", "client_id":"myclientid", "username":"john@doe.com", "password":"foo", "client_secret":"3d4a940.....3c1ea38b5" } И ответ:

{ "token_type": "Bearer", "expires_in": 60, "access_token": "eyJ0eXAi....nK0Ag", "refresh_token": "def50200dfce4da3....fdc689e5" }

access_token действителен только в течение 1 минуты, после этого клиенту необходимо использовать токен обновления, чтобы иметь возможность общаться с моим API:

{ "grant_type":"refresh_token", "client_id":"myclientid", "client_secret":"3d4a940.....3c1ea38b5" "refresh_token": "def50200dfce4da3....fdc689e5" } client_id и client_secret хранятся в таблице,

Мой вопрос: безопасно / рекомендуется хранить client_id и client_storage в локальном хранилище переднего углового приложения? Потому что он в основном представляет учетные данные пользователя, и если кто-то их украдет, у них будет доступ к API. Но без них клиент не может отправить запрос в API. Я сканировал сеть, но не могу найти реального ответа, даже в документации oauth 2

Спасибо

1 Ответ

0 голосов
/ 09 октября 2019

Несколько моментов здесь: * Ваше угловое приложение должно использовать поток кода авторизации + open id connect * Рассмотреть возможность использования более стандартного сервера авторизации и большего времени жизни стандартных токенов доступа * Хранилище сеансов имеет меньше проблем при перезапусках Safari / Firefox и SPA *Использовать ли хранилище сеансов для токенов, зависит от чувствительности данных + анализа рисков. * Учтите, что время сеанса, для которого токены доступа действительны, иногда соответствует согласию пользователя.

. вокруг компромиссов между удобством использования и безопасностью: https://authguidance.com/2019/09/08/ui-token-management/

Не стесняйтесь задавать мне любые дополнительные вопросы, хотя - прошли через это путешествие и, возможно, сможете помочь

...