Giter Club home page Giter Club logo

bakakeeper's Introduction

🕸 BakaKeeper

Synchronizační nástroj evidence žáků v programu Bakaláři s uživatelskými účty vedenými v Active Directory. Předpokládá se celoškolní použití Office365, ale není to nezbytně nutné. Nástroj byl původně vytvořen během pandemie Covid-19 a počítá se správou žákovských hesel v předdefinovaném tvaru a automaticky aktivovanými účty.

Vlastnosti

  • Automatická údržba účtů žáků v Active Directory podle dat získaných v evidenci Bakalářů (jména, zařazení do ročníku/třídy v OU a skupinách včetně povýšení školního roku, tvorba nového přihlašovacího jména, e-mailu a počátečního hesla, vyřazení účtů po ukončení vzdělávání, správa účtu podle stanovených politik).
  • Atomický, transakční postup.
  • Tvorba distribučních skupin třídních učitelů.
  • Tvorba anonymizovaných distribučních skupin s kontakty na zákonné zástupce žáků třídy/ročníku/stupně/školy.
  • Navrženo pro neinteraktivní periodický běh.

Co je výhledově v plánu

  • Sjednocený generátor sestav.
  • Možnost specifikace jiných výchozích tvarů hesel a režimu aktivace účtů.
  • Dříve odloženo z legislativních důvodů: Automatická definice přístupů k webové aplikaci pro žáky a jejich zákonné zástupce (metoda vyžádání nového hesla na základě ověřené e-mailové adresy).
  • Grafické uživatelské rozhraní.

Prerekvizity

  • LDAP server (Microsoft Active Directory) s rozšířenými atributy Microsoft Exchange (správce s oprávněním skupiny Schema Admins je snadno doinstaluje na řadič AD z balíčku pro Exchange Server).
  • Microsoft SQL Server (nebo MS SQL kompatibilní server) s daty aplikace Bakaláři s doménovým ověřováním uživatele (NTLM nebo Kerberos).
  • Dedikovaný neinteraktivní doménový účet s přístupem k SMTP, právy minimálně Account Operator v AD nad žáky, právy ke čtení i zápisu v SQL databázi s Bakaláři.
  • JVM kompatibilní s Java 18 se síťovým přístupem k serverům AD a SQL.
  • Nepovinně – v případě použití O365 je možné nastavit poštovní filtrovací pravidlo na základě hodnoty CustomAttribute2:TRUE a odesílatele v doméně mimo organizaci. Na AD se lokálně ukládá do atributu ExtensionAttribute2 a má význam podobný jako msExchRequireAuthToSendTo.
  • Nepovinněcron nebo podobný plánovač pro periodické spouštění.
  • Nepovinně – pro ověřování přístupu k SQL Serveru pomocí protokolu Kerberos namísto integrovaného NTLM musí být manuálně delegována oprávnění výše zmíněnému účtu (setspn -s MSSQLSvc/sql-server.domena.local domena\bakalari).

Použití

  1. Rychlá inicializace – vytvoření persistentního nastavení:
    % java -jar BakaKeeper.jar --init --interactive [-passphrase <heslo>]
    spustí interaktivní dotazník s nastavením parametrů, které budou uloženy ve výchozím souboru ./settings.dat.
    Přepínač [-passphrase <heslo>] není povinný, nicméně provede zašifrování vložených nastavení. Idea za šifrováním nastavení je taková, že nástroj spolu s nastavením může být uložen na sdíleném prostředku a není žádoucí, aby údaje použitého správcovského účtu byly veřejně dostupné. Nástroj pak může být spouštěn z důveryhodného stroje automaticky pomocí plánovače (např. cron).
    V rámci inicializace bude také získán certifikát pro připojení AD serveru a zapsán v úložišti ./ssl.jks.

  2. Kontrola synchronizace:
    % java -jar BakaKeeper.jar --status [-passphrase <heslo>]
    zkontroluje současný stav a vytvoří hlášení.

  3. Provedení synchronizace:
    % java -jar BakaKeeper.jar --sync [-passphrase <heslo>]
    podle vytvořených nastavení provede synchronizační operace a případně zašle hlášení e-mailem.

  4. Identifikace účtu:
    % java -jar BakaKeeper.jar -id <login> [-passphrase <heslo>]
    vypíše informace o uživateli s přihlašovacím jménem <login> bez domény

  5. Reset hesla žáka:
    % java -jar BakaKeeper.jar -reset <login> [-passphrase <heslo>]
    provede nastavení hesla žáka s přihlašovacím jménem <login> bez domény na výchozí hodnotu

  6. Více viz
    % java -jar BakaKeeper.jar --help

Závislosti pro rychlé sestavení a spuštění

ve výchozím stavu jsou vyžadovány v externím adresáři ./lib/, ale je možné odkomentovat assembly plugin Mavenu a sestavit archiv i se závislostmi, nebo rovnou použít shade plugin

  • com.sun.mail.javax.mail >= 1.6.2
  • com.microsoft.sqlserver.mssql-jdbc >= 8.2.0
  • net.sourceforge.jtds.jtds >= 1.3.1
  • net.tirasa.adsddl >= 1.9 (+slf4j-api, activation)
  • (junit >= 4.13.1)

2019-2023 ZŠ Pardubice - Studánka

bakakeeper's People

Contributors

jhlade avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.