
Плохо оформленная авторизация — это технический долг
1 декабря 2022 г.Как разработчики программного обеспечения, мы часто думаем об авторизации с точки зрения контроля доступа и аутентификации. Мы разрабатываем наши системы с сочетанием удобных процессов регистрации и безопасных входов в систему. Однако мы не учитываем авторизацию пользователей, когда они находятся внутри нашего приложения.
Устаревший код обычно не имеет четкого и последовательного способа авторизации пользователей. В большинстве случаев разработчики будут использовать жестко закодированные элементы управления доступом, такие как домены адресов электронной почты или идентификаторы пользователей из белого списка, чтобы определить, кто и что может делать в своем приложении. Это означает, что если вы измените схему базы данных или вам нужно открыть доступ для другой группы пользователей, вам потребуется изменить все эти жестко закодированные значения.
Жесткие средства управления доступом плохо подходят для повторного использования. В монолитном приложении можно хранить всю логику авторизации, содержащуюся в одном файле, библиотеке или модуле, но чаще всего эта логика будет распределена по разным, несвязанным частям кодовой базы. Всякий раз, когда требования меняются, разработчику приходится возвращаться назад, находить все места, где выполняются логические проверки, расшифровывать, как они были реализованы, а затем обновлять их — во всех местах.
Эта проблема усугубляется в приложениях, разработанных в архитектуре микросервисов, где бизнес-логика распределена по множеству различных баз кода — это становится еще более болезненным, когда сервисы написаны на разных языках, и вам нужно реализовать логику несколько раз и надеяться, что это правильно.
В конечном счете, эта жестко запрограммированная авторизация приводит к техническому долгу. По мере роста вашего приложения становится все труднее поддерживать эту жестко запрограммированную логику, поскольку она разбросана по разным частям вашей кодовой базы. Если вам повезло, что у вас нет ошибок или уязвимостей в вашей устаревшей кодовой базе, то, по крайней мере, новым разработчикам будет сложно вносить изменения, не нарушая другие части системы.
Есть лучший способ справиться с авторизацией, чем жесткое кодирование контроля доступа. Сложная бизнес-логика, определяющая, кто и что может делать, может быть извлечена из самого кода приложения и помещена в центральную службу, которая принимает решения об авторизации, что по существу отделяет бизнес-логику разрешений от кодовой базы приложения.
С извлеченной бизнес-логикой это означает, что правила относительно того, кто может что делать, могут развиваться независимо от кодовой базы без необходимости поднимать вопрос с разработчиком. Обычно эти требования в любом случае предъявляются к продукту или группе безопасности, а не к разработчикам, поэтому в идеале они должны управляться ими.
Cerbos является реализацией именно этой модели, где логика отделена от кодовой базы и определяется как простые для понимания файлы конфигурации политик, а не код. Это устраняет технический долг всей логики авторизации, разбросанной по кодовой базе, и заменяет ее простой условной проверкой РАЗРЕШИТЬ/ЗАПРЕТИТЬ, где сама логика обеспечивается точкой принятия решения о политике, работающей внутри вашей инфраструктуры.
н
Оригинал
Recent Post
-
Демистификация технического долга: обзор 4 типов с действенными исправлениями
24 марта 2023 г. -
Как управлять техническим долгом с помощью стратегии штанги
8 марта 2023 г. -
Общие сведения об управлении доступом на основе ролей (RBAC)
3 ноября 2022 г. -
Развертывание SuperToken с помощью React и NodeJS на Vercel
16 мая 2022 г. -
Создание экрана входа в систему с помощью React и Bootstrap
5 мая 2022 г.
Categories
- Python
- blockchain
- web
- hackernoon
- вычисления
- вычислительные компоненты
- цифровой дом
- игры
- аудио
- домашний кинотеатр
- Интернет
- Мобильные вычисления
- сеть
- фотосъемка видео
- портативные устройства
- программного обеспечения
- телефон и связь
- телевидение
- видео
- мир технологий
- умные гиды
- облако
- искусственный интеллект
- се
- Samsung
- умные города
- digitaltrends
- отели
- Startups
- Venture
- Crypto
- Apps
- безопасность
- техника и работа
- cxo
- мобильность
- разработчик
- 5г
- майкрософт
- инновации
- Права и свободы
- Законодательство и право
- Политика и общество
- Космическая промышленность
- Информационные технологии
- Технологии
- Образование
- Научные исследования
- Автомобильная промышленность
- Программная инженерия
- IT и технологии
- Веб-разработка
- Программирование
- Автоматизация
- Карьерный рост
- Программирование и анализ данных
- Трудоустройство
- Политика
- Искусственный интеллект
- ИТ-технологии
- Программное обеспечение
- Экологическая политика
- Образование и рынок труда
- Политика и право
- Microsoft Teams и SharePoint
- Информационная безопасность
- Кибербезопасность
- Налоги
- Образование и карьера
- Интернет и технологии
- Технологии, Государственные услуги
- Политика и технологии
- Разработка программного обеспечения
- Разработка ПО
- Машинное обучение
- Налогообложение, технологии, открытый исходный код
- Финансы и налоги
- Технологии, Интернет, Экология
- Интернет, безопасность
- Технологии и политика
- Операционные системы
- Профессиональная разработка
- Технологии, Безопасность
- Интернет и общество
- Финансовая индустрия
- Налоговый учёт
- Общественное здравоохранение
- Технологическая отрасль
- Юриспруденция
- Технологии и государство
- Здоровье и фитнес
- IT-инфраструктура
- Технологии и ИИ
- Здравоохранение
- IT
- Технологии, Экономика
- Музыка и технологии
- Здоровье и питание
- IT и безопасность
- Бизнес и предпринимательство
- Технологии, Программное обеспечение
- Технологии и инновации
- Технологии, данные, этика
- Технологии и Интернет
- Технологии и SaaS
- Медицина и здравоохранение
- Онлайн-видеосервисы
- Финансы и технологии
- Чтение и саморазвитие
- Экономика и бизнес
- Безопасность данных
- Удаленная работа
- Авиация и технологии
- Технологии, Игры
- Энергетика
- Социальные сети, безопасность, технологии
- Саморазвитие
- Безопасность информации
- Бизнес и карьера
- Технологии и отношения
- Игровая индустрия
- Компьютерная индустрия
- Математика, Искусственный интеллект
- Наука и технологии
- Технологии и безопасность
- Технологии, Удаленная работа, Бизнес
- Видеоигры
- Технологии, Искусственный интеллект, Этика
- Технологии, социальные сети, 6G
- Технологии, Программирование, AI, Разработка ПО
- Программирование, Разработка ПО, Технологии
- Животные
- Технологии, Искусственный интеллект
- Программирование, карьера, технологии, обучение
- Бизнес и технологии
- Технологии, Безопасность данных
- Астрономия и физика
- Продуктивность, личное развитие
- Медиа и Технологии
- Программирование и Искусственный Интеллект
- Социальные сети
- Политика и экономика
- Технологии, Медицина, Искусственный интеллект
- Технологии и управление
- Космос и астрономия
- Общество и политика
- Космические исследования
- Веб-дизайн
- Искусственный интеллект и безопасность данных
- Технологии, Безопасность, Конфиденциальность
- Экологическая проблема
- Технологии, Погода
- Авиация
- Транспортная сфера
- Технологии и бизнес
- Игровая промышленность
- Телевидение и реклама
- Аналитика данных
- Технологии и кибербезопасность
- Маркетинг
- Технологии и гаджеты
- Технологии, Авиация, Инновации
- Финансы и инвестиции
- Технологии и общество
- Рыночный анализ
- Космология
- Данные и бизнес
- IT и программирование
- Технологии и право
- Программирование и разработка
- Медицинские технологии
- Авиационная промышленность
- Технологии и искусственный интеллект
- Генетическая инженерия
- Бизнес и инвестиции
- Компьютерная промышленность
- Психология и социология
- Образование и технологии
- Рынок труда
- Технологии, Стартапы
- Технологии, Приватность, Чтение
- Маркетинг и продажи
- Виртуальная реальность
- Технологии, Смартфоны, Маркетинг
- Технологии, Бизнес, Личностный рост
- Экологические проблемы
- Экономика и технологии
- IT и карьера
- Интернет и безопасность
- Разработка и технологии
- Биотехнологии
- Интернет-магазины, кибербезопасность
- Финансы
- Безопасность и технологии
- Экономика
- Защита данных
- Data Science
- Карьера и работа
- Финансовый успех, мошенничество, маркетинг
- Безопасность
- Экология
- Космическая индустрия
- Программирование, Python, Обучение
- Технологии искусственного интеллекта
- Технологии, Дизайн, iOS
- Программирование, DevOps, Kubernetes
- Социальные сети и пропаганда
- Корпоративная этика
- Управление IT-инфраструктурой
- Здоровье и медицина
- Медицина
- Медицинская промышленность
- Разработка и дизайн
- Искусственный интеллект, Диагностика систем
- Образование и психология
- Технологии, Автомобильная промышленность
- Автомобили и путешествия
- Астрономия и космология
- Программирование и технологии
- IT, работа в офисе, эмоциональный интеллект
- Компьютерная техника
- Здоровье и благополучие
- Управление персоналом
- Политика и управление
- Бизнес и экономика
- Социальные сети, Пропаганда, Информационная безопасность
- Технологии и автоматизация
- Геймдизайн
- Экология и технологии
- CRM-системы, IT-инфраструктура
- Права человека
- Цифровая цензура, свобода слова, технологии
- Технологии, Искусственный интеллект, Работа
- Наука о данных
- Астрономия, Наука
- Интернет и цифровые технологии
- Технологии, управление
- Интернет и связь
- Технологии и конфиденциальность
- Интернет и свобода слова
- Психология и социальные науки
- Книги и литература
- Работа и карьера
- Финансовые технологии
- Психология и саморазвитие
- IT, программирование, сети
- Технологии, Видеоигры
- Экология и энергетика
- Космонавтика
- Медицина и технологии
- Игры и развлечения
- Музыкальная индустрия
- Логистика и складирование
- Бизнес и финансы
- Экология и окружающая среда
- Правозащита
- Социальные сети и дезинформация
- Технологии и рынок труда
- Технологии, Искусственный интеллект, Рынок труда
- Технологии и будущее
- Медицина и здоровье
- Социальные медиа
- Экология, политика, общество
- Экономика и Финансы
- Разработка игр
- Пропаганда и дезинформация
- Медицинские исследования
- Онлайн-знакомства
- Политика и СМИ
- Энергетика и электромобили
- Климатические изменения
- Технологии, Рынок труда
- IT и управление данными
- Безопасность и кибербезопасность
- Интернет-технологии
- Психология и личностное развитие
- Технологии, Мессенджеры
- Цифровые технологии
- Здоровье и самосовершенствование
- Технологии и AI
- Технологии и спорт
- IT, Разработка программного обеспечения
- Экология и климат
- Космос и технологии
- Юридическая сфера
- Безопасность в интернете
- Программирование, Искусственный Интеллект, Качество ПО
- Технологии и мессенджеры
- Социальная справедливость
- Технологическая индустрия
- Личностное развитие, Time-менеджмент, Психология
- Бизнес и менеджмент
- Технологии, Микросхемы, Автономные системы
- Фриланс и предпринимательство
- Социальные сети и искусственный интеллект