ProHoster > Блог > Администрирование > Опыт применения технологии Рутокен для регистрации и авторизации пользователей в системе (часть 3)
Опыт применения технологии Рутокен для регистрации и авторизации пользователей в системе (часть 3)
Добрый день!
В предыдущей части мы успешно создали свой удостоверяющий центр. Чем вообще для наших целей он может быть полезен?
С помощью локального удостоверяющего центра мы можем производить выдачу сертификатов, а также осуществлять проверку подписи по этим сертификатам.
При выдаче сертификата пользователю удостоверяющий центр использует специальный запрос на выдачу сертификата Pkcs#10, имеющий формат файла ‘.csr’. Этот запрос содержит закодированную последовательность, которую удостоверяющий центр знает, как правильно распарсить. Запрос содержит как публичный ключ пользователя, так и данные для создания сертификата (ассоциативный массив с данными о пользователе).
Каким образом получить запрос на выдачу сертификата, мы рассмотрим в следующей статье, а в этой хочу привести основные команды удостоверяющего центра, которые помогут нам выполнить нашу задачу на стороне бекенда.
Итак, вначале мы должны создать сертификат. Для этого используем команду:
openssl ca -batch -in user.csr -out user.crt
ca — команда openSSL, которая относится к удостоверяющему центру,
-batch — отменяет запросы подтверждения при формировании сертификата.
user.csr — запрос на создание сертификата (файл формата .csr).
user.crt — сертификат (полученный результат команды).
Для того, чтобы эта команда отработала, удостоверяющий центр должен быть настроен в точности так, как описано в предыдущей части статьи. В противном случае придется дополнительно указывать место расположения корневого сертификата удостоверяющего центра.
cms — команда openSSL, которая используется для подписи, проверки, шифрования данных и других криптографических операций с помощью openSSL.
-verify — в данном случае осуществляем проверку сертификата.
authenticate.cms — файл, содержащий подписанные данные сертификатом, который был выдан предыдущей командой.
-inform PEM — используется формат PEM.
-CAfile /Users/……/demoCA/ca.crt — путь к корневому сертификату. (без этого у меня команда не сработала, хоть и прописаны пути к ca.crt в файле openssl.cfg)
-out data.file — расшифрованные данные отправляю в файл data.file.
Алгоритм применения удостоверяющего центра на стороне бекенда следующий:
Регистрация пользователя:
Получаем запрос на создание сертификата и сохраняем его в файл user.csr.
Сохраняем первую команду данной статьи в файл расширением .bat или .cmd. Запускаем этот файл из кода, предварительно сохранив запрос на создание сертификата в файл user.csr. Получаем файл с сертификатом user.crt.
Читаем файл user.crt и отправляем его на клиент.
Авторизация пользователя:
Получаем подписанные данные с клиента и сохраняем их в файл authenticate.cms.
Сохраняем вторую команду данной статьи в файл расширением .bat или .cmd. Запускаем этот файл из кода, предварительно сохранив подписанные данные с сервера в authenticate.cms. Получаем файл с расшифрованными данными data.file.
Читаем data.file и проверяем эти данные на валидность. Что именно проверить описано в первой статье. Если данные валидны, то авторизация пользователя считается успешной.
Для реализации этих алгоритмов можно использовать любой язык программирования, который используют для написания бекенда.
В следующей статье мы будем разбираться с тем, как работать с Ретокен плагином.