Пружина безопасности OAuth 2
У меня уже есть пример, полностью работающий с Spring Oauth 2 ( https://github.com/elohalili/OAuth), который я немного настроил, но я действительно не могу понять одну вещь:
в этом примере для использования служб ресурсов у меня должен быть токен с сервера OAuth, поэтому он перенаправляет пользователя на эту страницу входа, учетные данные хранятся в базе данных, но не идентификатор клиента и секрет клиента для OAuth (acme: acmesecret);
Кроме того, в клиенте передаются только идентификатор клиента и секрет клиента (acme: acmesecret), поэтому все клиенты, которые будут входить на сервер OAuth, будут регистрироваться с одинаковым идентификатором клиента и секретом, что неправильно!
У меня вопрос, как я могу динамически управлять идентификатором и секретом клиента, чтобы любой пользователь, который входит в систему, регистрировался со своими учетными данными? И как клиент уже может узнать идентификатор клиента и его секретный ключ, чтобы передать их на сервер OAuth?
1 ответ
clientID
а также clientSecret
являются учетными данными для приложения, которое хочет авторизовать токен, а не для пользователя и пароля. Я не знаю много о OAuth2 ( https://oauth.net/2/), но я знаю, что в OIDC ( http://openid.net/connect/) есть возможность динамически регистрировать новых клиентов. Клиенты - это приложения, а не пользователи, например
Персона (использует имя пользователя: пароль) -> приложение Android / приложение IOS (clientId client:clientSecret) -> сервер ресурсов