Универсальная аутентификация Git
Аутентификация – это сложно. Сложно отлаживать, сложно тестировать, сложно получать доступ.
Эти слова были правдой как в июле 2020 года, так и сегодня. Цель Git Credential Manager (GCM) – сделать аутентификацию к удаленному репозиторию Git легкой и безопасной, вне зависимости от того, где хранится код или как вы предпочитаете работать. Коротко: GCM хочет стать универсальной аутентификацией Git.
В предыдущей статье писалось о риске распространения универсальных стандартов и о том, что внедрение Git Credential Manager Core (GCM Core) будет означать появление еще одного помощника в работе с мандатами. Удалось заменить GCM для Windows, Mac и Linux на новый GCM! Исходный код старых проектов заархивирован и больше не поставляется с такими дистрибутивами как Git для Windows.
Поэтому моникер Core
был убран из названия проекта, чтобы стать Git Credential Manager или сокращенно GCM.
У GCM появился новый дом на GitHub https://github.com/GitCredentialManager.
Размещение на github.com/microsoft или github.com/github не совсем соответствовало этике GCM как открытого, универсального и агностического проекта. Текущие проблемы и запросы на исправление были перенесены, и по-прежнему приветствуются желающие внести вклад в проект.
Взаимодействие с удаленными HTTP-серверами без помощника по учетным данным, такого как GCM, усложняется с удалением аутентификации по логину/паролю в GitHub и BitBucket. GCM упрощает эту задачу, а благодаря разработкам, таким как GitHub Mobile для двухфакторной аутентификации и поддержка потока кода устройства OAuth, аутентификация становится лучше.
Привет Linux!
В стремлении получить универсальное решение для аутентификации в Git, выполнена работа над тем, чтобы GCM одинаково работал на различных дистрибутивах Linux с упором на дистрибутивы на базе Debian.
Доступны пакеты Debian, которые можно загрузить со страницы выпусков GitHub, а также tar-архивы для других дистрибутивов (только для x64 версии Intel). Построение на платформе .NET облегчает сборку и запуск везде, где работает среда выполнения .NET. Со временем планируется расширить матрицу поддержки дистрибутивов и процессорных архитектур (например, добавить поддержку ARM64).
В связи с широкой и многообразной природой дистрибутивов Linux важно, что GCM предлагает много вариантов хранения учетных данных. В дополнение к зашифрованным GPG файлам добавлена поддержка Secret Service API через libsecret (также см. GNOME Keyring), которая дает опыт схожий с тем, что предоставляется в GCM на Windows и macOS.
Подсистема Windows для Linux
В дополнение к дистрибутивам Linux также реализована специальная поддержка GCM для подсистемы Windows для Linux (WSL). Использование GCM с WSL означает, что все ваши установленные WSL могут совместно использовать учетные данные Git друг с другом и с хостом Windows, что разрешает вам легко смешивать и сочетать среды разработки.
Смотрите больше о GCM для WSL здесь.
Привет, GitLab
Универсальность означает не только работу с большим количеством мест, но и любую службу хостинга Git. Благодаря активному сообществу, GCM постоянно становится лучше. И теперь GCM поддерживает GitLab.
Никаких терминалов!
Несмотря на любовь к терминалу, не всем удобно вводить команды и отвечать на подсказки с помощью клавиатуры. Кроме того, многие инструменты и IDE, предлагающие интеграцию с Git, делают это путем передачи исполняемого файла git, что означает, что GCM может быть вызван для аутентификации из GUI-приложения, где нет терминала.
GCM предлагает полноценные графические подсказки аутентификации в Windows, благодаря проекту Avalonia, предоставляющего кросс-платформенный .NET XAML фреймворк. Также предоставляются графические подсказки на macOS и Linux.
GCM продолжает поддерживать подсказки в терминале в качестве опции по умолчанию для подсказок. Известны среды, где нет графического интерфейса (например, при подключении по SSH без переадресации дисплея), и вместо этого представляются эквивалентные текстовые подсказки. При желании можно вручную отключить подсказки GUI.
Обеспечение безопасности цепочки поставок программного обеспечения
Обеспечение безопасности исходного кода – шаг в поддержании доверия к программному обеспечению, будь то хранение коммерчески важных исходных текстов вдали от посторонних глаз или защита от злоумышленников, вносящих изменения как в закрытые, так и в открытые проекты.
В 2020 году была раскрыта масштабная кибератака, затронувшая часть федерального правительства США, а также несколько крупных компаний-разработчиков программного обеспечения. Недавний указ президента США в ответ на эту кибератаку актуализирует важность таких механизмов, как многофакторная аутентификация, политика условного доступа и общая защита цепочки поставок программного обеспечения.
Храните ВСЕ учетные записи
Git Credential Manager создает и хранит учетные данные для доступа к репозиториям Git на множестве платформ. Учетные данные хранятся с помощью стандартных промышленных API шифрования и хранения.
GCM использует менеджер учетных данных Windows и связку ключей для входа в систему в macOS.
В дополнение к реализованным механизмам так же поддерживаются альтернативные варианты для платформ, предоставляя выбор того, как и где хранить сгенерированные учетные данные (например, зашифрованные GPG файлы учетных данных).
Также GCM теперь может использовать помощник Git git-credential-cache
, который собирается и доступен во многих дистрибутивах Git. Этот вариант подходит для облачных оболочек или эфемерных сред, когда нет желания постоянно сохранять учетные данные на диске, но при этом избежать запроса при каждом git fetch
или git push
.
Современная проверка подлинности Windows (экспериментальная)
Еще один способ обеспечения безопасности учетных данных – поддержка на аппаратном уровне с помощью таких технологий, как Trusted Platform Module (TPM) или Secure Enclave. Кроме того, предприятия, желающие убедится в том, что устройство или учетные данные не скомпрометированы, могут использовать политики условного доступа.
Интеграция с модулями безопасности или применение политик, может быть трудной задачей и зависит от платформы. Приложениям часто проще передать ответственность за получение, хранение учетных данных и применение политик брокеру аутентификации.
Брокер проверки подлинности выполняя согласование учетных данных от имени приложения, упрощает эти проблемы и часто имеет дополнительное преимущество более глубокой интеграции с функциями операционной системы, такими как биометрия.
GCM получил экспериментальную поддержку брокерской аутентификации (пока только для Windows)!
В Windows брокер проверки подлинности – компонент, который впервые появился в Windows 10 и известен как Web Account Manager (WAM). WAM разрешает таким приложениям, как GCM поддерживать современные способы аутентификации, такие как, Windows Hello и применять политики условного доступа, установленные на работе или учебе.
Обратите внимание, что поддержка брокера Windows пока экспериментальна и ограничивается проверкой подлинности рабочих и учебных учетных записей Microsoft в Azure DevOps.
Больше о GCM и WAM рассказывается по этой ссылке, в том числе о том, как зарегистрироваться и о текущих известных проблемах.
Что такое условный доступ?
Условный доступ – это идея предоставления доступа к системе или ресурсу только при соблюдении критериев. Эти критерии могут включать такие вещи, как: проверка актуальности и работоспособности антивирусного программного обеспечения на устройстве, безопасное соединение через VPN, использование 2FA или динамическое обнаружение подозрительной активности из учетной записи пользователя.
Условный доступ значим для предприятий. Пандемия привела к увеличению числа людей работающих из дома с таких устройств, как мобильные телефоны, ноутбуки, персональные компьютеры, за пределами корпоративного брандмауэра. Принятие таких политик условного доступа становится популярным инструментом для предприятий по обеспечению безопасности корпоративных данных.
Храня учетные данные репозитория Git, GCM имеет возможности для содействия внедрению методов для доступа к исходному коду. Вопросы использования новейших технологий и средств защиты активно и постоянно изучаются.
Еще больше улучшений
За последние 18 месяцев в GCM появилось много функций и улучшений. Вот краткое изложение дополнительных обновлений после публикации в июле 2020 года:
- Автоматическое определение локальных/самостоятельно размещенных экземпляров.
- Поддержка GitHub Enterprise Server и GitHub AE.
- Общие кэши токенов Microsoft Identity с другими инструментами разработчика.
- Улучшенная поддержка сетевых прокси.
- Поддержка пользовательских корневых сертификатов TLS/SSL.
- Установщик Windows без администратора.
- Улучшенная обработка и вывод командной строки.
- Поддержка корпоративных настроек по умолчанию в Windows.
- Многопользовательская поддержка.
- Улучшенная диагностика.
Планы на будущее
Несмотря на значительный прогресс в достижении цели универсального опыта, снижение темпа в ближайшее время не планируется и GCM будет развиваться.
В следующем периоде внимание будет уделено итерациям и улучшению поддержки брокера аутентификации, обеспечению более надежной защиты учетных данных, а также на повышение производительности и совместимости с большим количеством сред и применений.
Комментарии