Я разрабатываю приложение JavaScript, которое должно взаимодействовать с API, защищенным с помощью OAuth.Тем не менее, у пользователей этого приложения JavaScript нет учетных записей - они являются анонимными посетителями общедоступного веб-сайта.Данные в API открыты для публичного доступа, но они все еще защищены OAuth2.
Я изучил все доступные типы грантов в моем распоряжении , и ни один из них не имеет смысла в этом сценарии.
Вид «имплицитного» гранта кажется подходящим для использования в приложениях JavaScript, но он также предполагает, что посетитель сайта является владельцем ресурса, а процесс получения токена требует от них «одобрения» доступа кРесурсы.Это не сработает, потому что нет учетной записи пользователя, в которую они будут входить на сервере идентификации.
Я считаю, что у меня есть следующие варианты:
Вывести клиентИдентификатор и секрет непосредственно на странице, и JavaScript используют тип предоставления client_credentials для получения токена.Очевидно, что любой мог бы поцарапать это и использовать его вне приложения ... но в любом случае это общедоступные данные
Пусть веб-сервер получит новый токен для каждого посетителя страницы через тип предоставления client_credentials,Получив токен, он выгружает его в тело страницы, чтобы приложение JavaScript могло использовать его при выполнении запросов API.Это скрывает идентификатор клиента и секрет от JavaScript, но заставляет веб-сервер служить, казалось бы, бессмысленным промежуточным ПО для доступа к API.Кто-то может также просто соскоблить токен со страницы ... но в любом случае это общедоступные данные.
Полное удаление защиты OAuth с конечных точек (не уверен, возможно ли это даже с помощью WSO2 API Manager).Это открытые данные.
Я что-то пропускаю?