-
Notifications
You must be signed in to change notification settings - Fork 27
Kramerius pro koronavirovou krizi
GIT repozitář se vzorovou konfiguraci
Placeholder kramerius.host v konfiguračních souborech a názvech adresářů přijde nahradit za jméno serveru, na kterým poběží kramerius pro VŠ.
NK v spolupráci s CESNET zřizuje postupně organizace pro VŠ a VVI mimo eduID. Pro jejich povolení a povolení IdP z federace eduID je potřebný ověřit platné členství v organizaci.
Aktuální exktrakt apache konfigurace pro povolený IdP
Do /etc/yum.repos.d/shibboleth.repo dát:
[shibboleth]
name=Shibboleth (CentOS_7)
# Please report any problems to https://issues.shibboleth.net
type=rpm-md
mirrorlist=https://shibboleth.net/cgi-bin/mirrorlist.cgi/CentOS_7
gpgcheck=1
gpgkey=https://download.opensuse.org/repositories/security:/shibboleth/CentOS_7/repodata/repomd.xml.key
enabled=1
A spustit:
yum install shibboleth.x86_64 -y
Upravit konfiguraci shibbolethu v adresáři /etc/shibboleth/ podle vzoru:
- shibboleth2.xml
- metadata-template.xml
Do souboru attribute-map.xml přidat:
<Attribute name="urn:oid:1.3.6.1.4.1.34998.3.3.1.11" id="voPersonExternalAffiliation"/>
<Attribute name="urn:oid:1.3.6.1.4.1.5923.1.1.1.13" id="eduPersonUniqueId"/>
Nainstalovat apache web server a smazat úvodní stránku:
yum install httpd.x86_64
rm /etc/httpd/conf.d/welcome.conf
Povolit poslouchání na portu 81 v /etc/httpd/conf/httpd.conf:
Listen 127.0.0.1.81
Nakonfigurovat Apache podle vzoru:
- Nastavení adresy Krameria se provádí v /etc/httpd/conf.d/000-kramerius.host.conf v:
RewriteCond %{ENV:authorized_by_attr} =true
RewriteCond %{ENV:authorized_by_idp} =true
RewriteRule ^/search/(.*) http://localhost:8080/search/$1 [P,L]
- V případě zoomify klienta povolit přístup na dlaždice imageserveru - zakomentovat či odstranit tento řádek:
RewriteCond %{QUERY_STRING} !stream=IMG_THUMB
RewriteRule /search/img - [R=403,NC,L]
- Vygenerovat filtr na IdP https://ds.eduid.cz/filter.php a obsah nakopírovat do /var/www/kramerius.host/wayf-filter.txt
- Vygenerovat soubor pro autorizaci podle IdP:
scripts/auth_idp.rules.php /var/www/kramerius.host/wayf-filter.txt > /etc/httpd/conf.d/auth_idp.rules
Pokud chcete povolit autentizaci i pro VO s využitím Perunu, tak spusťte - první argument skriptu je soubor s WAYF filtrem, další nepovinné parametry jsou dodatečné IdP, které nejsou zahrnuté ve filtru:
scripts/auth_idp.rules.php /var/www/kramerius.host/wayf-filter.txt "https://login.cesnet.cz/idp/" > /etc/httpd/conf.d/auth_idp.rules
Aby Perun fungoval, tak se musíte ještě zaregistrovat dle instrukcí eduid.cz
- Zeditovat ve /var/www/kramerius.host/ soubory nedostatecne-opravneni a podminky-zpristupneni.
- Zvalidovat metadata stažená z https://kramerius.host/Shibboleth.sso/Metadata validátorem a poté poslat do federace eduid.cz podepsaným mailem - viz stránky federace eduId.cz.
Autorizovaný uživatel musí:
- autentizovat se povoleným IdP - samotný WAYF filtr nestačí, pokročilý uživatel se může se znalostí správné URL přihlásit jakýmkoliv IdP, takže to na straně Apache musíme hlídat v souboru /etc/httpd/conf.d/auth_idp.rules, který se generuje na základě WAYF filtru skriptem scripts/auth_idp.rules.php:
...
SetEnvIf Shib-Identity-Provider https\://idp\.amu\.cz/idp/shibboleth authorized_by_idp=true
...
- musí mít správné atributy:
- Buď mít member v affiliation - přihlášení přes institucionální IdP:
SetEnvIf affiliation ^(.*)(member@(.+))(.*)$ authorized_by_attr=true
- V případě propojených účtů a přihlášením přes sociální sítě pak affilace chodí v voPersonExternalAffiliation:
SetEnvIf voPersonExternalAffiliation ^(.*)(member@ucl\.cas\.cz)(.*)$ authorized_by_attr=true
- Nebo musí být členem virtuální organizace (VO) v perunu, která je povolená v konfiguraci a chodí v atributu entitlement - musí zažádat o členství ve VO a nechat si ji schválit správcem VO:
SetEnvIf entitlement ^(.*)(urn\:geant\:cesnet\.cz\:group\:einfra\:Affiliations\:ucl\.cas\.cz#perun\.cesnet\.cz)(.*)$ authorized_by_attr=true
Přístupy se logují do souboru /var/log/httpd/kramerius_vs_access_log, u uživatele se loguje eppn a eduPersonUniqueId, které je tu kvůli sociální sítím, které neposílají eppn.
Přidat toto pravidlo do /etc/httpd/conf.d/000-kramerius.host.conf - viz komentář:
# Blokovani pristupu pro konkretniho uzivatele
SetEnvIf eppn ^1@mzk\.cz$ authorized_by_attr=false
Některé IdP neposkytují eppn, pak použít eduPersonUniqueId:
SetEnvIf eduPersonUniqueId ^1@mzk\.cz$ authorized_by_attr=false
Použijte poslední verzi klienta v1.7.1
Tato verze není výhradně určena pro otevřeného Krameria pro VŠ. Jen se rozšířila možnost konfigurace. http://www.digitalniknihovna.cz/ a https://kramerius-vs.mzk.cz/ používají stejnou verzi klienta, jen mají specifickou konfiguraci.
Příklad konfigurace klienta https://kramerius-vs.mzk.cz/
var APP_GLOBAL = {
share_url: "http://www.digitalniknihovna.cz/mzk/uuid/${UUID}",
ga: "UA-00000000",
enablePeriodicalVolumesYearsLayout: true,
enablePeriodicalIsssuesCalendarLayout: true,
defaultPeriodicalVolumesLayout: "years",
defaultPeriodicalIssuesLayout: "calendar",
publicFilterDefault: false,
bigHomeLogo: true,
hideHomeTitle: false,
advancedSearch: false,
logoutUrl: 'https://kramerius-vs.mzk.cz/Shibboleth.sso/Logout?return=https://kramerius-vs.mzk.cz/podminky-zpristupneni',
showMetadata: 'never',
showCitation: 'allways',
showSharing: 'allways',
showPdfGeneration: 'never',
showPrintPreparation: 'never',
showPageJpeg: 'never',
showPageOcr: 'never',
showTextSelection: 'never',
showImageCrop: 'never',
newestAll: true,
aboutPage: {
cs: '/assets/shared/about.cs.html',
en: '/assets/shared/about.en.html'
},
footer: {
cs: '/assets/shared/footer.cs.html',
en: '/assets/shared/footer.cs.html'
},
krameriusList: [
{
title: "Národní digitální knihovna pro studenty VŠ",
subtitle: "Určeno pro pedagogy a vědecké pracovníky institucí na úrovni vysokých škol a jejich studenty",
code: "mzk2",
logo: 'https://kramerius-vs.mzk.cz/assets/shared/logo.png',
url: 'https://kramerius-vs.mzk.cz',
richCollections: true,
joinedDoctypes: true,
lemmatization: false,
iiif: false,
mapSearch: true,
customRightMessage: true,
doctypes: ['monograph', 'periodical', 'map', 'graphic', 'archive', 'manuscript', 'soundrecording', 'sheetmusic'],
filters: ['doctypes', 'authors', 'keywords', 'geonames', 'collections', 'locations', 'languages'],
hiddenLocks: true
}
]
};
Následující hodnoty jsou buď nové ve verzi 1.7.1 a/nebo specifické pro otevřeného VŠ klienta.
Šablona odkazů pro sdílení a odkazy u citací odkazuje na jiného klienta. https://kramerius-vs.mzk.cz/ je dočasný klient a není vhodné na něj odkazovat z citací či generovaných permanentních odkazů. Použije se tedy odkaz na stejný dokument na http://www.digitalniknihovna.cz Použijte odkaz na svého běžného klienta, který by měl být nadmnožinou VŠ klienta a tuďíž obsahovat všechny odkazované objekty
Je-li vyplněno, pak se v toolbaru klienta zobrazí odkaz Odhlásit vedoucí na vyplněnou hodnotu. Použijte hodnotu VS_KRAMERIUS/Shibboleth.sso/Logout?return=VS_KRAMERIUS/podminky-zpristupneni
showMetadata, showCitation, showSharing, showPrintPreparation, showPdfGeneration, showPageJpeg, showPageOcr, showImageCrop, showTextSelection
Nastavuje viditelnost tlačítek pro Metadata, Sdílení, Citace, Příprava tisku, PDF, JPEF, Textový přepis, Výřez obrázku, Výběr textu. Každé může mít hodnotu
- allways = vždy zobrazit
- never = vždy schovat
- public = zobrazit jen u veřejných dokumentů
Tady se skryjí všechna tlačítka, která souvisí se stahováním obrázků nebo plných textů a ponechají se pouze tlačítka Sdílet a Citace
Mezi nejnovějšími na hlavní stránce se zobrazí také neveřejné dokumenty
Podtitulek na hlavní stránce (tam kde bývalo Digitální knihovna Kramerius)
Zde je vypnuto a použije se Zoomify. Přes IIIF je možné získat obrázky v plném rozlišení. Celý IIIF Image API endpoint je potom blokovaný na úrovni Apache
Ve fiters chybí 'accessibility‘, čímž se skryje filtr dostupnost v hledání, procházení a zaškrtávátko Pouze veřejné na hlavní stránce
Kompletně skryje zámečky v celé aplikaci