Toto je starší verze dokumentu!
Na této stránce se nachází návod, jak do linuxové distribuce Debian nainstalovat MariaDB pro potřeby Shibboleth IdP.
Databázi MariaDB nainstalujeme následujícím příkazem:
# Instalace MariaDB apt install --no-install-recommends mariadb-server mariadb-client libmariadb-java
Pomocí openssl
si vygenerujeme silné heslo pro přístup k databázi uživatelem root:
# Vygenerování silného hesla pro uživatele root openssl rand -hex 20
Spustíme utilitu mysql_secure_installation
a postupujeme dle instrukcí v terminálu:
# Spuštení mysql_secure_installation
mysql_secure_installation
Máme-li persistentní identifikátory ze stávající instalace Shibboleth IdP, databázi si samozřejmě přesuneme.
Na stávajícím serveru provedeme export:
mysqldump shibboleth > ~/persistentIDs.sql
Soubor persistentIDs.sql
bezpečně překopírujeme na nový server, např. pomocí scp
, a po vytvoření databáze shibboleth importujeme stávající identifikátory:
mysql -u root -p shibboleth < ~/persistentIDs.sql
Přihlásíme se do MariaDB:
# Přihlášení k MariaDB
mysql
Vytvoříme databázi shibboleth a v ní tabulky shibpid a StorageRecords.
# Vytvoříme databázi 'shibboleth' a tabulky 'shibpid' a 'StorageRecords' SET NAMES 'utf8'; SET CHARACTER SET utf8; CHARSET utf8; CREATE DATABASE IF NOT EXISTS shibboleth CHARACTER SET=utf8; USE shibboleth; CREATE TABLE IF NOT EXISTS `shibpid` ( `localEntity` VARCHAR(255) NOT NULL, `peerEntity` VARCHAR(255) NOT NULL, `principalName` VARCHAR(255) NOT NULL DEFAULT '', `localId` VARCHAR(255) NOT NULL, `persistentId` VARCHAR(50) NOT NULL, `peerProvidedId` VARCHAR(255) DEFAULT NULL, `creationDate` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `deactivationDate` TIMESTAMP NULL DEFAULT NULL, PRIMARY KEY (`localEntity`, `peerEntity`, `persistentId`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE IF NOT EXISTS `StorageRecords` ( `context` VARCHAR(255) NOT NULL, `id` VARCHAR(255) NOT NULL, `expires` BIGINT DEFAULT NULL, `value` LONGTEXT NOT NULL, `version` BIGINT NOT NULL, PRIMARY KEY (`context`, `id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Pomocí příkazu DESCRIBE
si můžeme zobrazit, jak tabulky vypadají.
# Zobrazení definice tabulek 'shibpid' a 'StorageRecords' DESCRIBE shibpid; DESCRIBE StorageRecords;
Tabulka shibpid musí vypadat následovně:
+------------------+--------------+------+-----+---------------------+-------------------------------+ | Field | Type | Null | Key | Default | Extra | +------------------+--------------+------+-----+---------------------+-------------------------------+ | localEntity | varchar(255) | NO | PRI | NULL | | | peerEntity | varchar(255) | NO | PRI | NULL | | | principalName | varchar(255) | NO | | | | | localId | varchar(255) | NO | | NULL | | | persistentId | varchar(50) | NO | PRI | NULL | | | peerProvidedId | varchar(255) | YES | | NULL | | | creationDate | timestamp | NO | | current_timestamp() | on update current_timestamp() | | deactivationDate | timestamp | YES | | NULL | | +------------------+--------------+------+-----+---------------------+-------------------------------+ 8 rows in set (0.002 sec) +---------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+--------------+------+-----+---------+-------+ | context | varchar(255) | NO | PRI | NULL | | | id | varchar(255) | NO | PRI | NULL | | | expires | bigint(20) | YES | | NULL | | | value | longtext | NO | | NULL | | | version | bigint(20) | NO | | NULL | | +---------+--------------+------+-----+---------+-------+ 5 rows in set (0.003 sec)
Vytvoříme uživatele shibboleth, který bude k databázi přistupovat pomocí silného hesla, které si opět vygenerujeme pomocí příkazu openssl
:
# Vygenerování silného hesla pro uživatele 'shibboleth' openssl rand -hex 20
Vytvoříme uživatele shibboleth a použijeme výše vygenerované silné heslo:
# Vytvoření uživatele 'shibboleth' GRANT ALL PRIVILEGES ON shibboleth.* TO 'shibboleth'@'localhost' IDENTIFIED BY 'f6603c2fd2a48bc722c14ca88bb08a762f3478c4'; FLUSH PRIVILEGES;
Pro ověření funkčnosti vytvořeného účtu se pokusíme přihlásit k databázi.
# Přihlášení k MariaDB uživatelem 'shibboleth' mysql -u shibboleth -p shibboleth
Terminál vyzve k zadání hesla a po jeho úspěšném ověření dojde k přihlášení k MariaDB.
Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. [...] MariaDB [shibboleth]>
Máme-li nainstalovanou MariaDB, můžeme pokračovat instalací Jetty.
CESNET, z. s. p. o.
Generála Píky 26
16000 Praha 6
info@cesnet.cz
Tel: +420 234 680 222
GSM: +420 602 252 531
support@cesnet.cz