Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
| Obě strany předchozí revize Předchozí verze Následující verze | Předchozí verze | ||
| eduid:admins:howto:persistent_id:index [2011/06/27 12:17] – Ivan Novakov novakoi@fel.cvut.cz | cs:tech:idp:persistent-id [2019/12/13 09:39] (aktuální) – odstraněno 9ec128d6c1ed31e124c9d0343d1175613f20f405@einfra.cesnet.cz | ||
|---|---|---|---|
| Řádek 1: | Řádek 1: | ||
| - | ====== Persistentní ID ====== | ||
| - | |||
| - | U Shibboleth IdP 2.x existuje přímá podpora persistentních ID, která vyžaduje externí SQL databázi pro ukládání dat. V následujícím návodě používáme MySQL databázi. | ||
| - | |||
| - | ===== Databáze ===== | ||
| - | |||
| - | Vytvoříme databázi // | ||
| - | |||
| - | < | ||
| - | mysql> CREATE DATABASE shibboleth; | ||
| - | mysql> GRANT ALL PRIVILEGES ON shibboleth.* TO shib@localhost IDENTIFIED BY '< | ||
| - | </ | ||
| - | |||
| - | V databázi // | ||
| - | |||
| - | <code mysql> | ||
| - | CREATE TABLE IF NOT EXISTS shibpid ( | ||
| - | localEntity TEXT NOT NULL, | ||
| - | peerEntity TEXT NOT NULL, | ||
| - | principalName VARCHAR(255) NOT NULL default '', | ||
| - | localId VARCHAR(255) NOT NULL, | ||
| - | persistentId VARCHAR(36) NOT NULL, | ||
| - | peerProvidedId VARCHAR(255) default NULL, | ||
| - | creationDate timestamp NOT NULL default CURRENT_TIMESTAMP | ||
| - | on update CURRENT_TIMESTAMP, | ||
| - | deactivationDate timestamp NULL default NULL, | ||
| - | KEY persistentId (persistentId), | ||
| - | KEY persistentId_2 (persistentId, | ||
| - | KEY localEntity (localEntity(16), | ||
| - | KEY localEntity_2 (localEntity(16), | ||
| - | localId, deactivationDate) | ||
| - | ) ENGINE=MyISAM DEFAULT CHARSET=utf8; | ||
| - | </ | ||
| - | |||
| - | ===== Konfigurace Shibboleth IdP ===== | ||
| - | |||
| - | V konfiguračním souboru attribute-resolver.xml vytvoříme: | ||
| - | |||
| - | * StoredID connector, který se bude připojovat k SQL databázi | ||
| - | * příslušný PrincipalConnector, | ||
| - | * atributy a identifikátory (name identifiers), | ||
| - | |||
| - | ==== StoredID connector ==== | ||
| - | |||
| - | Vytvoříme StoredID connector a v něm nastavíme přístup k SQL databázi. | ||
| - | |||
| - | :!: **Je potřeba správně nastavit salt, viz níže.** | ||
| - | |||
| - | <code xml> | ||
| - | < | ||
| - | xsi: | ||
| - | generatedAttributeID=" | ||
| - | sourceAttributeID=" | ||
| - | salt=" | ||
| - | < | ||
| - | < | ||
| - | jdbcDriver=" | ||
| - | jdbcURL=" | ||
| - | jdbcUserName=" | ||
| - | jdbcPassword=" | ||
| - | </ | ||
| - | </ | ||
| - | |||
| - | Význam některých atributů: | ||
| - | * **sourceAttributeID** - název zdrojového atributu nesoucí identitu uživatele | ||
| - | * **generatedAttributeID** - název vygenerovaného atributu, výchozí hodnota je " | ||
| - | * **salt** - řetězec používaný během generování persistentních ID, jeho **minimální dálka musí byt 16 znaků, doporučená délka je 48 znaků**, je nezbytné jeho hodnotu zálohovat pro případ ztráty konfigurace, | ||
| - | |||
| - | ==== Stored ID PrincipalConnector ==== | ||
| - | |||
| - | Tento PrincipalConnector mapuje persistentní ID zpět na identitu z které bylo persistentní ID vytvořeno. Je potřeba v případě, že chceme, aby náš IdP podporoval tzv. // | ||
| - | |||
| - | <code xml> | ||
| - | < | ||
| - | | ||
| - | | ||
| - | | ||
| - | </ | ||
| - | |||
| - | ==== Atributy ==== | ||
| - | |||
| - | ===== Aktualizace metadat ===== | ||