Что такое беспарольная аутентификация и как ее реализовать

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

Эта статья была создана в сотрудничестве с Frontegg. Спасибо за поддержку партнеров, которые делают SitePoint возможным.

Существует множество методов аутентификации, которые используются в качестве альтернативы паролям:

Одноразовый код (OTC)

Магические ссылки

Биометрический вход (отпечатки пальцев, FaceID, распознавание голоса)

Смарт-карты или физические токены

Цифровые сертификаты

Методы беспарольной аутентификации

Популярность беспарольной аутентификации

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

За последние несколько лет использование беспарольной аутентификации неуклонно росло. Auth0, провайдер аутентификации, прогнозирует, что к 2027 году аутентификация без пароля превзойдет использование паролей. Gartner прогнозирует, что к 2022 году «60% крупных и глобальных предприятий и 90% предприятий среднего размера будут внедрять беспарольные методы более чем в 50% случаев использования — по сравнению с 5% в 2018 году».

Крупные игроки в Интернете также делают все возможное, чтобы ускорить внедрение технологии. Во Всемирный день паролей в 2022 году Google, Microsoft и Apple объявили о своих планах по расширению поддержки созданного общего стандарта входа без пароля.

В июне 2022 года Apple объявила о своей новой функции «ключи доступа», которая будет использоваться для входа на веб-сайты и в приложения. По сути, это объявление означает, что Apple будет использовать Touch ID или Face ID для создания цифрового ключа для этого веб-сайта. Это устраняет необходимость когда-либо создавать и записывать пароль.

Преимущества беспарольной аутентификации

Беспарольная аутентификация обеспечивает безопасность и удобство для пользователя:

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

Сокращает повторное использование учетных данных. Повторное использование паролей в нескольких службах и учетных записях создает больший риск для пользователей и ваших систем, который нельзя предотвратить. Сообщалось, что 64% ​​людей использовали один и тот же пароль, раскрытый при одном взломе, для других учетных записей.

Больше никаких упражнений на память: вашим пользователям не нужно запоминать имена пользователей и пароли к стольким учетным записям. Иногда приходится сбрасывать свои пароли снова и снова после многих неудачных попыток входа в систему.

Быстрый вход: мы все заняты. Надежный пароль должен содержать не менее 16 символов, и его ввод занимает много времени по сравнению со сканированием отпечатка пальца или открытием волшебной ссылки.

Научитесь программировать с помощью JavaScript — бесплатно

Ограничения беспарольной аутентификации

Беспарольная аутентификация не идеальна и имеет некоторые ограничения с точки зрения безопасности и опыта.

Незнакомый пользовательский опыт: многие люди привыкли вводить или автоматически заполнять пароли. Переход на волшебную ссылку или OTC может быть шоком для пользователей.

Украденные устройства или риск замены SIM-карты. Отправка одноразовых кодов по SMS может сделать ваших пользователей уязвимыми, если их телефон украдут или если они станут жертвой мошенничества с подменой SIM-карты.

Биометрическая безопасность не идеальна: сканеры отпечатков пальцев, TouchID и FaceID успешно взламывались на протяжении многих лет.

Использование любого единственного фактора для аутентификации, пароля или нет, всегда сопряжено с определенным уровнем риска. Мы рекомендуем всегда использовать многофакторную аутентификацию (MFA), где это возможно.

Безопасна ли аутентификация без пароля?

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

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

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

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

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

Научитесь программировать с помощью JavaScript — бесплатно

Беспарольная аутентификация и многофакторная аутентификация (MFA)

Многофакторная аутентификация — это метод использования нескольких факторов аутентификации при входе в систему. Очень часто это происходит при входе в учетную запись с именем пользователя и паролем, а затем отправляется 6-значный одноразовый код (OTC) для подтверждения вашего владение устройством.

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

Как реализовать беспарольную аутентификацию на вашем сайте

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

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

Когда использовать: Сборки новых систем, стартапы и команды, желающие избежать малоценной и рискованной разработки.

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

