NotariumҚұжаттама
Құжаттама нұсқасы: latest
KZ

Аутентификация

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 бетінде.