-
Notifications
You must be signed in to change notification settings - Fork 27
DNNT ‐ K7
Článek popisuje zapojení digitální knihovny K7 ddo režimu DNNT.
Popisovaná verze: 7.0.32
Minimální verze aprobovaná Národní knihovnou ČR pro zpřístupnění dokumentů v režimu DNNT: 7.0.29
Ve verzi K7 se upustilo od názvosloví dnnt značky
a nahradili ji licence
v obecnějším slova smyslu. Veškeré přístupy na chráněná i nechráněná díla jsou řízeny licencí. Na základě rozhodnutí vývojového týmu se rozeznávají dva typy licencí:
Globální licence mají působnost po celé ČR a měly by být definovány a interpretovány stejně. Všechny globální licence jsou definovány zde a jsou přítomny ve standardní distribuci krameria. Mezi globální licence patří i licence
Poznámka: Od 1.1.2024 se od licence dnntt
upustilo. Seznam DNNT již tuto licenci novým dílům nepřiřazuje a starší díla se postupně převádí na licenci dnnto
případně se jim licence ubírá. (Pokudy bylo dílo ze seznamu vyřazeno)
Slouží k tomu aby si jednotlivé instituce mohly definovat vlastní licencea je vždy prefixovaná zkratkou knihovny. Příklad: knav_VIP
případně mzk_public-muo
,mzk_public-contract
.
Licence jsou vidět v administračním rozhrání na následující cestě:
Správa oprávnění ⇒ Licence
V rámci vývojových schůzek se dohodlo, že se pro všechny instance přistupující do DNNT a ČDK opustí příznak policy:public/private a je nahradí je lícencí:
Pro snadné překlopení příznaku na licence vznikl proces, který je popsán zde
Práva jsou definována obdobně jako v K5, jedná se o vazbu role, akce, dodatečné podmínky a licence. Práva lze definovat na následující cestě:
Správa oprávnění ⇒ Akce
a pro přistup k dnnto dokumentům by situace mohla vypadat následovně:
Tedy uživatel s rolí dnnt_users bude schopen číst dokumenty, které budou mít licencí dnnto.
Poznámka:Název role dnnt_users
je pouze označením a může být ve skutečnosti pojmenována libovolně. Klíčové je, aby daná role byla správně propojena s licencí.
Logování pro NKP je dostupné na cestě: Správa oprávnění ⇒ Statistiky ⇒ Generování logů pro NK ⇒ Generovat NKP logy
Tlačítkem se spustí proces, který vygeneruje logy a připraví zip soubor dostupný přímo z administračního rozhraní. Na proces je možno rovněž navázat emailovou notifikaci. Pro tuto notifikaci je nutno definovat :
- Musí být nakonigurované proměnné v souboru
mail.properties
:- Proměnné pro nastavení přístupu na smtp server. Definice je popsána zde - https://docs.oracle.com/javaee/7/api/javax/mail/package-summary.html#package.description
- V souboru
configuration.properties
nasledující:
nkp.logs.notification.from=emailová adresa odesílatele
nkp.logs.notification.recipients=emailové adresy příjmeců oddělené čárkami
nkp.logs.notification.subject=Předmět zprávy
nkp.logs.notification.text=Text mailu. Pro vložení nového řádku použijte escape sekvenci \n. P Pokud chcete vložit čárku, je třeba ji escapovat pomocí \, .
Pro zapojení do statistického modulu je potřeba udělat tři kroky.
- Vytvoření servisního účtu, kterým bude modul přistupovat. Postup je vidět zde
- Přiřadit roli servisnímu účtu. Například: pristup_do_statistik
- V administračník rozhraní řiřadit akci Export statistik
Struktura logů odpovídá původnímu formátu definovanému zde
Synchronizace se seznamem je podobná jako v K5 verzi. V aplikaci je možné ji nalézt kliknutím na Repozitář ⇒ Hromadné úpravy ⇒ ** ⇒ Spustit proces kontroly SDNNT/Kramerius
Výsledkem je opětovný dialogový okno rozdílů mezi seznamem DNNT a konkrétní instancí Krameria. Tento dialog je dostupný pomocí tlačítka Zobrazit výsledek procesu
V digitální knihovně K7 se pro autentizaci používá systém Keycloak, který je nutné integrovat do federace eduid.cz. Standardní distribuce Keycloaku tuto funkcionalitu nenabízí, a proto je používán upravený fork dostupný na adrese https://github.com/eosc-kc/keycloak. Plný popis instalace je vidět zde.
Atributy přebíráné z federace se definují přímo na federaci pomocí cesty: Kramerius(realm) ⇒ SAML Federation ⇒ eduid ** ⇒ Mappers
První atribut uvedu screenshotem, ostatní pouze výčtem:
Stejně tak je třeba nadefinovat následující parametry:
Name = cn, Attribute Name = urn:oid:2.5.4.3, Friendly name = cn
Name = displayName, Attribute Name = urn:oid:2.16.840.1.113730.3.1.241, Friendly name = displayName
Name = schacHomeOrganization, Attribute Name = urn:oid:1.3.6.1.4.1.25178.1.2.9, Friendly name = schacHomeOrganization
Name = eduPersonScopedAffiliation, Attribute Name = urn:oid:1.3.6.1.4.1.5923.1.1.1.9, Friendly name = eduPersonScopedAffiliation
Name = eduPersonUniqueId, Attribute Name = urn:oid:1.3.6.1.4.1.5923.1.1.1.13, Friendly name = eduPersonUniqueId
Name = email importer, Attribute Name = urn:oid:0.9.2342.19200300.100.1.3, Friendly name = mail
Name = eduPersonPrincipalName, Attribute Name = urn:oid:1.3.6.1.4.1.5923.1.1.1.6, Friendly name = eduPersonPrincipalName
Name = eduPersonEntitlement, Attribute Name = urn:oid:1.3.6.1.4.1.5923.1.1.1.7, Friendly name = eduPersonEntitlement
Name = firstname importer, Attribute Name = urn:oid:2.5.4.42, Friendly name = givenName
Name = lastname importer, Attribute Name = urn:oid:2.5.4.4, Friendly name = sn
Name =username importer, Mapper type = Username Template Importer, Template= ${ALIAS}.${NAMEID}, Target=BROKER_USERNAME
Name =DNNTUser mapper, Mapper type = Advanced Attribute to role, Syncmode=force
key:eduPersonScopedAffiliation, value:member.*
key:eduPersonEntitlement, value:urn:mace:dir:entitlement:common-lib-terms
Name =DNNTUsersMapper_CUNI, Mapper type = Advanced Attribute to role, Syncmode=force
key:eduPersonScopedAffiliation, value:library-walk-in.*
key:eduPersonEntitlement, value:urn:mace:dir:entitlement:common-lib-terms
Tyto atributy se projevují ve všech přihlášených uživatelích přes federace a jdou vidět přímo v keycloaku:
a pokud jsou správně nastavené mappery na role, je vidět u přihlášeného uživatele i role dnnt_users
Pro správnou propagaci do NKP logů je ještě nutné zajistit, aby se atributy přenášely společně s přístupovým JWT tokenem. To je zajištěno pomocí nastavení:
Kramerius(realm) ⇒ Clients(krameriusClient) ⇒ Mappers
Jedná se pouze kopírování atributů uživatele:
Do JWT tokenu => Všechny atributu co máme k uživateli aby se projevili i přístupovém JWT tokenu :