Módosítások

Shib2IdpTomcat6

3 093 bájt hozzáadva, 2009. szeptember 25., 10:45
nincs szerkesztési összefoglaló
{{TRASH|Ezt a lapot össze kellene vonni [[Shib2IdpInstall|ezzel]], és az elavult infókat frissíteni}}
 
 
 
== JVM beállítások ==
A Tomcat6 jelenleg nem működik együtt tökéletesen 6-os JVM-mel (egész pontosan a commons-dbcp csomag a JDBC API pici megváltozása miatt), ezért egyelőre ajánlott 5-ös JVM-mel futtatni - FIXME.
A Shibboleth2 IdP nem hajlandó elindulni a JVM-mel szállított Sun-féle Xerces implementációval, ezért az IdP csomaggal szállított Xerces és Xalan implementációkat be kell másolni a $JAVA_HOME/lib/endorsed könyvtárba, vagy akövetkező kapcsolóval kell indítani a Tomcat-et:
java -Djava.endorsed.dirs=/path/to/xerces-libs
 
kapcsolóval kell indítani a tomcatet.
 
== Shibboleth IdP telepítése ==
cp ${SHIB_HOME}/war/idp.war /var/lib/tomcat-6/webapps/ROOT
== LDAP Autentikáció (FORM) beállítása Új SAML SP felvétele ==Szerkesszük Egy új SP felvételéhez csak az SP metaadatára van szükségünk SAMLv2 szabványos XML formában.A metaadatot vagy fizikailag el kell helyezni a ${SHIB_HOME}/metadata könyvtárban, vagy egy URL-en elérhetővé kell tenni a Shibboleth IdP számára. Metaadat-források megadása a ${SHIB_HOME}/conf/loginrelying-party.config xml -ot:ben
ShibUserPassAuth {<!-- több provider megadása láncolással --> edu.vt.middleware.ldap.jaas.LdapLoginModule required host <MetadataProvider id="ShibbolethMetadata" xsi:type="ChainingMetadataProvider" xmlns="ldapurn:mace:shibboleth:2.example.com0:metadata"> <!-- Fájlrendszerből olvasott metaadat --> <!-- Fill in metadataFile attribute with deployment specific information --> base <MetadataProvider id="ousp1" xsi:type=people,dc=example,dc=com" sslFilesystemMetadataProvider" xmlns="falseurn:mace:shibboleth:2.0:metadata" serviceUser metadataFile="userid=example${SHIB_HOME}/metadata/sp1-system,oumeta.xml" maintainExpiredMetadata=systems,dc=example,dc=com"true"> serviceCredential <!--Metaadat aláírás ellenőrzése --> <!--MetadataFilter xsi:type="passwordSignatureValidation" userFieldtrustEngineRef="uidshibboleth.MetadataTrustEngine";/--> </MetadataProvider> }</MetadataProvider>
A serviceUser és a serviceCredential kihagyható, ekkor anonymous bind történik (azonban ilyen esetben a helytelen név / jelszó megadása LDAP Exception-t okoz és nem a jól értelmezhető hibás név / jelszó üzenetet adja a felhasználónak)
Ezután be kell állítani, hogy ezt a bekonfigurált autentikációt használja a Shibboleth (== SAMLv2 Profilok beállítása ==A ${SHIB_HOME}/conf/handlersrelying-party.xml)-ben kell a következő módosításokat eszközölni:
<LoginHandler xsi:type="UsernamePassword" authenticationDuration="240" jaasConfigurationLocation="file://${SHIB_HOME}/conf/login.config"> <AuthenticationMethod>urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</AuthenticationMethod> </LoginHandler>Először a SAMLv2 SSO Profil alapbeállításai
Az authenticationDuration paraméter elhagyása esetén az IdP 30 perc érvényességgel állítja ki <!-- a munkamenetet (saját IDP entityID-je, amivel minden SP-hez egyszerre beállíthatjuk mint provider --> <AuthnStatement SessionNotOnOrAfterDefaultRelyingParty provider="https://idp.example..com/idp/shibboleth" defaultSigningCredentialRef="IdPCredential">), tehát akár aktív tevékenység esetén is 30 perc múlva lejár a felhasználó session-je. Ezt érdemes tehát átállítani magasabb értékre.
A FORM <!-ot az idp.war -ban tudjuk testreszabni 5 perces assertion érvényesség (login.jspóraszinkronizálás IdP - SP között fontos!). A szállított login.jsp által beállított FORM tag és INPUT tagválaszok kötelező digitális aláírása Attribútum push -ek tartalmát ne módosítsuk!-> <ProfileConfiguration xsi:type="saml:SAML2SSOProfile" includeAttributeStatement="true" assertionLifetime="300000" assertionProxyCount="0" signResponses="always" signAssertions="never" encryptAssertions="conditional" encryptNameIds="conditional" /> </DefaultRelyingParty>
SP esetén az alapértelmezett beállítások felülírása: <RelyingParty id="https://sp1.example.com/shibboleth" provider= Új SP felvétele "https://idp.example.com/idp/shibboleth" defaultSigningCredentialRef="IdPCredential"> <ProfileConfiguration xsi:type="saml:SAML2SSOProfile" encryptAssertions="never"/> </RelyingParty>
== Attribútum kiadása (címtárból) ==
Egy attribútum kiadásához két dolgot kell beállítani: a resolver-t és a filter-t. Előbbi felelős az attribútum megszerzéséért és a session kontextusba helyezésért, utóbbi az SP felé történő kiadást szabályozza.
 
