Аутентификация OAuth2 в приложении посредством Google Sign-In. Непрерывный доступ к API Google. А как быть с Android девайсами и приложениями

Эти статьи предназначены для администраторов. Корпоративные пользователи могут ознакомиться со статьей Как включить двухэтапную аутентификацию .

Двухэтапная аутентификация помогает защитить аккаунты пользователей от несанкционированного доступа. Это дополнительный барьер для киберпреступников, которые пытаются украсть учетные данные пользователей, чтобы получить доступ к важным данным. Включение двухэтапной аутентификации – самое важное, что вы можете сделать для защиты своей компании.

Что такое двухэтапная аутентификация?

Если двухэтапная аутентификация включена, при входе в аккаунт пользователи вводят пароль, а потом проходят дополнительную проверку, например используют физический ключ или вводят код доступа, который получили на свое устройство. Такую аутентификацию также называют многофакторной или двухфакторной.

Нужна ли двухэтапная аутентификация компаниям небольшого размера?

Количество кибератак на малый бизнес неуклонно растет. Получив доступ к аккаунту администратора, хакер может просматривать электронную почту, документы, финансовую отчетность и другую информацию, принадлежащую компании. Он может украсть или подобрать пароль, но не способен создать электронный ключ или воспроизвести код доступа, который есть только у вас.

Способы двухэтапной аутентификации

Электронные ключи

Это самый надежный способ двухэтапной аутентификации, обеспечивающий в том числе защиту от фишинга. Пользователи, как правило, вставляют электронный ключ в USB-порт компьютера. При появлении соответствующего запроса пользователю нужно просто коснуться ключа.

Чтобы использовать электронный ключ на мобильном устройстве Android, оно должно быть оснащено NFC-модулем. Также для устройств Android есть USB-ключи и ключи, поддерживающие технологию Bluetooth® с низким энергопотреблением (BLE). Пользователям мобильных устройств Apple® требуется электронный ключ с поддержкой Bluetooth.

Уведомление от Google

Пользователь может настроить мобильное устройство Android или Apple на получение уведомления от Google. В этом случае при попытке войти в аккаунт Google на компьютере он увидит уведомление "Пытаетесь войти в аккаунт?" на своем мобильном устройстве. Для подтверждения достаточно нажать на уведомление.

Google Authenticator

Приложение Google Authenticator генерирует одноразовые коды для двухэтапной аутентификации и предназначено для мобильных устройств Android и Apple. Пользователь создает код подтверждения на своем мобильном устройстве, а затем вводит его на компьютере. Код можно использовать для входа в аккаунт на ПК, ноутбуке и даже на самом мобильном устройстве.

Резервные коды

Если мобильного устройства нет под рукой или пользователь находится в зоне повышенной безопасности, куда мобильные устройства брать нельзя, для прохождения двухэтапной аутентификации можно воспользоваться резервным кодом. Создать коды и распечатать их можно заранее.

SMS или телефонный звонок

Google отправляет код для двухэтапной аутентификации на мобильное устройство при помощи SMS или телефонного звонка.

Способы принудительного применения двухэтапной аутентификации

Двухэтапную аутентификацию можно сделать необязательной и обязательной.

  • Необязательная: вы рекомендуете пользователям включить двухэтапную аутентификацию, но окончательное решение остается за ними.
  • Обязательная: вы принудительно включаете двухэтапную аутентификацию, но разрешаете пользователям выбрать ее способ.
  • Обязательная с электронными ключами: вы принудительно включаете двухэтапную аутентификацию с использованием электронных ключей.

Сделайте двухэтапную аутентификацию обязательной для администраторов и важных пользователей

Двухэтапная аутентификация должна быть обязательно включена в аккаунте администратора и у пользователей, которые работают с самой важной информацией.

  • Аккаунт администратора обладает наибольшими возможностями. Его владелец может удалять пользователей, сбрасывать пароли и получать доступ ко всем данным.
  • Пользователи, работающие с данными деликатного характера, например с финансовыми записями и сведениями о сотрудниках, также должны включить двухэтапную аутентификацию.

То, что давно используется в платежных системах и онлайнбанкингах для управления счетами, где необходим максимальный уровень безопасности, наконец появляется и в обычных онлайнсервисах. С недавнего времени Google предоставляет возможность использовать двухступенчатый способ авторизации.

