55 lines
2.4 KiB
Markdown
55 lines
2.4 KiB
Markdown
# Сервер-менеджер для ключей.
|
||
|
||
### Этот сервер может понадобиться в разработке безопасного api, авторизации и аутентификации.
|
||
|
||
|
||
### Ключевые особенности:
|
||
- Авторотация ключей (с возможностью указать интервал обновления)
|
||
- Генерация ключей (пока нельзя свой вставить и навсегда)
|
||
- Идеален для JWT и задач криптографии.
|
||
- Плавная ротация поддерживается (старые ключи живут некоторое время после создания нового).
|
||
- Оформлено в виде удобного api, с понятными конечными маршрутами.
|
||
- Хранилище в виде базы данных(sqlite) с собственной оберткой.
|
||
- AES-шифрование из коробки. Обязательно нужно обновить ключ в /keys перед продакшн-деплоем.
|
||
- Дружелюбный язык и стэк - node js, express. Это вам не сложный java и Spring Boot.
|
||
|
||
|
||
|
||
# Краткое руководство
|
||
### Суть
|
||
Предполагается, что:
|
||
|
||
1. Сервис будет запускаться локально (извне обращения игнорироваться).
|
||
2. Использоваться для благих целей.
|
||
|
||
### Как пользоваться
|
||
Пользоваться им очень просто, как два пальца об асфальт.
|
||
|
||
#### Для создания ключа:
|
||
Нужно обратиться к /reg-key с такой структурой:
|
||
```
|
||
POST /reg-key
|
||
body: {
|
||
"name": "Example",
|
||
"update": 24
|
||
}
|
||
```
|
||
|
||
где:
|
||
- update - интервал обновления
|
||
- name - название ключа
|
||
|
||
#### Для получения ключа:
|
||
Тут тоже все просто, отличие лишь в способе передачи информации:
|
||
```
|
||
GET /get-key
|
||
query-параметры:
|
||
- name
|
||
- kid (опционально)
|
||
|
||
примеры:
|
||
- http://localhost/get-key?name=Example
|
||
- http://localhost/get-key?name=Example&kid=4adc0149-49e7-45e7-b0af-5e0c4da5fe3f
|
||
```
|
||
Все, это все что вам нужно знать, чтобы использовать этот сервис.
|