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 та перевіряємо ці дані на валідність. Що саме перевірити описано в першій статті. Якщо дані валідні, то авторизація користувача вважається успішною.
Для реалізації цих алгоритмів можна використовувати будь-яку мову програмування, яку використовують для написання бекенду.
У наступній статті ми розбиратимемося з тим, як працювати з Ретокен плагіном.