Не подвергайте себя опасности — создайте свою безопасность с помощью Bedrock

Авторы: Энтони Вальдес, Эрик Хаген, Джон Хауэлл и Джулиан Канг

Bedrock — это основанная на стратегии библиотека аутентификации, созданная на TypeScript для разработчиков, позволяющая импортировать простое в использовании ПО промежуточного слоя. Разработанный, чтобы стать основой вашего пользовательского опыта входа, он может похвастаться набором поставщиков OAuth и локальной стратегией аутентификации, которая обеспечивает многофакторную проверку подлинности с помощью текстовых SMS-сообщений, электронной почты и приложений TOTP.

Не подвергайте себя опасности — создайте свою безопасность с помощью Bedrock

Дено? ОАут? МИД? ТОТП? Что?

Если что-то в приведенном выше описании покажется вам незнакомым, мы объясним вам, в противном случае не стесняйтесь сразу переходить к разделу «Что такое Bedrock?» раздел.

Дено

Было бы довольно сложно описать что и почему Deno, не упомянув Node (давай, попробуй). Райан Даль, как известно, создал Node.js, популярную среду выполнения для JavaScript. Спустя годы он выступил с речью на JSConf EU, в которой подробно рассказал о своих сожалениях и ошибках, связанных с разработкой Node. Созданный с учетом этих ошибок, он объявил Deno. Современная среда выполнения для JavaScript и TypeScript, которая поставляется в виде одного исполняемого файла и большой встроенной библиотеки. По умолчанию он безопасен с ограничениями доступа к сети и файлам для чтения/записи, если это явно не разрешено во время выполнения.

OAuth

OAuth — это стандартный отраслевой протокол аутентификации и авторизации, который позволяет пользователям входить в учетную запись через различных поставщиков, таких как Google, Twitter, LinkedIn и т. д. Кроме того, вы можете назначить разрешения для получения определенных данных учетной записи, которые будут использоваться вашим приложением, подписав через этих поставщиков OAuth.

МИД

Многофакторная аутентификация (MFA) — это то, что испытал почти каждый, кто живет в 21 веке. Всякий раз, когда вы пытаетесь войти на безопасный банковский веб-сайт, учетную запись электронной почты или других поставщиков безопасных услуг, вы, вероятно, используете MFA. Процесс, лежащий в основе MFA, обеспечивает более высокий уровень безопасности для вас и ваших данных, поскольку вы предоставляете две из трех вещей: что-то, что вы знаете, что-то, что у вас имеется, и что-то, что вы есть. Что-то, что вы знаете, – это что-то вроде PIN-кода или пароля, что-то, что у вас есть, может быть телефоном или компьютером, а что-то, чем вы являетесь, может быть биометрический идентификатор, такой как распознавание лица или отпечаток пальца.

ТОТП

Одноразовые пароли на основе времени (TOTP) — это распространенная форма MFA. Он использует текущее время unix в дополнение к секрету конкретной учетной записи в качестве источника уникальности для генерации кода, который пользователи получат для подтверждения своей личности и аутентификации.

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

Отлично! Все это имеет смысл… Итак, какой у вас продукт?

Что такое бедрок?

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

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

Для разработчиков, которые хотят поддерживать локализованную проверку, Bedrock предлагает встроенные варианты проверки TOTP, электронной почты и SMS для MFA. Как только пользователь входит в систему со своим адресом электронной почты и паролем, разработчики могут выбрать, чтобы пользователь прошел второй этап проверки, чтобы предотвратить доступ к скомпрометированным учетным записям. С TOTP пользователь будет использовать сторонний генератор токенов (например, Google Authenticator), который предоставляет временной код, привязанный к секрету учетной записи, доступный только пользователю. Электронная почта и SMS работают аналогично: на адрес электронной почты или телефон, указанный в учетной записи, будет отправлен код, который пользователь затем может использовать для завершения процесса входа в систему. При использовании MFA риск того, что злоумышленники смогут проникнуть в скомпрометированную учетную запись, невелик, а Bedrock специально разработан для предотвращения раскрытия конфиденциальной информации.

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