Дождались! Одно из недавних и самых заметных нововведений Google-всяких сервисов - новая двухступенчатая авторизация. По сути, она добавляет новый слой защиты для твоего аккаунта Google, требуя во время входа в систему не только знать привычные логин и пароль, но еще иметь доступ к твоему телефону. Это значит, что если кто-то украдет или подберет пароль, то обломается во время авторизации из-за отсутствия специального кода, который можно получить только с помощью твоего телефона.

Поэтому, если ты используешь Gmail в качестве своего основного почтового ящика (а именно так и делает большинство из команды «Хакера»), то мы настоятельно советуем подключить эту новую опцию.

Двухступенчатая авторизация - что это?

Пароль - это единственное, что отделяет данные в твоем почтовом ящике от злоумышленника. Каким бы сложным ни был пароль, пускай даже сгенерированный случайным образом, он легко может оказаться в чужих руках и беспроблемно быть использован для входа в систему. Двухступенчатая авторизация - тот самый подход, который делает вход в систему намного более защищенным.

В этом случае одного только пароля недостаточно. Для входа требуется два независимых элемента:

  • собственно, пароль;
  • одноразовый код, который нельзя использовать повторно.

Этот принцип давно взят на вооружение для проведения финансовых транзакций через онлайн-банкинг, где нужна максимальная безопасность. Правда, одноразовые коды (так называемые TAN’ы) выдаются в отделении банка на специальной карточке. В случае же двухступенчатой авторизации Google, код выдается пользователю через телефон. Есть три способа получить одноразовый пасс:

  • через специальное мобильное приложение Google Authenticator, которое сейчас доступно для устройств Android, iPhone и Blackberry;
  • в бесплатном SMS-сообщении, которое при запросе отправит Google;
  • через голосового робота (для пользователей с городским телефоном, где нет SMS).

Самое главное, что нужно понять: одного логина и пароля для входа в систему в случае двухступенчатой авторизации недостаточно. Для каждой авторизации будет необходим одноразовый код. И здесь надо иметь в виду, что если под рукой не окажется телефона (и, соответственно, возможности запросить код), то выполнить вход в систему будет затруднительно. Единственный выход из этого положения - набор специальных запасных ключей, который Google предлагает распечатать и положить в кошелек. Других вариантов нет!

Как включить?

Кнопка для включения двухступенчатой авторизации находится в настройках твоего аккаунта Google (google.com/accounts). В группе настроек «Personal Settings» и подразделе «Security» есть ссылка «Using 2-step verification», которая переадресует тебя на мастера по настройке двухступенчатой авторизации. Процесс начинается с выбора телефона.

Если у тебя одно из устройств, на которое можно установить программу Google Authenticator (оно доступно для iPhone, Android и Blackberry), то мастер попросит установить его на телефон.

Позже его нужно будет настроить, прописав в мобильном приложении параметры своей учетной записи Google, и ввести secret key с экрана монитора. Все настройки программа сделает автоматически, если ты сосканируешь с экрана сгенерированный мастером QR-код. Пока Google разрабатывает версии Google Authenticator для других платформ, получать одноразовые коды можно на любой телефон с помощью SMS-сообщений. Настроить такую доставку одноразовых кодов необходимо в любом случае.

Для этого на телефон придет специальный пароль, который нужно будет ввести в поле для подтверждения номера телефона. Помимо этого мастер предложит создать запасные (так называемые backup) коды на крайний случай, когда доступа к паролям не будет. Google сгенерирует что-то вроде визитки, которую можно распечатать и положить к себе в кошелек. Тут надо понимать, что даже если «шпаргалка» потеряется и попадет к кому-то в руки, он ничего не сможет с ней сделать, не зная логина и пароля для доступа к аккаунту. Никакого риска нет. Рекомендую сразу настроить все способы получения одноразовых паролей: установить и настроить мобильное приложение (если это возможно), прописать номер мобильного телефона для приема SMS и распечатать запасные коды (к моменту сдачи материала у меня возникла реальная ситуация воспользоваться ими).

Как использовать?

Итак, как теперь будет выглядеть процесс входа в систему? По сути, все то же самое, за исключением одного пункта.

  1. Ты заходишь на страницу с формой для авторизации в сервисах Google (например, Gmail).
  2. Вводишь логин и пароль, как это делал ранее.
  3. И вот здесь появляется новый этап. Google запрашивает код верификации. Открываем Google Authenticator и вводим отображающийся там код для входа в систему. Точно так же этот код можно получить по SMS или взять из распечатанной «шпаргалки»
  4. Опция «Remember verification for this computer for 30 days» позволяет вводить код авторизации один раз в 30 дней.
  5. Все, мы внутри и пользуемся сервисами Google, как и раньше.

