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

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

Разберитесь в цифровых учетных данных.

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

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

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

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

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

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

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

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

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

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

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

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

Стандарты

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

Ответы, содержащие цифровые учетные данные, обычно возвращаются в стандартизированном формате. Эти форматы поддерживаются различными организациями по стандартизации, включая W3C Verifiable Credentials , 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, чтобы вернуться в браузер. В браузере должны отобразиться возвращенные учетные данные.

См. также

  • Чтобы узнать больше об использовании Credential Manager для запроса цифровых учетных данных в вашем приложении, ознакомьтесь со страницей Credential Manager - Verifier API .
  • Чтобы узнать больше о создании цифрового кошелька с помощью Credential Manager, ознакомьтесь со страницей Credential Manager - Holder API .