- Почему нужно пользоваться функцией «Войти с Apple» для авторизации в приложениях и на сайтах
- Для чего компаниям данные пользователей
- Как работает функция «Вход с Apple»
- Как изменять настройки функции «Войти с Apple» для конкретного приложения и веб-сайта на iPhone или iPad
- Как изменить e-mail, используемый для переадресации
- Какая польза от использования функции «Войти с Apple»
- Необходимые условия для работы функции «Вход с Apple»
- Заключение
- Внедряем Sign in with Apple — систему авторизации от Apple
- Настраиваем Apple Developer Account
- Добавляем кнопку Sign In with Apple в iOS-приложение
- Реализуем Sign in with Apple для web и Android
- Получение данных
Почему нужно пользоваться функцией «Войти с Apple» для авторизации в приложениях и на сайтах
Пока одни пользователи и компании тщательно оберегают свои персональные данные, другие собирают ее по крупицам разными способами с целью продажи. Личная информация нужна не только злоумышленникам-одиночкам с целью кражи средств – крупные компании ведут куда более серьезную игру.
Для чего компаниям данные пользователей
Изучение поведения пользователей Интернета банально позволяет улучшить продажи, предлагая именно то, в чем человек и нуждается в данный момент. Не секрет, что сервисы, которыми мы каждый день пользуемся, знают о нас все: пол, возраст, интересы, историю передвижений, покупок, номер телефона и емейл, не говоря уже об имени и фамилии.
Большинство из нас уже и не помнит, где мы засветили свой адрес и номер телефона, а эта информация вполне может со временем оказаться у заинтересованного лица. Личная безопасность – не пустой звук. Есть несколько проверенных способов ее защиты – вторичные емейлы-псевдонимы и телефонные номера для небезопасных регистраций. Да и борьбе за свое «инкогнито» в Сети придется столкнуться с постоянно растущим уровнем паранойи. Помочь с этим вопросом попыталась компания Apple, которая с выходом iOS 13, iPad OS 13 и macOS Catalina 10.15, представила любопытную функцию «Вход с Apple» (Продолжить с Apple, Sign in with Apple).
Как работает функция «Вход с Apple»
Чаще всего для доступа к самым интересным функциям сайта или ресурса пользователю предлагается там зарегистрироваться. Обычно вход осуществляется путем создания нового аккаунта посредством ввода e-mail (номера телефона) или с использованием стандартного набора вариантов из учетных записей популярных социальных сетей. Возможность быстрого входа при помощи имеющейся учетки в другом сервисе прельщает, вот только точно ли вы готовы предоставить неизвестным доступ к своим профилям в Facebook или ВКонтакте? А полная регистрация занимает пусть и небольшое, но время, к тому же чаще всего еще и придется подтверждать свой емейл или телефон. Эти шаги некоторых пользователей даже отпугивают.
Совсем недавно при работе с устройствами Apple в приложениях появилась черная кнопка «Вход с Apple» или Sign in with Apple (на нелокализованных приложениях).
Правда, сама по себе эта опция не возникает – тут уж должны подсуетиться разработчики.
Итак, при выборе «Вход с Apple» в качестве подтверждения личности для входа в сервис (приложение, сайт), Apple передает только необходимую информацию: имя и электронный ящик. Но у пользователя появляется возможность сохранить свое «инкогнито» – передать можно как реальный электронный ящик, так и созданный случайным образом виртуальный, связанный с вашим адресом.
Туда Apple и будет отправлять все письма со стороны сервиса. Остается лишь пройти идентификацию по лицу или отпечатку пальцев, но тут уже все зависит от самого устройства. Действия кажутся простыми и действительно безопасными.
Как изменять настройки функции «Войти с Apple» для конкретного приложения и веб-сайта на iPhone или iPad
Настройка поведения функции «Войти с Apple» осуществляется в Настройках iOS. После того, как будет осуществлен хотя бы один вход посредством функции «Войти с Apple», по пути Настройки → → Пароль и безопасность, появится раздел Вход с Apple.
Нажмите на пункт Приложения, использующие Apple ID.
Здесь будет размещен список приложений, в которые был осуществлен вход с помощью этого инструмента Apple.
Настройте поведение функции для необходимого приложения: осуществлять или нет переадресацию на реальный ящик или вообще отменить использование «Войти с Apple».
Как изменить e-mail, используемый для переадресации
Если при создании учетной записи вами был выбран вариант сокрытия электронного адреса, вы можете изменить e-mail, на который приходят переадресованные электронные письма. Для этого:
Перейдите по пути «Настройки» → → «Имя, Номера телефонов, e-mail» → «Переадресация».
Выберите другой электронный адрес.
Для добавления новых адресов e-mail используйте раздел Контактные данные выше на этой же странице.
Какая польза от использования функции «Войти с Apple»
Пока вы все еще работаете в выбранной программе или сервисе, уведомления от них особенно не мешают. Письма приходят редко, да и информация в них может быть полезной (скидки, новые функции, напоминания). Со временем сервис уже перестает быть нужным нам, но при этом он все еще предлагает свои услуги, а рассылка эта становится похожей на спам. Порой адрес попадает в списки рассылки, отписаться от которых уже и невозможно.
Если используется авторизация с помощью «Войти с Apple», то такая проблема легко решается. Достаточно лишь запретить пересылку с виртуального ящика на свой основной.
Да и авторизацию приложению тоже отозвать несложно.
При совершении этого действия в Настройках попутно можно удалить и другие устаревшие уже регистрации. Интересно, что даже без устройства Apple созданной регистрацией можно будет пользоваться на других устройствах. Потеряно будет разве что удобство, так как придется вводить логин и пароль.
Разве не удобно чувствовать, что именно ты отвечаешь за сохранность своих данных? Конечно же, доступ к ним есть и у Apple, но тут уж придется довериться этой компании – если она начнет торговать информацией о своих пользователях, то ее репутации придет конец.
Для пользователя функция несет одни плюсы, а вот разработчики не особенно счастливы. Они теряют часть своего законного заработка в виде информации – пользователь остается неопознанным. Неслучайно в 2019 году в Америке некоторые розничные сети даже отказались принимать к оплате Apple Pay, так как эта платежная система мешала сбору дополнительной информации о клиентах.
Функция мотивирует пользователей регистрироваться в сервисах, не опасаясь за свою конфиденциальность. «Вход с Apple» быстро становится любимым инструментов в обеспечении безопасности своих данных. Неслучайно во многих популярных приложениях с возможностью регистрации этим способом он становится вторым по популярности после традиционного, с использованием своей электронной почты.
Объяснить это несложно – хорошая и удобная функция востребована. Да и сами разработчики вполне могут получить данные о своих пользователях в процессе длительного и полезного для всех сторон сотрудничества. Например, сервис продажи билетов все равно получит фамилию и имя покупателя в процессе оформления заказа. Сервисы доставки попросят реальный номер мобильного телефона для согласования времени. Но вот отдавать такую информацию сразу же, еще на этапе регистрации, пользователи часто не готовы. Это и приводит к росту числа входов с помощью «Вход с Apple».
Необходимые условия для работы функции «Вход с Apple»
Чтобы использовать функцию «Вход с Apple» в приложениях и веб-сайтах, необходимо:
— наличие учетной записи Apple ID с включенной двухфакторной аутентификацией (активируется по пути Настройки → → Пароль и безопасность);
— войти в iCloud в настройках iPhone, iPad или Mac.
— функция «Вход с Apple» работает на устройствах Apple с iOS 13 и более поздних версий, iPadOS 13 и более поздних версий, watchOS 6 и более поздних версий, macOS Catalina 10.15 и более поздних версий. Кроме того, функцией «Вход с Apple» можно воспользоваться и на других платформах, например Android или Windows.
Заключение
Обычному пользователю трудно пользоваться Интернетом и не оставлять при этом следы. Нас уже не удивляют рекламные предложения продукта, который мы недавно искали. Скоро информация о человеке станет еще более разнообразной. Пугаться прогресса не стоит – к тому же часто это еще и помогает. Но пользователи все чаще хотят лично принимать решение, кому позволять немного заглянуть в свою личную жизнь, а кого оградить от этого. И хочется тратить для защиты как можно меньше времени, тем более, его всегда не хватает.
Не стоит считать компанию Apple таким уж бескорыстным помощником. Она уже и так знает о своих пользователях немало, но при этом все еще стоит на страже этой информации. Сервисы же рано или поздно будут добавлять поддержку «Вход с Apple», ведь лучше получить обеспеченного (об этом свидетельствует цена устройства) пользователя, пусть даже и желающего сохранить свое инкогнито, чем остаться с информацией о пользователе, так и не сделавшем заказ или покупку.
Источник
Внедряем Sign in with Apple — систему авторизации от Apple
Этим летом на конференции WWDC 2019 Apple представила собственную систему авторизации Sign in with Apple и сделала ее обязательной для всех приложений в App Store, которые используют вход через соцсети. Исключение составляют образовательные, корпоративные, правительственные и бизнес-приложения, использующие собственную авторизацию. К Sign in with Apple Apple сделала качественную документацию, и в этой статье мы на примере ЦИАН расскажем, как внедрить ее в свой сервис.
Настраиваем Apple Developer Account
Работа по интеграции начинается с настройки аккаунта разработчика. Сначала нужно включить опцию Sign In with Apple для вашего App ID. Для этого заходим в список идентификаторов в Apple Developer Account, выбираем необходимый App ID и включаем для него опцию Sign In with Apple.
Теперь настраиваем Service ID — уникальный идентификатор web-приложения, который понадобится для обращения к Sign in with Apple API. Всего на один App ID можно создать до 5 Service ID. Для этого нажимаем кнопку создания идентификаторов, выбираем Service ID, заполняем необходимые поля и нажимаем Edit в поле Sign In With Apple. Откроется форма, где выбираем правильный Primary App ID, указываем веб-домен и перечислям URL для редиректа после успешного логина. Надо учитывать, что можно ввести только 10 Return URLs:
Для сохранения нажимаем Save, Continue и Register. Да, при любых изменениях конфигурации необходимо нажимать все три кнопки, иначе изменения не вступят в силу.
Теперь в списке Service ID выбираем созданный идентификатор и опять нажимаем Edit в поле Sign In With Apple. В открывшемся окне у поля с веб-адресом видим две новые кнопки:
Этот файл необходим, чтобы Apple верифицировала ваш ресурс. Скачиваем его и размещаем его на своем ресурсе. Сразу у нас этот финт не сработал: когда наши админы добавили файл, то по указанному url срабатывал редирект (302) на файл, лежащий в другом месте, и Apple его не верифицировал. Тогда пришлось размещать файл по прямому доступу по URL (200). После того как Apple успешно проверит файл, рядом с доменом загорится зеленая галочка:
Из раздела идентификаторов переходим в раздел Keys и создаем новый ключ. Для этого ставим галочку Sign In with Apple и нажимаем сначала Configure, чтобы проверить App ID, затем Continue:
На следующем экране обязательно скачиваем файл с ключом и сохраняем его в безопасном месте, так как после ухода с этого экрана ключ будет недоступен для скачивания. На этой же странице можно увидеть Key ID, который нам еще понадобится:
Для пользователей у Sign In with Apple есть бонус: она позволяет предоставить фейковый e-mail, на который можно писать только с доверенных адресов. В этом случае нужна дополнительная настройка. Открываем раздел More, нажимаем Configure в разделе Sign In with Apple и вписываем свой URL:
Добавляем кнопку Sign In with Apple в iOS-приложение
ЦИАН работает на трех платформах: iOS, Android, Web. Для iOS есть нативное SDK, поэтому авторизация будет выглядеть следующим образом:
Чтобы добавить в iOS-приложение Sign in with Apple, добавляем кнопку ASAuthorizationAppleIDButton и вешаем на нее обработчик нажатия:
Кроме ASAuthorizationAppleIDProvider, обратите внимание еще на ASAuthorizationPasswordProvider, который позволяет получать связки «логин-пароль» из Keychain.
Теперь мы реализуем ASAuthorizationControllerPresentationContextProviding:
Создаем делегат ASAuthorizationControllerDelegate, который сообщает об успехе или ошибке:
Полученный authorizationCode мы отправляем на сервер и ждем ответа от бэкенда об успешности авторизации в нашей системе.
Реализуем Sign in with Apple для web и Android
Внезапно, для Android и Web Apple не предоставляет SDK, поэтому в обоих случаях нужно открыть страницу авторизации от Apple и процесс будет иным:
URL для страницы авторизации выглядит следующим образом:
Рассмотрим его параметры:
- client_id — Service ID, который регистрировали выше.
- redirect_uri — URI, куда пользователь перенаправляется после успешной аутентификации через AppleID. Этот URI мы указывали выше при настройке Apple Developer.
- state — идентификатор сессии пользователя, который Apple вернет при вызове redirect_uri, чтобы мы могли проверить отправителя. Правило генерации этого параметра можете придумать самостоятельно, например, рандомную строку.
- scope — в этом параметре указывается, какая нужна информация от пользователя. Например, name, email или сразу оба, как в примере выше.
- response_type — этот параметр указывает, в каком виде нужен ответ. Он может быть code или id_token. Если выбрать id_token, то его нужно уточнить параметром response_mode, в котором можно указать query, fragment и form_post.
После успешной двухфакторной аутентификации через appleID Apple вызовет указанный redirect_uri и передаст параметры state и code:
В параметре code передается одноразовый код аутентификации пользователя, который действует в течение 5 минут. В параметре state — идентификатор сессии, отправленный при создании формы авторизации, а в параметре user — данные пользователя.
Получение данных
На всех клиентах, чтобы сохранить данные пользователя, нужно получить от Apple access_token. Для этого сначала запрашиваем authorization_code:
- в client_id указывается созданный для web-приложений ServiceID и AppID для iOS-приложения.
- code — мы получили выше после редиректа или передали с iOS-клиента
- в параметре grant_type передаем цель получения токена: авторизация (authorization_code) или продление токена (refresh_token)
- в параметре client_secret — JSON Web Tokens на основе секретного ключа, полученного при регистрации приложения.
Создать JSON Web Tokens можно на Python:
Если все прошло успешно, то в ответе придут такие параметры:
Ура, вот и access_token. Вместе с ним приходит refresh_token, которым можно обновить при необходимости access_token.
Информация о пользователе хранится в поле id_token, но его нужно декодировать:
Apple_public_key — это публичный ключ, который можно получить по ссылке.
После декодирования получаем:
Email передается только один раз, когда пользователь впервые авторизуется в вашем сервисе через Sign in with Apple. В следующий раз Apple передаст эти данные только в том случае, если пользователь самостоятельно отвяжет ваше приложение. Этим авторизация от Apple отличается от других сервисов, где данные можно получить через API, и мы не нашли информацию о том, что они планируют реализовать что-то подобное.
В этом ответе нам нужны параметры sub, который передается каждый раз, и email, поэтому мы сохраняем их у себя в системе и сообщаем клиенту о успешной авторизации. PROFIT.
Источник