Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

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:38] – Ivan Novakov novakoi@fel.cvut.czcs: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 //shibboleth// a nastavíme práva pro uživatele, pod kterým se bude připojovat Shibboleth: 
- 
-<code> 
-mysql> CREATE DATABASE shibboleth; 
-mysql> GRANT ALL PRIVILEGES ON shibboleth.* TO shib@localhost IDENTIFIED BY '<heslo>'; 
-</code> 
- 
-V databázi //shibboleth// vytvoříme následující tabulku: 
- 
-<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, deactivationDate), 
-  KEY localEntity (localEntity(16), peerEntity(16), localId), 
-  KEY localEntity_2 (localEntity(16), peerEntity(16), 
-  localId, deactivationDate) 
-) ENGINE=MyISAM DEFAULT CHARSET=utf8; 
-</code> 
- 
-===== Instalace JDBC connectoru ===== 
- 
-Pro přístup k SQL databázi z prostředí Shibboleth IdP potřebujeme nainstalovat příslušný JDBC connector. Stahneme ho [[http://dev.mysql.com/downloads/connector/j/|ze stránek MySQL]] a rozbalíme ho v libovolném adresáři: 
- 
-<code> 
-# cd /opt/tmp/ 
-# tar xvfz mysql-connector-java-5.1.16.tar.gz 
-</code> 
- 
-Zkopírujeme příslušnou .jar knihovnu do adresáře lib/ v distribuci Shibboleth IdP: 
- 
-<code> 
-# cp mysql-connector-java-5.1.16/mysql-connector-java-5.1.16-bin.jar /opt/tmp/shibboleth-identityprovider-2.x.x/lib/ 
-</code> 
- 
-Poté musíme spustit instalační skript Shibboleth IdP. Pokud jde o první spuštění instalačního skriptu, podívejte se do [[..:deploy:idp:install:common:#instalace|instalačního návodu]]. Pokud jste instalaci už provedli anebo pokud nastavujete persistentní ID dodatečně, u otázky, zda přepisovat konfiguraci odpovězte negativně: 
-<code> 
-The directory '/opt/shibboleth-idp-2.3.0' already exists.  Would you like to overwrite this Shibboleth configuration? (yes, [no]) 
-no 
- 
-</code> 
- 
-===== 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, který má na starost zpětný překlad persistentního ID na identitu uživatele 
-  * atributy a identifikátory (name identifiers), které budou obsahovat persistentní ID 
- 
-==== 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> 
-    <resolver:DataConnector id="myStoredId" 
-        xsi:type="dc:StoredId" 
-        generatedAttributeID="storedId" 
-        sourceAttributeID="uid" 
-        salt="SALT"> 
-        <resolver:Dependency ref="uid" /> 
-        <dc:ApplicationManagedConnection 
-            jdbcDriver="com.mysql.jdbc.Driver" 
-            jdbcURL="jdbc:mysql://127.0.0.1:3306/shibboleth?autoReconnect=true" 
-            jdbcUserName="shib" 
-            jdbcPassword="HESLO" /> 
-    </resolver:DataConnector> 
-</code> 
- 
-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 "storedID" 
-  * **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, aby nedošlo ke ztrátě všech persistentních ID  
- 
-==== 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. //persistentní name identifikátory// (name identifier). Umístíme ho na konci souboru attribute-resolver.xml za ostatními PrincipalConnectory: 
- 
-<code xml> 
-<resolver:PrincipalConnector xsi:type="pc:StoredId" xmlns:pc="urn:mace:shibboleth:2.0:resolver:pc" 
-                             id="saml2Persistent" 
-                             nameIDFormat="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent"  
-                             storedIdDataConnectorRef="myStoredId"/> 
-</code> 
- 
-==== Atributy ==== 
- 
-===== Aktualizace metadat =====