GolosChain / auth-service

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Auth service

Auth service является сервисом для авторизации запросов к CyberWay. Для работы сервису необходим совместимый фасад-сервис, осуществляющий конечное общение с системой.

Основное

Микросервис реализует два метода:

  • 'auth.authorize': принимает параметр вида { user, sign, secret, channelId } и возвращает данные вида { user, roles: []} либо ошибку авторизации. Авторизация происходит следующим образом: сначала проверяется, соответствует ли значение параметра secret (в виде буфера) тому, что уже хранится для этого channelId и проверяется, верифицирована ли подпись по этому ключу. Если да, то авторизация считается успешной. Иначе, будет возвращена ошибка авторизации.

  • 'auth.generateSecret': принимает параметр вида { channelId } и возвращает сгенерированный секрет. Секрет представляет собой строку, содержащую восьмиричный хеш sha1, рассчитанный для строки, состоящей из channelId и рандомной строки в качестве "соли"

API JSON-RPC

Описание принимаемых параметров:

Параметр Тип Описание
user string Имя пользователя
channelId string Идентификатор канала передачи данных, указывающий, по какому каналу нужно будет передать ответ
secret string Секрет, который подписывался
sign string Подпись для транзакции

Переменные окружения

Возможные переменные окружения ENV:

  • GLS_CONNECTOR_HOST (обязательно) - адрес, который будет использован для входящих подключений связи микросервисов.
    Дефолтное значение - 0.0.0.0

  • GLS_CONNECTOR_PORT (обязательно) - адрес порта, который будет использован для входящих подключений связи микросервисов.
    Дефолтное значение - 3000

  • GLS_METRICS_HOST (обязательно) - адрес хоста для метрик.
    Дефолтное значение при запуске без докера - 0.0.0.0

  • GLS_METRICS_PORT (обязательно) - адрес порта для метрик.
    Дефолтное значение при запуске без докера - 9777

  • GLS_CYBERWAY_HTTP_URL (обязательно) - строка коннекта к блокчейну

Запуск

Для запуска достаточно вызвать команду docker-compose up --build в корне проекта, предварительно указав необходимые ENV переменные.

About


Languages

Language:JavaScript 97.8%Language:Dockerfile 2.2%