SSSD

Z Wikipedie, otevřené encyklopedie

SSSD (z anglického System Security Services Daemon) je množinou programů pro Linuxové distribuce přístup k různým zdrojům identit a autentizačních serverů, které jsou zapouzdřeny do jedné aplikace, která mimo jiné také nabízí možnost data takto získaná ukládat v dočasné paměti (cache). SSSD bylo vytvořeno z několika hlavních důvodů, tím největším je, že stávající princip přihlašování uživatelů v prostředí Linux je velice komplikovaný z pohledu konfigurace všech nutných prostředků, tak aby vše správně pracovalo. Současné řešení využívá PAM a NSS. Ovšem v případě, že spravujeme více zdrojů identit, stává se pro administrátora konfigurace velice zdlouhavá náročná a nepřehledná, zatímco v SSSD stačí jen jednoduchý konfigurační soubor o několika řádcích a vše je vyřešeno.

Výhody[editovat | editovat zdroj]

Velikou předností SSSD je možnost používat cache, což znamená, že služby jako LDAP, NIS nebo FreeIPA mohou být používány, i když počítač nebo notebook zrovna nejsou připojeny k Internetu. Další z výhod SSSD je fakt, že používá pouze jeden socket pro připojení ke všem zdrojům, kde za normálních okolností by bylo třeba jeden socket pro každý zdroj, což velmi zatěžuje síť. Posledním z výčtu výhod SSSD je pak služba InfoPipe, která nabízí možnost získat rozšířenou sadu informací o uživatelských účtech.

Architektura[editovat | editovat zdroj]

SSSD je složeno ze 4 hlavních procesů

  1. Monitor – je proces, který kontroluje, zda v pořádku běží ostatní procesy, na začátku je vyvolává a pokud při některé z periodických kontrol zjistí, že některý neběží, tak jej znovu spustí
  2. Data provider – tento proces je zodpovědný za komunikaci s různými zdroji dat a má také na starost zaplňování cache. Pro každý zdroj existuje jeden proces data provideru
  3. Responder – proces komunikující se systémovými knihovnami jako je NSS nebo PAM a snaží se jim předávat data, která si vyžádají. V případě, že kýžená data nejdou v cache nebo jsou již expirovaná, vydá signál, aby se obstarala data aktualizovaná z některého ze zdrojů.
  4. Helper process – některé z operací prováděné v SSSD mohou být blokující, proto SSSD obsahuje speciální sub-proces, ve kterém tyto operace probíhají. Každý takovýto helper proces je potomkem procesu Data provider

Komunikace[editovat | editovat zdroj]

D-Bus[editovat | editovat zdroj]

SSSD používá pro komunikaci protokol D-Bus, které pracuje na principu zasílání zpráv. D-Bus můžeme rozdělit na 4 hlavní komponenty.

  1. D-Bus server – navazuje spojení, jako identifikaci používá adresu, která se skládá z transportního jména, středníku a volitelného seznamu klíčů a hodnot oddělených čárkami
  2. D-Bus Connection – tato spojení jsou tzv. peer to peer spojení, tedy spojení mezi dvěma objekty, kde jeden konec naslouchá a druhý vysílá zprávy
  3. D-Bus Message – v D-Bus existují dva druhy zpráv, jednosměrné zprávy, které nesou jednoduchou zprávu, vyvolávající nějakou z metod a poté obou směrné zprávy, které po zavolání zprávy nesou zprávu o výsledku zpět ke zdroji zprávy
  4. D-Bus System Bus – není součástí SSSD, ale patří k D-Bus

S-Bus[editovat | editovat zdroj]

Aby mělo SSSD co nejlepší výkon, používá knihovnu pro neblokující operace tevent, která byla vyvinuta jako součást Samba projektu. Pro zajištění určitého stupně abstrakce, která by umožnila současné použití teventu a D-Bus, používá SSSD obal nad těmito knihovnami S-Bus.

Databáze[editovat | editovat zdroj]

SSSD umožňuje práci s několika základními objekty, který každý z nich obsahuje určitou sadu atributů, objekty jsou:

  • Users – objekt obsahující atributy jako uživatelské jméno, domovská složka, UID
  • Groups – uživatelé mohou být seskupeni do skupin, skupiny mohou tvořit zanořené struktury, takže i skupina může být členem skupiny
  • Netgroups – netgroup definuje práva pro různá zařízení a uživatele v síťovém prostředí
  • Services – služby běžící na zdrojovém stroji
  • Autofsm mapy – mapy sloužící pro připojení vzdálených diskových jednotek
  • Sudo pravidla – pravidla pro přístup k souborům, která omezují možnosti jako čtení, editace nebo mazání
  • SSH host – seznam SSH připojení

Literatura[editovat | editovat zdroj]

  • DATE, J.C. An Introduction to Database Systems. Reading: Addison Wesley Publishing Company, 1979. ISBN 0-201-01530-7. 
  • SSSD wiki [online]. Red Hat [cit. 2013-05-15]. Dostupné online. 
  • tevent: Main Page [online]. Samba team [cit. 2013-05-15]. Dostupné online.