Date: Fri, 29 Mar 2024 09:44:33 +0000 (GMT) Message-ID: <1128560931.3370.1711705473190@a2be6a7a0dbc> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_3369_1790730126.1711705473189" ------=_Part_3369_1790730126.1711705473189 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html
Detta =C3=A4r en guide f=C3=B6r hur man s=C3=A4tter upp sk pseud= onyma identifierare f=C3=B6r Shibboleth IdP:n. Instruktionerna =C3=A4r base= rade p=C3=A5 en Ubuntu eller debian-baserad Linux men motsvarande b=C3=B6r = funka =C3=A4ven p=C3=A5 andra unix-varianter och Windows.
En pseudonym identifierare =C3=A4r en permanent, anonym identifierare so= m =C3=A4r unik f=C3=B6r en kombination av IdP, SP och anv=C3=A4ndare. En s= =C3=A5dan identfierare kan inte anv=C3=A4ndas f=C3=B6r att korrelera inform= ation mellan SPer och inneh=C3=A5ller heller inte n=C3=A5gon persondata.
# apt-g= et install mysql-server .. under installationen s=C3=A4tts ett root-l=C3=B6senord ..
Skapa en databas...
# mysql= -p ... anv=C3=A4nd l=C3=B6senordet fr=C3=A5n installationen mysql> SET NAMES 'utf8'; SET CHARACTER SET utf8; CHARSET utf8; CREATE DATABASE IF NOT EXISTS shibboleth CHARACTER SET=3Dutf8; USE shibboleth; Query OK, 0 rows affected (0.00 sec)
Skapa en tabell (f=C3=B6r versioner fr=C3=A5n och med Shibboleth 3.2.0).= ..
mysql&g= t; 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, KEY persistentId (persistentId), KEY persistentId_2 (persistentId, deactivationDate), KEY localEntity (localEntity, peerEntity,localId), KEY localEntity_2 (localEntity, peerEntity, localId, deactivationDate) ) ENGINE=3DMyISAM DEFAULT CHARSET=3Dutf8; Query OK, 0 rows affected (0.00 sec)
skapa slutligen en user och ge r=C3=A4ttigheter p=C3=A5 tabellen. Denna =
user b=C3=B6r ha ett annat l=C3=B6senord =C3=A4n hemligt123
.
mysql&g= t; create user shibboleth identified by 'hemligt123'; Query OK, 0 rows affected (0.00 sec) mysql> grant ALL on shibboleth.shibpid to 'shibboleth'@'localhost'; Query OK, 0 rows affected (0.00 sec)
H=C3=A4mta en JDBC-connector f=C3=B6r mysql fr=C3=A5n http://dev.mysql.com/downloads/connector/j/ (tex mysql-connector-ja=
va-5.1.35.tar.gz). Packa upp i l=C3=A4mplig katalog och kopiera jar-filen (=
tex mysql-connector-java-5.1.35-bin.jar) till lib
-katalogen f=
=C3=B6r bin=C3=A4r-paketet till shibboleth. Detta =C3=A4r katalogen med en =
install.sh
och install.bat
. K=C3=B6r sedan =
install.sh} (eller {{instal.bat
om du anv=C3=A4nder Windows) f=C3=B6=
r att skapa en ny version av idp.war
med mysql-connectorn inst=
oppad. Starta sedan om din servlet-motor.
# cp my= sql-connector-java-5.1.13-bin.jar /opt/shibboleth-idp/edit-webapp/WEB-INF/l= ib/
N=C3=A4r du k=C3=B6r install.sh s=C3=A5 f=C3=A5r du fr=C3=A5gan om du vi= ll skriva =C3=B6ver den existerande installationen. Svara 'N' (nej) p=C3=A5= den fr=C3=A5gan - annars f=C3=B6rsvinner dina inst=C3=A4llningar. En ny wa= r-fil skapas alltid.
Studera loggarna f=C3=B6r din servlet-motor samt idp (idp-process.log). =
Om du f=C3=A5r felmeddelanden om att det inte g=C3=A5r att hitta mysql-conn=
ectorn i classpath s=C3=A5 har du misslyckats med att installera connectorn=
- g=C3=A5 tillbaka och kontrollera att en ny idp.war
faktiskt=
skapades.
Skapa f=C3=B6ljande DataConnector
i conf/attribute-re=
solver.xml
:
<res= olver:DataConnector id=3D"StoredId" xsi:type=3D"StoredId" xmlns=3D"urn:mace:shibboleth:2.0:resolver:dc" generatedAttributeID=3D"persistentId" sourceAttributeID=3D"uid" salt=3D"large random salt value"> =09<resolver:Dependency ref=3D"uid" /> <dc:BeanManagedConnection>MyGlobalDataSource</dc:BeanManag= edConnection> </resolver:DataConnector>
Ers=C3=A4tt "large random salt value" med ett stort (mellan 16 och 48 te=
cken) l=C3=A5ngt slumpm=C3=A4ssigt l=C3=B6senord. Ett s=C3=A4tt att generer=
a ett s=C3=A5dant =C3=A4r programmet apg
eller f=C3=
=B6ljande kommando:
# opens= sl rand -base64 36 2>/dev/null
Detta l=C3=B6senord =C3=A4r mycket viktigt att spara - om det g=C3=A5r f= =C3=B6rlorat eller beh=C3=B6ver =C3=A4ndras kommer alla pseudonymer att =C3= =A4ndras vilket betyder att alla SPer kommer att uppfatta inloggningar som = "nya".
Skapa f=C3=B6ljande bean i conf/global.xml
<!-- = A Global DataSource for use in the attribute-resolver.xml for DB connectivi= ty --> <bean id=3D"MyGlobalDataSource" class=3D"org.apache.commons.dbcp2.BasicD= ataSource" p:driverClassName=3D"com.mysql.jdbc.Driver" p:url=3D"jdbc:mysql://127.0.0.1:3306/shibboleth?autoReconnect=3Dtrue&am= p;amp;localSocketAddress=3D127.0.0.1&connectTimeout=3D1800&= initialTimeout=3D2&logSlowQueries=3Dtrue&autoReconnectForPo= ols=3Dtrue" p:username=3D"shibboleth" p:password=3D"hemligt123" p:maxIdle=3D"5" p:maxWaitMillis=3D"15000" p:testOnBorrow=3D"true" p:validationQuery=3D"select 1" p:validationQueryTimeout=3D"5" /> </beans>
Den mest aktuella information finns p=C3=A5 SAML IdP Best Current Practice
S=C3=A5 h=C3=A4r ska en persistent_id ser ut:
https:/= /idp-test.kau.se/idp/shibboleth!https://sp.swamid.se/shibboleth!mbz5i2+tqo7= PT4hlmeNrHpYCBdo=3D