Új attribútum beolvasása címtárból (${SHIB_HOME}/conf/attribute-resolver.xml) és SAMLv1 illetve SAMLv2 AttributeStatement -be kódolása:
 
<resolver:AttributeDefinition id="email" xsi:type="Simple"
xmlns="urn:mace:shibboleth:2.0:resolver:ad"
sourceAttributeID="mail">
<resolver:Dependency ref="myLDAP" />
<resolver:AttributeEncoder xsi:type="SAML1String"
xmlns="urn:mace:shibboleth:2.0:attribute:encoder"
name="urn:mace:dir:attribute-def:mail" />
<resolver:AttributeEncoder xsi:type="SAML2String"
xmlns="urn:mace:shibboleth:2.0:attribute:encoder"
name="urn:oid:0.9.2342.19200300.100.1.3" friendlyName="mail" />
</resolver:AttributeDefinition>
 
A resolver:Dependency adja meg azt a forrást, amiből az attribútum feloldásra kerül. Ez esetünkben a myLDAP:
 
<resolver:DataConnector id="myLDAP" xsi:type="LDAPDirectory"
xmlns="urn:mace:shibboleth:2.0:resolver:dc"
ldapURL="ldap://ldap.example.com" baseDN="ou=people,dc=example,dc=com"
principal="userid=shibboleth,ou=systems,dc=example,dc=com"
principalCredential="password">
<FilterTemplate>
<![CDATA[
(uid=$requestContext.principalName)
]]>
</FilterTemplate>
</resolver:DataConnector>
 
== NameIdentifier leképzés ==
Szintén az attribute-resolver.xml -ben kell beállítani az Assertion Subject NameID -t, ami az IdP-SP közötti azonosítóért felel. Példaképp egy SAMLv2 Tranziens azonosítót a következőképp állíthatunk be:
 
<resolver:AttributeDefinition id="transientId" xsi:type="TransientId" xmlns="urn:mace:shibboleth:2.0:resolver:ad">
<resolver:AttributeEncoder xsi:type="SAML2StringNameID"
xmlns="urn:mace:shibboleth:2.0:attribute:encoder"
nameFormat="urn:oasis:names:tc:SAML:2.0:nameid-format:transient" />
</resolver:AttributeDefinition>
<resolver:PrincipalConnector xsi:type="Transient"
xmlns="urn:mace:shibboleth:2.0:resolver:pc"
id="saml2Transient"
nameIDFormat="urn:oasis:names:tc:SAML:2.0:nameid-format:transient" />

Navigációs menü