Как видишь, процесс входа в систему практически не изменился. Внимательный читатель, возможно, заметит: «Ну, хорошо, с веб-интерфейсом все понятно, а как указывать такие пароли в почтовом клиенте, которые забирает почту по POP3/IMAP?». И будет прав.

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

Чтобы обойти это ограничение, Google предлагает особую схему авторизации для этих приложений. Для каждого такого приложения (будь это десктопный почтовый клиент, мобильное приложение на телефоне или что-либо еще) генерируется уникальный пароль приложения (это называется Application-specific passwords). То есть мы используем прежний логин, но вместо привычного пароля используем специально сформированный для этого приложения пасс.

Заходим в настройки безопасности на страницу google.com/accounts/b/0/IssuedAuthSubTokens (либо через страницу аккаунта {Security — Authorizing applications & sites). Здесь ты увидишь список веб-приложений, которые используют авторизацию через Google с помощью технологии Oauth. А ниже находится секция «Application-specific passwords». Для создания нового пасса делаем следующее:

  1. Вводим название девайса или приложения, для которого ты хочешь сгенерировать временный пароль.
  2. Нажимаем «Generate password».
  3. Google возвращает 16-значный пароль, который ты теперь можешь указать в настройках этого конкретного устройства/приложения.
  4. Приложение вновь работает.

Такую операцию, в частности, я сделал для своего почтового клиента на мобильном телефоне, которым пользуюсь постоянно. В отличие от кода верификации, который необходимо вводить во время каждой авторизации, пароли приложения можно указать в настройках программ один раз. Но в любой момент любой из них можно аннулировать (сделать revoke) с этой же самой страницы. Именно так я, кстати, сделал для пасса, который зафиксирован на скриншоте. Руки прочь от моего аккаунта! 🙂

Известно, что сотрудники компании Google, которых на гугловском производственном сленге называют «нуглерами», могут абсолютно бесплатно пользоваться всеми благами офисного пространства, в котором они пребывают: купаться в душе, бегать в столовую за завтраками, обедами и ужинами, загружать по полной стиральную и посудомоечную машины, смотреть ТВ и т.д. То есть могут запросто жить на работе, не испытывая дискомфорта и тоски по дому.

Ну а мы, уважаемый читатель, выполняя вход в аккаунт громаднейшей интернет-системы Google, уже наслаждаемся благами, которые сотворили для нас и на радость нам эти самые «нуглеры», вольготно днюя и ночуя в производственной обители.

Из этой статьи вы узнаете, как войти в Гугл аккаунт, какие настройки есть в личном кабинете сервиса Google и как пользоваться несколькими учётными записями Гугл на одном компьютере.

Авторизация

Чтобы войти в профиль Гугл, необходимо выполнить следующие действия:

1. Откройте страницу для входа.

Если вы пользуетесь браузером Google Chrome:

  • на новой вкладке, вверху справа, щёлкните значок «группа квадратов», расположенный рядом с надписью «Картинки»;
  • в выпавшем плиточном меню выберите «Мой аккаунт».

В других браузерах: необходимо набрать в адресной строке - myaccount.google.com. А затем нажать «Enter».

2. В верхнем правом углу страницы кликните кнопку «Войти».

3. Чтобы выполнить вход, наберите в появившейся панели логин (адрес почтового ящика в формате @gmail.com). Кликните «Далее».

4. Наберите пароль от профиля Гугл. Щёлкните кнопку «Войти».

Внимание! Во избежание ошибки набора убедитесь в том, что на клавиатуре включена английская раскладка и отключен регистр «Caps Lock».

Если вы не можете зайти в свою учётную запись (постоянно появляется ошибка ввода данных), . Она поможет вам решить данную проблему.

Примечание. Таким же образом вы можете пройти авторизацию не только на странице настроек аккаунта, но и во всех дополнительных сервисах Гугла (Youtube, Google Play, Диск и др.).

Настройки профиля

Рассмотрим выполнение часто встречающихся пользовательских задач в каждом из представленных разделов.

Безопасность и вход

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

В подразделе «Вход в аккаунт Google», в блоке «Пароль и способ входа», выполняется смена символьного ключа для входа, активируется и настраивается двухэтапная аутентификация (вход через пароль и верификация через email или телефон).

В настройках «Параметры восстановления… » указываются/изменяются резервный (дополнительный) ящик электронной почты и номер мобильного. Они необходимы для организации дополнительного уровня защиты и подтверждения прав на учётную запись.

В нижней части страницы этого раздела размещена статистика посещения аккаунта (когда, откуда и с какого устройства выполнялся вход). При помощи неё оперативно отслеживается стороннее вмешательство.

В подменю «Настройки предупреждений… » включается/отключается служба оповещений на почтовый ящик и телефон в случае возникновения критических угроз безопасности.

Данный раздел отвечает за редактирование личных данных профиля и настройку доступа к ним.

Чтобы перейти на страницу своей пользовательской анкеты, щёлкните подменю данного блока - пункт «Личная информация».

Этот раздел предназначен для организации работы с сервисами Гугле.

В подразделе «Отключение сервисов… » осуществляется выборочное удаление веб-служб системы и полная деактивация аккаунта.

В «Объём Google Диска» предоставляется возможность расширить пространство удалённого хранилища данных посредством покупки дополнительных гигабайт.

Использование нескольких профилей на одном ПК

Для управления несколькими профилями Google выполните следующее:

1. Выйдете из аккаунта, в котором находитесь в данный момент:

  • кликните левой кнопкой аватарку (вверху справа);
  • в выпавшем подменю нажмите «Выйти».

2. На новой страничке, под строкой для набора пароля, клацните ссылку «Войти в другой аккаунт».

Чтобы переключаться с одного профиля на другой, после выхода из аккаунта снова зайдите в этот раздел (Войти в другой…). И выберите в списке необходимый логин.

Если вы захотите убрать сохранённый логин из списка, кликните в этой же панели опцию «Удалить».

А затем нажмите значок «крестик» напротив профиля, от которого нужно избавиться и нажмите «Готово».

Плодотворной вам работы и приятного отдыха в сервисах Google!

Аккаунт гугл позволяет пользователю интернета максимально раскрыть его возможности. Человек, использующий одноименную поисковую систему, получает практически безграничный доступ к разным продуктам компании, которая является лидером мировой сети. Поэтому очень важно знать, как можно войти в аккаунт гугл.

Как зарегистрировать аккаунт в гугл: простой способ

Есть несколько разных способов подключения к инструментарию своего профиля в системе. Рассмотрим самый простой из них.

  • Перед тем, как войти в свою учетную запись в гугл, ее нужно создать. Этот процесс достаточно простой и интуитивно понятный. Для создания аккаунта необходимо посетить страницу, перейдя по следующей ссылке: https://accounts.google.com/SignUp?hl=ru . На этой странице и начнется ваша регистрация.
  • Как только пользователь перейдет на эту страницу, перед ним откроется специальная форма. Ее нужно заполнить соответствующими данными: имя, фамилия, дата рождения, а также придумать ник-имя аккунта и указать альтернативную электронную почту для восстановления пароля. Важно обратить внимание на корректность вводимой информации, это будет играть ключевую роль в случае утери пароля или блокировке системы.
  • Процесс регистрации несложный и совершенно бесплатный, занимает всего пару минут у продвинутого юзера и требует элементарной внимательности.
  • После завершения этапа регистрации у пользователя появится возможность войти в аккаунт гугл. Причем это можно будет сделать с любого устройства пользователя, которое имеет доступ к интернету, предварительно залогинившись.

Как войти в аккаунт гугл


Как выйти в аккаунт гугл

Как только пользователь закончит работу с инструментами в аккаунте, можно будет выполнить выход из него. Делается он так же просто, как и вход.

В том же месте, где ранее была кнопка «Войти», появляется такая же клавиша, только с надписью «Выйти». Достаточно просто нажать на нее, после чего пользователь автоматически покинет аккаунт. Никакие окошки, которые могут затянуть процесс выхода, не появляются.


Недавно мне захотелось создать личный проект на андроиде, и основной вопрос был такой: как однозначно идентифицировать пользователя заставляя его делать как можно меньше телодвижений? Конечно же это аккаунт Google. Я пытался пробовать множество примеров в сети - однако API несколько раз обновилось за время своего существования, многие методы не работали, мои вопросы в Google+ по этому поводу либо были вообще никак не восприняты окружением, либо были вроде «Никогда такое не делал».
В этой статье я постараюсь как можно более просто для новичков (вроде меня) описать мой метод авторизации в Google на андроид, получения токена и проверке этого самого токена на сервере.

Небольшая подготовка

Для начала - у вас должны быть установлены Google Play Services в SDK. После их установки можно будет импортировать все необходимые библиотеки. Статья пишется с расчетом на Android Studio - он сам подсказывает, что необходимо импортировать.
У вас должно быть создано активити с кнопкой.
Чтобы было привычнее пользователю можете создать стандартную кнопку Google+ Sing-In
Выглядеть она будет вот так:

Просто добавьте в ваш Layout:

Добавляем действие на кнопку

Пишем в нашем активити:
View btn = (View) findViewById(R.id.sign_in_button); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = AccountPicker.newChooseAccountIntent(null, null, new String{"com.google"}, false, null, null, null, null); startActivityForResult(intent, 123); } });
Собственно присвоим кнопке действие - вызов интенда выбора аккаунта. Если вы работаете в Android Studio он сам вам подскажет, какие библиотеки нужно импортировать, так что это подробно тут я расписывать не буду.
startActivityForResult(intent, 123); - задает код с которым произойдет возврат. 123 это код возврата, он может быть каким угодно. Это необходимо, когда вы делаете несколько интендов, и вам надо обработать их по разному.

