В oAuth2 есть 4 типа предоставления, которые предназначены для разных сценариев.
учетные данные клиента: потребитель (приложение) совершает вызовы на сервер, используя токен носителя, созданный с использованием apikey (или clientId) и только секретный. В основном используется для анонимных звонков, когда извлекается общая информация.
Учетные данные для пароля владельца ресурса (ROPC): потребитель (приложение) выполняет вызовы с использованием токена носителя, созданного с использованием apikey, secret, username и password. В основном используется, когда вы (ваш сервер авторизации) уже знаете пользователей (база данных пользователей обрабатывается в вашей собственной системе).
Код авторизации: потребитель (приложение) совершает вызовы с использованием токена на предъявителя, созданного с использованием кода авторизации. Код авторизации предоставляется третьей стороной (которая фактически имеет / управляет зарегистрированными данными пользователя) и созданным кодом авторизации, связанным с зарегистрированным пользователем. Вход в Google и Facebook для различных сайтов является типичным примером. Facebook / Google предоставляет код авторизации для этих сайтов, и они обменивают этот код на токен.
Неявное предоставление: сочетание пароля и кода авторизации. Вместо кода авторизации вы получаете токен на предъявителя со стороннего сервера авторизации.
Вопрос 1: Прав ли я, что учетные данные клиента - это правильный подход?
Я думаю, что вы можете использовать CC, если в вашем бэкэнде нет логики уровня пользователя. Если задействован пользовательский уровень, может быть ROPC - лучший выбор
Вопрос 2: Для чего используется идентификатор клиента и секрет клиента?
Идентификатор клиента и секрет клиента очень похожи на имя пользователя и пароль на уровне приложения, который используется для получения токена канала-носителя.
Вопрос3: Должен ли мой сервер скрыть процесс генерации идентификатора клиента и секрета клиента и просто дать токен доступа (или) присвоить им идентификатор клиента и секрет клиента и затем попросить сгенерировать токен доступа?
Если вы используете oAuth2, ваш потребитель должен создать токен доступа. Но, глядя на ваш вариант использования, может быть даже достаточно простого хэша userId + timestamp. ;)