В настоящее время мы внедряем OAuth2 для защиты нашего нового API и не уверены, как обеспечить требуемую функциональность.Мы должны разрешить следующее с мобильного устройства:
Сразу после загрузки приложения пользователь может сделать снимок и отправить его без необходимости входа в систему.
Хотя мы хотим разрешить анонимный доступ пользователей, когда пользователю не нужно входить в систему или регистрироваться, чтобы использовать определенные функции, мы не хотим разрешать неаутентифицированный доступ к API.Обычно это выполняется с использованием потока авторизации учетных данных клиента для получения токена доступа к приложению, однако для этого необходимо знать секрет клиента.Из того, что я прочитал, мобильное устройство не считается доверенным клиентом и не должно содержать секрет клиента, и, следовательно, не должно иметь возможность самостоятельно генерировать токен доступа к приложению.
Мы пришлис несколькими вариантами для выполнения этого требования, но хотелось бы, чтобы некоторые входные данные о них:
- Вставить секрет клиента в приложение.Не кажется идеальным с точки зрения безопасности, но, может быть, нам не хватает очевидного способа обеспечить его безопасность?Мы нацелены как минимум на iOS и Android.
- Создайте токен доступа к приложению в автономном режиме и вставьте его в приложение.Все еще не очень безопасно, но, по крайней мере, секрет не раскрывается.
- Разрешить доступ к определенным функциям, используя только идентификатор клиента вместо токена доступа.Это может быть самым простым, но оно вносит несоответствие и требует нескольких способов аутентификации клиента.
- Создание и использование сопутствующего веб-приложения для генерации токенов доступа к приложению для мобильного приложения.На первый взгляд кажется победителем, но теперь вам нужно обеспечить безопасный доступ к приложению-компаньону!
Как бы вы надежно аутентифицировали доступ к API с помощью OAuth2 с мобильного устройства, не требуя от пользователя сначалавойти?