Skip to content
Pavel Šťastný edited this page Jan 16, 2025 · 28 revisions

Úvod

Č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

Licence

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

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)

Lokální licence

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

image

Příznak policy - public / private

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

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ě:

image

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í

Logování pro NKP je dostupné na cestě: Správa oprávněníStatistikyGenerování logů pro NKGenerovat NKP logy

image

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 :

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í \, .

Zapojení do statistického modulu

Pro zapojení do statistického modulu je potřeba udělat tři kroky.

  1. Vytvoření servisního účtu, kterým bude modul přistupovat. Postup je vidět zde
  2. Přiřadit roli servisnímu účtu. Například: pristup_do_statistik
  3. V administračník rozhraní řiřadit akci Export statistik

image

Struktura logů odpovídá původnímu formátu definovanému zde

Synchronizace s aplikací SDNNT

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

image

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

image

eduid.cz/Keycloak

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.

Nastavení atributů pro keycloak

Atributy přebíráné z federace se definují přímo na federaci pomocí cesty: Kramerius(realm)SAML Federationeduid ** ⇒ Mappers

image

První atribut uvedu screenshotem, ostatní pouze výčtem: image

Stejně tak je třeba nadefinovat následující parametry:

  1. Name = cn, Attribute Name = urn:oid:2.5.4.3, Friendly name = cn
  2. Name = displayName, Attribute Name = urn:oid:2.16.840.1.113730.3.1.241, Friendly name = displayName
  3. Name = schacHomeOrganization, Attribute Name = urn:oid:1.3.6.1.4.1.25178.1.2.9, Friendly name = schacHomeOrganization
  4. Name = eduPersonScopedAffiliation, Attribute Name = urn:oid:1.3.6.1.4.1.5923.1.1.1.9, Friendly name = eduPersonScopedAffiliation
  5. Name = eduPersonUniqueId, Attribute Name = urn:oid:1.3.6.1.4.1.5923.1.1.1.13, Friendly name = eduPersonUniqueId
  6. Name = email importer, Attribute Name = urn:oid:0.9.2342.19200300.100.1.3, Friendly name = mail
  7. Name = eduPersonPrincipalName, Attribute Name = urn:oid:1.3.6.1.4.1.5923.1.1.1.6, Friendly name = eduPersonPrincipalName
  8. Name = eduPersonEntitlement, Attribute Name = urn:oid:1.3.6.1.4.1.5923.1.1.1.7, Friendly name = eduPersonEntitlement
  9. Name = firstname importer, Attribute Name = urn:oid:2.5.4.42, Friendly name = givenName
  10. Name = lastname importer, Attribute Name = urn:oid:2.5.4.4, Friendly name = sn
  11. Name =username importer, Mapper type = Username Template Importer, Template= ${ALIAS}.${NAMEID}, Target=BROKER_USERNAME
  12. 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
  1. 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:

image

a pokud jsou správně nastavené mappery na role, je vidět u přihlášeného uživatele i role dnnt_users

image

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

image

Jedná se pouze kopírování atributů uživatele:

image

Do JWT tokenu => Všechny atributu co máme k uživateli aby se projevili i přístupovém JWT tokenu :

image

Clone this wiki locally