IdentityServer4: Могу ли я использовать PKCE с учетными данными клиента в IdentityServer? - PullRequest
0 голосов
/ 20 июня 2020

Приложение: Android Приложение (разрешить некоторый анонимный доступ, некоторый доступ с проверкой подлинности)

Auth: IdentityServer4

API: весь доступ должен быть аутентифицирован как минимум клиентом, но некоторые также по заявлениям пользователей.

У меня есть клиент publi c (приложение Android), в настоящее время использующий Authorisation_Code с PKCE при аутентификации ПОЛЬЗОВАТЕЛЯ с использованием IdentityServer4.

В моем приложении есть страницы, позволяющие анонимным пользователям перемещаться. Однако я хочу, чтобы мой API был уверен, что мое приложение publi c client Android выполняет вызовы, поэтому я хочу аутентифицировать свое клиентское приложение для API.

Поскольку я использую Authorise_Code с PKCE при аутентификации пользователь, у меня нет секрета клиента для моего приложения. Итак, могу ли я аутентифицировать своего клиента, используя учетные данные клиента (только мой идентификатор клиента) и PKCE?

Если нет, как я могу аутентифицировать своего клиента без входа пользователя в систему без client_secret?

1 Ответ

0 голосов
/ 20 июня 2020

Нет. PKCE предназначен для продления срока действия кода авторизации. Это не имеет смысла в контексте учетных данных клиента.

То, что вы пытаетесь сделать, в конечном итоге зависит от того, что клиент хранит секрет, что невозможно.

Если вас беспокоит боты, что-нибудь простое, вроде ключа в заголовке, который хранится в вашем приложении, но который не слишком заботится об обнаружении хакера-человека, будут держать почти все, а возможно, и все. Хакер все равно войдет, но для смягчения этого следует вместо этого потребовать аутентификацию (пользователя) для вызовов, которые предоставляют данные, не являющиеся publi c.

...