Я пытался реализовать OAuth 2-провайдер для веб-сервиса, а затем создал собственное приложение поверх него. Также я хочу предоставить доступ к API сторонним разработчикам.
Я уже прочитал спецификацию OAuth 2 и не могу выбрать правильный поток. Я хочу также аутентифицировать приложения CLI и GUI.
Прежде всего, у нас есть два типа клиентов - публичный и конфиденциальный. Конечно, приложения с графическим интерфейсом и CLI будут общедоступными. Но в чем разница между этими двумя типами? В таком случае для чего мне нужно client_secret, если я могу получить токен доступа без него, просто изменив тип клиента?
Я попытался взглянуть на некоторые реализации API популярных сервисов, таких как GitHub. Но они используют HTTP Basic Auth. Не уверен, что это хорошая идея.
Есть ли какая-то особая разница? Повышает ли один уровень безопасности над другим?