Провайдеры: Frontegg, Okta/Auth0, FusionAuth, Trusona, AppWrite

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

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

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

Провайдеры: AWS Cognito, Google Identity Platform, Microsoft Azure AD.

Научитесь программировать с помощью JavaScript — бесплатно

Беспарольная аутентификация с помощью React — Speedrun

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

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

Создайте бесплатную учетную запись Frontegg

Создайте свою учетную запись Frontegg через их веб-сайт. Убедитесь, что вы выбрали Magic Code или Magic Link в качестве параметров без пароля во время процесса регистрации!

Параметры без пароля

Начать процесс интеграции

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

Frontegg использует среды (разработка, контроль качества, подготовка, производство) с уникальными субдоменами, ключами и URL-адресами для ваших сред аутентификации.

Теперь вы попадете на страницу с примерами кода и, что более важно, вашими `baseURL` и `'clientID`. Оставьте эту страницу открытой и перейдите к следующему шагу в своей среде IDE.

Создайте приложение React (пропустите, если у вас уже есть собственное приложение)

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

npx create-react-app-with-frontegg

cd app-with-frontegg

Установите и импортируйте Frontegg

Выполните следующую команду, чтобы установить библиотеку Frontegg React и react-router. Вы можете пропустить установку react-router, если он уже установлен в вашем приложении.

npm install @frontegg/react-router-dom

Настройте параметры входа

В src/index.jsфайле добавьте приведенный ниже код. Затем вернитесь на свою страницу Frontegg и найдите baseUrl и clientID в примерах кода.

Примечание. Эти значения всегда можно найти в разделе «Администрирование» вашей рабочей области после завершения процесса адаптации.

import React from 'react’;

import ReactDOM from 'react-dom’; // For react 17

// For react 18: import ReactDOM from 'react-dom/client’;

import App from '. /App’;

import '. /index.css’;

import { FronteggProvider } from '@frontegg/react’;

const contextOptions = {

baseUrl: '## YOUR BASE URL ##',

clientId: '## YOUR CLIENT ID ##'

};

// For react 18:

// const root = ReactDOM.createRoot (document.getElementById ('root’));

// root.render (

ReactDOM.render (

,

document.getElementById ('root’)

) ;

Перенаправить на вход

Используя хук Frontegg useAuth, вы можете определить, аутентифицирован ли пользователь или нет. Если пользователь не аутентифицирован, вы можете перенаправить пользователя для входа в систему с помощью хука useLoginWithRedirect (как показано в примере ниже).

import '. /App.css’;

// import { useEffect } from 'react’;

import { ContextHolder } from '@frontegg/rest-api’;

import {

useAuth, useLoginWithRedirect

} from «@frontegg/react»;

function App () {

const { user, isAuthenticated } = useAuth () ;

const loginWithRedirect = useLoginWithRedirect () ;

// Uncomment this to redirect to login automatically

// useEffect (() => {

// if (! isAuthenticated) {

// loginWithRedirect () ;

// }

// }, [isAuthenticated, loginWithRedirect]) ;

const logout = () => {

const baseUrl = ContextHolder.getContext ().baseUrl;

window.location.href = `${baseUrl}/oauth/logout` +

`? post_logout_redirect_uri=` +

`${window.location}`;

};

return (

 

 

{ isAuthenticated? (

 

 

 

 

<img src={user?.profilePictureUrl}

alt={user?.name}

/>

 

 

 

 

Logged in as: {user?.name}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

): (

 

 

 

 

 

 

) }

 

 

) ;

}

export default App;

Авторизоваться

Запустите npm startили откройте http: //localhost:3000 в браузере и нажмите Loginкнопку. Вы должны увидеть только что созданные страницы входа и регистрации.

Обратите внимание, здесь нет поля для пароля 🎉

Фронтегг Регистрация

Нажмите «Зарегистрироваться», перейдите в свою электронную почту и нажмите «Активировать мою учетную запись».

Фронтегг Одноразовый код

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

Вывод

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

Делитесь нашими материалами с друзьями!

 

 

Заказать разработку сайта