Безопасная аутентификация Android с помощью учетной записи Google

#android #security #authentication #openid

#Android #Безопасность #аутентификация #OpenID

Вопрос:

Мое приложение будет обрабатывать конфиденциальные данные (закрытые ключи) и, следовательно, должно иметь безопасный способ доступа к этим данным. Я хотел бы передать бремя аутентификации пользователя Google и попросить их определить, может ли пользователь иметь доступ к приложению или нет, на основе проверки информации о своей учетной записи Google. Я рассматривал возможность использования WebView и протокола OpenID, но, поскольку протокол больше ориентирован на Веб, я все еще рассматриваю другие варианты. Другим требованием также будет то, что пользователь ДОЛЖЕН проходить аутентификацию каждый раз, когда он хочет получить доступ к приложению, возможно, с окном в 90 секунд, если приложение приостановлено.

Является ли WebView с OpenID лучшим решением для меня или кто-нибудь может порекомендовать лучший подход?

Комментарии:

1. OpenID не очень безопасен: en.wikipedia.org/wiki/OpenID#Security_and_phishing . Также (личное примечание) Я бы не стал использовать приложение, в котором упоминались бы Google и личные ключи безопасности в одном предложении.

Ответ №1:

Я думаю, что лучший способ сделать это — использовать AccountManager. У AccountManager фактически есть пользователь и пароль от учетной записи Google пользователя, но вы не можете получить доступ к этой информации. Вы можете запросить у AccountManager токен для какой-либо учетной записи, которая есть у пользователя. Если вам нужен токен для учетной записи Google, вы должны запросить учетную запись «com.google». Когда вы запрашиваете у AccountManager токен, запускается действие, запрашивающее пользователя, хочет ли он разрешить приложению доступ к своей учетной записи.

Кроме того, вы можете запросить токен, который полезен для определенного сервиса. Если вы хотите получить доступ к информации о Blogger. Вы можете запросить разрешение «blogger». Токен, который вам вернет AccountManager, будет работать только для этой службы.

Токен истекает через некоторое время, поэтому вам придется проверить. Когда токен больше не будет работать, вам нужно будет сообщить AccountManager, что токен больше не действителен. В следующий раз, когда вы запросите токен, AccountManager предоставит вам новый.

Найдите AccountManager в Google.

http://developer.android.com/reference/android/accounts/AccountManager.html

Это работает на Android 2.1 и улучшенных версиях.

Комментарии:

1. Возможно ли сделать то же самое с помощью браузера, в котором пользователь может войти в систему, используя любой идентификатор Google, а не выбирая одну из учетных записей Google, в которую пользователь уже вошел на своем телефоне.