Обзор цифровых учетных данных

Цифровые учетные данные — это криптографически проверяемые документы, которые можно использовать для аутентификации, авторизации или иного предоставления информации о пользователе. Обычно это такие вещи, как мобильные водительские права, цифровые паспорта, посадочные талоны и т. д. Они находятся в виртуальных контейнерах, называемых цифровыми кошельками, и являются частью стандарта W3C, который определяет, как получить к ним доступ и получить их. Этот стандарт реализован для сценариев использования в Интернете с помощью W3C Credential Management API и на Android с помощью DigitalCredential API Credential Manager.

Понимание цифровых учетных данных

В физическом мире человек может хранить свою личность в своем кошельке и предоставлять ее запрашивающей стороне, когда ее спросят:

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

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

Цифровые учетные данные имеют несколько основных отличий:

  1. Ожидается, что у пользователей будет несколько кошельков, которые могут содержать различные учетные данные. Кошельки определяют, какие учетные данные могут храниться внутри них.
  2. Запрашивающим теперь является приложение, а не реальный человек, и он называется проверяющим.
  3. Представление учетных данных происходит в программном обеспечении, что означает, что поверхность API извлекает и представляет учетные данные — в Android это диспетчер учетных данных.

Таким образом, Credential Manager берет на себя несколько ролей, которые раньше выполнял пользователь:

  1. На Android кошельки должны зарегистрировать метаданные своих учетных данных в Credential Manager, чтобы они отображались в пользовательском интерфейсе Credential Manager.
  2. Диспетчер учетных данных сопоставляет учетные данные разных кошельков на основе запроса и предоставляет пользователю список для выбора.
  3. Когда пользователь выбирает учетные данные в списке, диспетчер учетных данных затем вызывает кошелек, который обработает оставшуюся часть транзакции (отображение пользовательских интерфейсов и т. д.) и вернет учетные данные приложению.

Этот поток показан здесь:

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

Пользовательский опыт

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

Изображение, показывающее пользовательский интерфейс цифровых учетных данных в диспетчере учетных данных.
Рисунок 3. Пользовательский интерфейс цифровых учетных данных.

Стандарты

Запросы цифровых учетных данных создаются с использованием стандарта OpenID4VP . Посмотреть примеры запросов можно на сайте Digital Credentials Demo .

Ответы на цифровые учетные данные обычно возвращаются в стандартизированном формате учетных данных. Они поддерживаются различными организациями по стандартизации и включают в себя проверяемые учетные данные W3C , sd-jwt и mdoc .

Также возможны пользовательские протоколы, хотя мы рекомендуем использовать в вашем приложении один из стандартных протоколов.

Попробуйте это

Вы можете протестировать поток цифровых учетных данных на разных платформах с помощью кошелька Android и веб-верификатора:

  1. Установите общедоступный образец CMWallet на свой телефон Android. Вы можете сделать это, извлекая из репозитория и устанавливая непосредственно из Android Studio или перейдя по адресу https://github.com/digitalcredentialsdev/CMWallet/actions и выбрав последнюю сборку для доступа к последнему файлу app-debug.apk .
  2. Откройте CMWallet, чтобы зарегистрировать метаданные в Credential Manager. Убедитесь, что Bluetooth включен, чтобы ваши устройства могли подключаться друг к другу.
  3. Перейдите на https://digital-credentials.dev/ и выберите Request Credentials (OpenID4VP) .
  4. Примите предупреждающие запросы и отсканируйте QR-код с помощью телефона, затем выберите «Использовать ключ доступа» и коснитесь подтверждения, чтобы отобразить доступные учетные данные.
  5. Выберите учетные данные в CMWallet, чтобы вернуться в браузер. Браузер должен отобразить возвращенные учетные данные.

См. также