Необходимые области доступа

Обьявите эти переменные в классе. Это необходимые нам области доступа. Первый написано в google: «Позволяет определить аутентифицированного пользователя. Для этого при вызове API необходимо указать me вместо идентификатора пользователя Google+. » Второе разрешение нам необходимо для получения личных данных пользователя (Имя, Фамилия, адрес G+ страницы, аватар), и последнее для получения E-mail. Я посчитал это важным, ведь это вполне неизменный идентификатор для записи в бд.
private final static String G_PLUS_SCOPE = "oauth2:https://www.googleapis.com/auth/plus.me"; private final static String USERINFO_SCOPE = "https://www.googleapis.com/auth/userinfo.profile"; private final static String EMAIL_SCOPE = "https://www.googleapis.com/auth/userinfo.email"; private final static String SCOPES = G_PLUS_SCOPE + " " + USERINFO_SCOPE + " " + EMAIL_SCOPE;

Регистрация нашего приложения.

Изначально забыл этот пункт - исправляюсь.
Нам необходимо зайти на code.google.com/apis/console создать там проект, зайти в Credentials и создать новый Client ID для OAuth выбрав пункт Installed Application -> Android. Там нам необходимо ввести название нашего пакета и SHA1 сумму нашего ключа.
С этим у меня на самом деле было много проблем решил достаточно костыльным способом.
Нашел debug.keystore в %USERPROFILE%\.android\debug.keystore поместил в папку с проектом и прописал в build.grandle:

