200 likes | 339 Views
Installation und Konfiguration des Identity Provider Shibboleth Workshop Freiburg, 12.10.2005 Franck Borel, AAR-Projekt, UB Freiburg. Übersicht. Installation des Identity Providers Konfiguration des Identity Providers. Installation des Identity Providers. Wie gehen Sie vor?
E N D
Installation und Konfiguration des Identity Provider Shibboleth Workshop Freiburg, 12.10.2005 Franck Borel, AAR-Projekt, UB Freiburg
Übersicht • Installation des Identity Providers • Konfiguration des Identity Providers Franck Borel, AAR-Projekt, UB-Freiburg 2
Installation des Identity Providers • Wie gehen Sie vor? • Komponenten installieren und einzeln testen • Komponenten im Verbund testen • DemoAAR oder InQueue Testzugang einrichten und Identity Provider testen • Welche Kenntnisse sind von Vorteil? • Kenntnisse in der Administration von Apache und Tomcat • XML, SAML • Java, insbesondere J2EE • Wie groß ist der zeitliche Aufwand? • Je nach vorhandenen Kenntnissen 1 bis 3 Wochen Franck Borel, AAR-Projekt, UB-Freiburg 3
Installation des Identity Providers • Aus dem Nähkästchen: • Welche Anfangsschwierigkeiten hatten wir bei der Installation? • Unzureichende Dokumentation (z.B. fehlende oder falsche Angaben) • Hoher Zeitaufwand, bis das Prinzip und das Konzept verstanden wurde • Uneinheitliche Bezeichnung der Komponenten • Alles in einem Paket (SP, IdP und WAYF): Welche Datei gehört zu welcher Komponente? Franck Borel, AAR-Projekt, UB-Freiburg 4
Installation des Identity Providers Welche Komponenten müssen installiert werden? • Apache 1.3.26+ oder 2.0.x mit SSL (empfohlen 2.0.x) • Java 1.5.x • Tomcat 5.5.x • mod_jk • Ant • Shibboleth Identity Provider 1.3+ Folgende Kombinationen werden unterstützt: Java 1.4.x & Tomcat 4.1.18+ oder Java 1.5.x + Tomcat 5.5.x Vorsicht! Inkonsistenzen in den einzelnen Versionen Franck Borel, AAR-Projekt, UB-Freiburg 5
Installation des Identity Providers Übersicht zu den Komponenten des Identity Providers: Apache mod_jk Tomcat Shibboleth- Komponenten Authentifizierung über Tomcat oder Apache schützt SSO (HS) SSO (HS) Autorisierung LDAP AA Richtlinien für die Freigabe von Attributen SQL ARP Benutzerdaten ... Franck Borel, AAR-Projekt, UB-Freiburg 6
Konfiguration des Identity Providers Übersichtskarte zu den Konfigurationsdateien httpd.conf Apache mod_jk.conf server.xml mod_jk Workers.properties web.xml Tomcat resolver.xml idp.xml Identity Provider arp.site.xml metadata.xml log4j.properties Franck Borel, AAR-Projekt, UB-Freiburg 7
Konfiguration des Identity Providers • Die wichtigsten Konfigurationsaufgaben am Identity Provider: • Grundeinstellungen (idp.xml) • Einstellungen für die Authentifizierung (server.xml, web.xml) • Einstellungen für die Autorisierung (resolver.xml, arp.xml) Franck Borel, AAR-Projekt, UB-Freiburg 8
Konfiguration des Identity Providers • Grundeinstellungen an der Hauptkonfigurationsdatei idp.xml Attribute <?xml version="1.0" encoding="ISO-8859-1"?> <IdPConfig … AAUrl="https://idp.example.org:8443/shibboleth-idp/AA" resolverConfig="file:/opt/shibboleth-idp-1.3b/etc/resolver.xml" defaultRelyingParty="urn:mace:shibboleth:examples" providerId="https://idp.example.org/shibboleth"> <!- RelyingParty --> → z.B. Liste mit Service Providern <!– ReleasePolicyEngine --> →Weist auf die arp.xml <!– Logging --> → Einstellungen für die Log-Dateien <!- NameMapping --> → Zwischenablage des Principal <!- ArtifactMapper --> → Einstellungen für die Verwendung der Übertragungsmethode Browser/Artifact <!- Credentials --> → Zertifikate/Schlüssel <!- ProtocolHandler --> → Hier wird festgelegt, welche Art von Anfragen beantworten werden <!- MetadataProvider --> → Weist auf die metadata.xml </IdPConfig> Standard Relaying Party: z.B. Föderation oder Applikation Eindeutige ID des Identity Providers (URI) Franck Borel, AAR-Projekt, UB-Freiburg 9
Konfiguration des Identity Providers • Beispiel für eine formularbasierte Authentifizierung mit MemoryRealm • server.xml bearbeiten • web.xml bearbeiten • Login-Seite mit FORM-Authentifizierung und eine FORM-Fehlerseite erstellen Franck Borel, AAR-Projekt, UB-Freiburg 10
Konfiguration des Identity Providers Formularbasierte Authentifizierung mit MemoryRealm: XML-Datei mit Benutzername/Passwort server.xml … <Context path="/shibboleth-13b" docBase="/srv/www/webapps/shibboleth-13b" debug=„4" reloadable="true" <Realmclass Name="org.apache.catalina.realm.MemoryRealm" debug="4" pathname="conf/tomcat-user.xml"/> </context> … Tomcat Einbinden der Klasse MemoryRealm debug level (0-4 / default = 0) Franck Borel, AAR-Projekt, UB-Freiburg 11
Konfiguration des Identity Providers Formularbasierte Authentifizierung mit MemoryRealm web.xml … <login-config> <auth-method>FORM</auth-method> <realm-name>MemoryRealm</realm-name> <form-login-config> <form-login-page>/login.jsp</form-loggin-page> <form-error-page>/error.jsp</form-error-page> </form-login-config> </login-config> <security-role> <role-name>demo</role-name> </security-role> … Identity Provider Authenti-fizierungs- methode FORM-Seiten Benutzergruppe Franck Borel, AAR-Projekt, UB-Freiburg 12
Konfiguration des Identity Providers Formularbasierte Authentifizierung mit MemoryRealm Aufruf von j_security_check login.jsp … <form method="POST" action="<%=response.encodeURL('j_security_check')%> … <input type="text" name="j_username" /> <input type="password" name="j_password"> … </form> … Identity Provider Benutzername /Passwort Franck Borel, AAR-Projekt, UB-Freiburg 13
Konfiguration des Identity Providers Vordefinierte Realms: • MemoryRealm: Schnittstelle zur Authentifizierung gegen ein statisches Objekt (z.B. Textdatei) • JDBCRealm: Schnittstelle zu einer relationalen Datenbank mit Hilfe des JDBC-Treibers • JAASRealm: Schnittstelle zur Authentifizierung via Java Authentication & Authorization Service Famework • JNDIRealm: Schnittstelle zur Authentifizierung mit LDAP Franck Borel, AAR-Projekt, UB-Freiburg 14
Konfiguration des Identity Providers Die Konfiguration der Attribute Authority (AA) • Die Konfiguration und Anbindung der Attribute Authority wird in der resolver.xml-Datei vorgenommen. • In der arp.site.xml können Attribute gefiltert werden • In der arp.site${PRINCIPALNAME}.xml können Attribute abhängig vom aktuellen Benutzer gefiltert werden. • Drei vordefinierte Konfigurationsdateien zur Anbindung an ein bestehendes Speicherobjekt stehen zur Verfügung: • resolver.jdbc (JDBC) • resolver.ldap (LDAP) • resolver.xml (für Testzwecke mit festkodierten Werten → echoresponder) • Sie können auch eigene Resolver erstellen (Thema im nächsten Workshop ? ) Franck Borel, AAR-Projekt, UB-Freiburg 15
Konfiguration des Identity Providers • Beispiel einer Konfiguration mit einem JDBC-Resolver: Anpassen der idp.xml idp.xml Legt fest, welche Resolver-Konfigurationsdatei verwendet werden soll. <?xml version="1.0" encoding="ISO-8859-1"?> <IdPConfig xmlns="urn:mace:shibboleth:idp:config:1.0" xmlns:cred="urn:mace:shibboleth:credentials:1.0" xmlns:name="urn:mace:shibboleth:namemapper:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mace:shibboleth:idp:config:1.0 ../schemas/shibboleth-idpconfig-1.0.xsd" AAUrl="https://aar.ub-freiburg.de:8443/shibboleth-idp/AA" resolverConfig="file:/opt/shibboleth-idp-1.3b/etc/resolver.jdbc.xml" defaultRelyingParty="urn:mace:shibboleth:examples" providerId="https://aar.ub-freiburg.de/shibboleth"> … </IdPConfig> Attribute Authority und sSSO müssen bei der Verwendung von SSL auf getrennten Ports laufen! Franck Borel, AAR-Projekt, UB-Freiburg 16
Konfiguration des Identity Providers • Beispiel einer Konfiguration mit einem JDBC-Resolver: Anpassen der resolver.jdbc.xml Eindeutige Attributreferenz resolver.xml <AttributeResolver …> <SimpleAttributeDefinition id="urn:mace:dir:attribute-def:member" sourceName="member"> <DataConnectorDependency requires="db1"/> </SimpleAttributeDefinition> <JDBCDataConnector id="db1" dbURL="jdbc:postgresql://aar.ub.uni-freiburg.de/redi?user=postgres&password=test" dbDriver="org.postgresql.Driver" maxActive="10" maxIdle="5"> <Query>Select member from users where name = ?</Query> </JDBCDataConnector> <CustomDataConnector id="echo" class="edu.internet2.middleware.shibboleth.aa.attrresolv.provider.SampleConnector"/> </AttributeResolver> Referenz zur Datenbankverbindung Verbindung zur Datenbank SQL-Abfrage (? = %PRINCIPAL%) Franck Borel, AAR-Projekt, UB-Freiburg 17
Konfiguration des Identity Providers • Beispiel einer Konfiguration mit einem JDBC-Resolver: Anpassen der arp.xml arp.xml Empfänger <?xml version="1.0" encoding="UTF-8"?> <AttributeReleasePolicy xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xmlns="urn:mace:shibboleth:arp:1.0" xsi:schemaLocation="urn:mace:shibboleth:arp:1.0 shibboleth-arp-1.0.xsd" > <Rule> <Target><AnyTarget/></Target> <Attribute name="urn:mace:dir:attribute-def:member"> <AnyValue release="permit"/> </Attribute> </Rule> </AttributeReleasePolicy> Erlauben? Attributname Franck Borel, AAR-Projekt, UB-Freiburg 18
Schnittstellen erweitern • Steht keine geeignete Schnittstelle für die Authentifizierung zur Verfügung können eigene Schnittstellen mit Hilfe der JAAS-Schnittstelle entwickelt werden. • Fehlt eine Schnittstelle für die Autorisierung müssen eigene Resolver erstellt werden. Franck Borel, AAR-Projekt, UB-Freiburg 19
Danke für Ihre Aufmerksamkeit! Franck Borel, AAR-Projekt, UB-Freiburg 20