Mozilla Persona подписывает строку данных

Можно ли использовать Mozilla Persona для подписи данных (строка, токен, ...)?

Я хотел бы передать строку данных с помощью navigator.id.request(), затем перенести утверждение на ненадежный носитель и получить данные после проверки.

1 ответ

Решение

Persona/BrowserID не является схемой подписи общего типа. Для этого вы можете обратиться к JSON Web Signature (JWS), для которого существует поддержка библиотек на многих языках.

navigator.id.request API не обеспечивает способ передачи произвольных данных в рабочий процесс обеспечения, поэтому стандартный Persona JavaScript не сможет этого сделать. Вы должны будете использовать настраиваемый JavaScript, который обеспечивает обратный вызов обеспечения с пользовательскими данными, а не объект с открытым ключом.

Если вы зайдете так далеко, то сможете ли вы заставить провайдера идентификации подписывать произвольные данные, будет зависеть от того, как программное обеспечение IdP обрабатывает аргумент открытого ключа. Например, Haskell persona библиотека обрабатывает аргумент открытого ключа непрозрачно; он будет сертифицировать любое произвольное "значение" JSON ( см. источник).

С другой стороны, если программное обеспечение IdP ожидает синтаксического анализа допустимого ключевого объекта в формате, сгенерированном кодом посредника JavaScript, вы не сможете подписывать произвольные данные.

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

Другие вопросы по тегам