SigningConfigs { debug { storeFile file("debug.keystore") } myConfig { storeFile file("debug.keystore") storePassword "android" keyAlias "androiddebugkey" keyPassword "android" } }
После чего нам нужно выполнить команду:
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore -v -list
Сам keytool можно найти в SDK. Из вывода копируем SHA1 в нужное поле.
Как я понимаю метод временный, и для нормальной работы надо создать нормальный ключ. Но для тестирования этого достаточно.

Код получения токена

protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) { if (requestCode == 123 && resultCode == RESULT_OK) { final String accountName = data.getStringExtra(AccountManager.KEY_ACCOUNT_NAME); AsyncTask getToken = new AsyncTask() { @Override protected String doInBackground(Void... params) { try { String token = GoogleAuthUtil.getToken(AcrivityName.this, accountName, SCOPES); return token; } catch (UserRecoverableAuthException userAuthEx) { startActivityForResult(userAuthEx.getIntent(), 123); } catch (IOException ioEx) { Log.d(TAG, "IOException"); } catch (GoogleAuthException fatalAuthEx) { Log.d(TAG, "Fatal Authorization Exception" + fatalAuthEx.getLocalizedMessage()); } return token; } @Override protected void onPostExecute(String token) { reg(token); } }; getToken.execute(null, null, null); } }
Где 123 - ваш код, который вы указали ранее, где AcrivityName - название вашего актитивити. Грубо говоря - мы скармливаем функции получения токена необходимые разрешения и имя аккаунта. И заметьте - это все происходит в фоновом режиме, после чего полученный токен передается в написанную мною функцию reg. Она уже отправляет токен и все необходимые данные на сервер.
Так как разрабатываю недавно, с исключениями пока что беда, если есть предложение - напишите в личку или в комментарии.

Проверяем токен на сервере. (PHP)

Хочу обратить внимание, полученный нами токен имеет тип Online. И действует он лишь 10 минут. Для получения offline токена (чтобы дольше работать с ним с сервера) обратитесь к этой инструкции


Top