Зачем вы это сделали?

Когда мы начали работать в пространстве Deno, мы обнаружили, что, хотя в экосистеме Deno есть несколько библиотек, которые обеспечивают частичную аутентификацию или авторизацию через OAuth или MFA, отсутствовала всеобъемлющая библиотека аутентификации для внедрить несколько стратегий проверки. Будучи инновационными и смелыми разработчиками, мы увидели пространство, в котором мы могли бы создать инструмент, который улучшит процесс разработки и обеспечит безопасность как для баз данных, так и для пользователей.

Для кого вы это сделали?

Bedrock был создан для сообщества Deno! Он был разработан по лицензии MIT и имеет открытый исходный код. Любой может использовать его! Мы любим Deno и хотим, чтобы сообщество росло в использовании. Мы считаем, что перенос продукта, ориентированного на безопасность, в среду выполнения, ориентированную на безопасность, поможет облегчить жизнь разработчикам.

Хорошо, все понятно… Зачем мне это использовать? Это безопасно?

Импорт библиотеки Bedrock в ваше приложение обеспечит дополнительные уровни безопасности для вас и ваших пользователей за счет реализации MFA и OAuth 2.0. Обе эти практики являются отраслевыми стандартами, с помощью которых вы можете обеспечить безопасный доступ к пользователям, а впоследствии и к их данным. Библиотека Bedrock предоставляет интуитивно понятные функции промежуточного программного обеспечения, чтобы использовать ее функциональные возможности, которые можно легко реализовать при разработке нового приложения или при внедрении стратегий в существующую кодовую базу.

Как упоминалось выше, алгоритм TOTP, используемый в процедуре MFA Bedrock, соответствует стандарту, изложенному в IETF RFC 6238, стандарту, которому также следуют такие компании, как Google, Microsoft и другие. Кроме того, OAuth2.0 — это отраслевой стандарт, предоставляющий услуги аутентификации и авторизации через доверенных поставщиков. В результате эта библиотека — отличный способ безопасно расширить ваше существующее приложение или даже тот проект, который вы всегда хотели создать, обеспечивая при этом безопасные процессы входа в систему для ваших пользователей.

Подождите! Я разработчик, который использует Deno… Как мне это использовать?

Импортируем нашу библиотеку:

Определите свои параметры:

Подключите наше промежуточное ПО к вашим маршрутам:

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

Сядьте поудобнее и расслабьтесь!

Сводка

В этой статье мы рассмотрели, что такое Deno, основы аутентификации и познакомили вас с нашим продуктом Bedrock. Мы объяснили преимущества реализации библиотеки аутентификации, такой как Bedrock, и как использовать код в вашем собственном приложении. Надеюсь, вы лучше представляете себе Bedrock как простую в использовании библиотеку аутентификации и понимаете, почему она обеспечивает дополнительную безопасность не только для вашего приложения, но и для ваших пользователей. Если какая-либо из этих концепций все еще неясна или вы хотите более подробно поговорить о том, как работает Bedrock, пожалуйста, свяжитесь с нами. Мы любим получать обратную связь! Вы можете сделать это индивидуально по ссылкам ниже или связаться с нами коллективно по адресу [email protected].

Команда Bedrock

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

Bedrock был разработан Энтони Вальдесом, Эриком Хагеном, Джоном Хауэллом и Джулианом Кангом в рамках технологического ускорителя OS Labs. Bedrock имеет открытый исходный код и может использоваться бесплатно по лицензии MIT.

Вы можете проверить наш репозиторий Github здесь:



Вы можете проверить нашу стартовую страницу здесь:



Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter и LinkedIn. Посетите наш Community Discord и присоединитесь к нашему Коллективу талантов.