Секрет клиента используется для идентификации приложения, которому требуется токен доступа для доступа к ресурсу от имени пользователя. Только клиенты, зарегистрированные в службе аутентификации, могут запрашивать доступ. Требуется не только аутентификация пользователя, но и клиентское приложение. В противном случае кто-то может выдать себя за клиентское приложение.
Этот тип авторизации клиента должен использоваться только конфиденциальными клиентами ( Типы клиентов OAuth2 ).
конфиденциально - клиенты способен поддерживать конфиденциальность своих учетных данных (например, клиент реализован на защищенном сервере с ограниченным доступом к учетным данным клиента) или способен обеспечивать безопасную проверку подлинности клиента с использованием других средств.
public - клиенты, неспособные поддерживать конфиденциальность их учетные данные (например, клиенты, выполняющиеся на устройстве, используемом владельцем ресурса, например, установленное собственное приложение или приложение на основе веб-браузера), и неспособные к безопасной аутентификации клиента с помощью любых других средств.
При использовании потоков с клиентами, которые не могут гарантировать конфиденциальность этого секрета (то есть неявного), личность клиента не может быть проверена. В этих случаях это можно проверить с помощью URI перенаправления. В качестве дополнительной меры следует ограничить использование refre sh токенов.
Официально больше не рекомендуется использовать неявный поток в целях безопасности, для клиентов этого типа рекомендуется Авторизация Код + PKCE расширение. См. Документ OBBA
Для авторизации пользователей в браузерном приложении лучше всего использовать
o Использовать поток кода авторизации OAuth 2.0 с Расширение PKCE
o Требовать параметр состояния OAuth 2.0
o Рекомендовать точное соответствие URI перенаправления и требовать, чтобы имя хоста URI перенаправления совпадало с именем хоста URL, с которого приложение обслуживалось
o Не возвращать токены доступа на передний канал