Аутентификация
Notarium-дегі аутентификация кіріктірілген әрі толығымен метадеректер дерекқорына сүйенеді — сыртқы IdP жоқ, JWT жоқ, SMTP жоқ. Режимді AUTH_MODE айнымалысы таңдайды, ол логиннің жалпы бар-жоғын шешеді.
password режимі (әдепкі)
Әдепкіде қауіпсіз: толыққанды көппайдаланушылық аутентификация.
- Алғашқы іске қосу. Таза данада бірінші келуші setup-экран арқылы иесін тіркейді (әкімші әрі бапталған кеңістіктердің иесі). Алдын ала дайын пароль жоқ; сол тіркелгі жасалған соң setup біржола жабылады.
- Сессиялар. Логин серверлік сессия ашады — JWT емес, дерекқордағы жол. Ол
nt_sessionдеген HttpOnly-cookie-де тұрады, TTL — жылжымалы 30 күн, HTTPS артындаSecureжалаушасымен. Рұқсатты кері қайтарып алу лезде жүзеге асады: пайдаланушыны белсенсіздендіру немесе парольді ауыстыру белсенді сессияларды сол сәтте үзеді. - Метадеректер дерекқоры қажет. Ол әдепкіде бар —
DATA_DIRастындағы SQLite, ештеңе баптаудың керегі жоқ.META_DB_URL-ге тек сыртқы Postgres-ке көшкенде ғана қол тигізесіз. Дерекқор бөлімін қараңыз.
none режимі
Бәріне қолы жететін бір ғана субъект болады. Оператор бұл режимді әдейі қосады: десктоп, жергілікті әзірлеу немесе сенімді интранет үшін. Auth-маршруттар 404 қайтарады, login-UI мүлде жоқ, auth үшін метадеректер дерекқоры да керек емес.
none данасын желіге шығармаңызnone режимінде портқа жете алған кез келген адам барлық деректерге толық қол жеткізеді — агенттердің MCP-эндпоинтін қоса. Оны тек оқшауланған не сенімді контурда ғана қолданыңыз.
Рөлдер мен рұқсат
Деректерге рұқсат кеңістіктегі мүшелік арқылы беріледі, рөл — үшеу:
| Рөл | Құқықтары |
|---|---|
reader | Кеңістіктегі бәрін оқиды. |
writer | Жазбаларды өңдейді. |
owner | Қатысушылар құрамын басқарады. |
host-admin жалаушасы пайдаланушылар мен кеңістіктерді басқаруға құқық береді, бірақ нақты кеңістіктің деректерін оқу үшін бәрібір сол кеңістікте мүшелік керек. Модель туралы толығырақ — Қолжетімділік моделі.
Шақырулар мен парольді қалпына келтіру
Notarium-де SMTP жоқ — тіркелгіні алғаш беру дегеніміз әкімші қолма-қол жеткізетін бір реттік сілтеме. Бір механизм, екі мақсат:
- Шақыру (invite) — пайдаланушыны парольсіз қосу; сілтеме 7 күн жарамды.
- Парольді қалпына келтіру — сілтеме 24 сағат жарамды; қабылдау ескі сессияларды тоқтатады.
Токен URL-фрагментте (/invite#<token>) жүреді, сондықтан access-логтарға түспейді. Пайдаланушыда бір мезгілде осындай бір ғана сілтеме белсенді болады; әкімші басқаның паролін ешқашан білмейді.
Агенттерге арналған токендер
ЖИ-агенттер Authorization: Bearer ntp_… түріндегі жеке қатынау токенімен (PAT) аутентификацияланады: ауқымы read не write, қалауыңызша нақты кеңістіктерге дейін тарылтылады. Құпия дәл бір рет көрсетіледі. Токен шығару және басқа да басқарушы әрекеттер тек сессия аясында ғана қолжетімді — ағып кеткен PAT құқығын кеңейте алмайды. Толығырақ — Агентті қосу және Қауіпсіздік және көріну.
Рұқсатты қалпына келтіру
Reset-сілтемені тек әкімші беретіндіктен, жалғыз әкімшінің паролін жоғалту рұқсаттан айырылуды білдірер еді. Шығар жол — метадеректер дерекқорымен тікелей жұмыс істейтін admin-CLI. Бұл — образға кіріктірілген пәрмендердің бірі, сондықтан оны қысқаша әрі тікелей жұмыс істеп тұрған контейнерде шақыруға болады:
docker compose exec notarium admin create-admin <user> --random
# жалаң docker run үшін:
docker exec -it notarium admin create-admin <user> --random
Серверді тоқтатудың қажеті жоқ: WAL режиміндегі SQLite екінші жазушыға шыдайды, ал Postgres — сөз жоқ. Метадеректер дерекқорын CLI өзі табады, сервермен бірдей логика бойынша (META_DB_URL немесе DATA_DIR-дан шығатын түбір); жол қате болса, ол ішінде «пайдаланушылар жоқ» болып шығатын бос дерекқорды үнсіз жасамай, қатемен тоқтайды.
Қолжетімді пәрмендер:
| Пәрмен | Әрекет |
|---|---|
list | Пайдаланушылар тізімі. |
passwd <user> [--password <pw> | --random] | Парольді ауыстыру. |
create-admin <user> [--random] [--display "Аты"] | Әкімші жасау. |
grant <user> <space> <owner|writer|reader> | Кеңістікте рөл беру. |
Жалаушасыз берілген пароль stdin-нен эхосы өшірулі күйде оқылады — пәрмендер тарихына түспес үшін. setPassword/createAdmin тек CLI-дан ғана қолжетімді, олар үшін HTTP-жол жоқ: бұл — хост операторының шекарасы. Образдың қалған пәрмендері — Образ CLI бетінде.