У нас есть открытый API, который мы бы хотели защитить с помощью OAuth2.OAuth2 в браузере-приложении Использование разрешения на предоставление разрешения вместо неявного
Я читал в спецификации/документации, но у меня все еще есть некоторые вопросы о неявном гранте.
Я понимаю, что неявный грант используется только для клиентских приложений in-browser- (javascript) -apps. Он менее безопасен и поэтому возможности должны быть ограничены (например, доступ только для чтения). Кроме того, не нужно выдавать токены обновления, и токен не должен быть долговечным.
Но что заставляет создателя in-browser- (js) -app использовать грант Authz вместо неявного гранта? Как создатель такого приложения есть преимущество, что я могу получить больше разрешений для создания (деструктивных) вещей и получить токен обновления, который я могу использовать для получения новых access_tokens, когда они истекают. Это последнее идеально, потому что мне не придется часто путать моих пользователей с логином.
Это, конечно, проблематично, потому что refresh_token, client_id и client_secret легко скомпрометированы таким образом.
Таким образом, вопрос в основном вращается вокруг этого: Как я могу убедиться, что только в браузере-приложения будет использоваться ограниченный неявный грант?
Перед тем как иметь возможность подключиться к нашему api, используя OAuth, клиент/разработчик должен зарегистрироваться для client_id, callback_url, client_secret. Для меня (как владельца api) возможно отменить это разрешение, если я обнаруживаю такое поведение. Но это означает, что мне придется проверять все вручную и периодически?
Есть ли лучший способ?
Спасибо, это похоже на хорошее решение. Будут делать дополнительные исследования по этому аспекту. – user3319803