Upload
owen-ramsey
View
27
Download
2
Embed Size (px)
DESCRIPTION
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? - PowerPoint PPT Presentation
Citation preview
Installation und Konfiguration des Identity Provider
Shibboleth Workshop Freiburg, 12.10.2005
Franck Borel, AAR-Projekt, UB Freiburg
Franck Borel, AAR-Projekt, UB-Freiburg 2
Übersicht
• Installation des Identity Providers
• Konfiguration des Identity Providers
Franck Borel, AAR-Projekt, UB-Freiburg 3
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 4
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 5
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 6
Installation des Identity Providers
Übersicht zu den Komponenten des Identity Providers:
Apachemod_jk
Tomcat
SSO (HS)
AALDAP
ARPSQL
Authentifizierung über Tomcat oder Apache schützt
SSO (HS)Autorisierung
BenutzerdatenRichtlinien für die Freigabe
von Attributen...
Shibboleth-Komponenten
Franck Borel, AAR-Projekt, UB-Freiburg 7
Konfiguration des Identity Providers
Übersichtskarte zu den Konfigurationsdateien
Tomcat
Apache
Identity Provider
server.xml
web.xml
idp.xml
metadata.xml arp.site.xml
resolver.xml
httpd.conf
mod_jk.conf
Workers.properties
log4j.properties
mod_jk
Franck Borel, AAR-Projekt, UB-Freiburg 8
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 9
Konfiguration des Identity Providers
• Grundeinstellungen an der Hauptkonfigurationsdatei idp.xml
<?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>
Attribute
Standard Relaying
Party: z.B. Föderation
oder Applikation
Eindeutige ID des Identity
Providers (URI)
Franck Borel, AAR-Projekt, UB-Freiburg 10
Konfiguration des Identity Providers
• Beispiel für eine formularbasierte Authentifizierung mit MemoryRealm1. server.xml bearbeiten
2. web.xml bearbeiten
3. Login-Seite mit FORM-Authentifizierung und eine FORM-Fehlerseite erstellen
Franck Borel, AAR-Projekt, UB-Freiburg 11
Konfiguration des Identity Providers
Formularbasierte Authentifizierung mit MemoryRealm:
…<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
server.xml
Einbinden der Klasse
MemoryRealm
XML-Datei mit Benutzername/Passwort
debug level (0-4 / default = 0)
Franck Borel, AAR-Projekt, UB-Freiburg 12
Konfiguration des Identity Providers
Formularbasierte Authentifizierung mit MemoryRealm
Identity Provider
…<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>…
web.xml
Authenti-fizierungs-methode
FORM-Seiten
Benutzergruppe
Franck Borel, AAR-Projekt, UB-Freiburg 13
Konfiguration des Identity Providers
Formularbasierte Authentifizierung mit MemoryRealm
…<form method="POST" action="<%=response.encodeURL('j_security_check')%>… <input type="text" name="j_username" /> <input type="password" name="j_password">…</form>…
Identity Provider
login.jsp Aufruf von j_security_check
Benutzername/Passwort
Franck Borel, AAR-Projekt, UB-Freiburg 14
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 15
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 16
Konfiguration des Identity Providers
• Beispiel einer Konfiguration mit einem JDBC-Resolver: Anpassen der idp.xml
<?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>
idp.xmlLegt fest, welche Resolver-
Konfigurationsdatei verwendet werden soll.
Attribute Authority und sSSO müssen bei der Verwendung von SSL auf getrennten Ports laufen!
Franck Borel, AAR-Projekt, UB-Freiburg 17
Konfiguration des Identity Providers
• Beispiel einer Konfiguration mit einem JDBC-Resolver: Anpassen der resolver.jdbc.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>
resolver.xmlEindeutige
Attributreferenz
Referenz zur Datenbankverbindung
Verbindung zur Datenbank
SQL-Abfrage (? = %PRINCIPAL%)
Franck Borel, AAR-Projekt, UB-Freiburg 18
Konfiguration des Identity Providers
• Beispiel einer Konfiguration mit einem JDBC-Resolver: Anpassen der arp.xml
<?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>
arp.xmlEmpfänger
AttributnameErlauben?
Franck Borel, AAR-Projekt, UB-Freiburg 19
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 20
Danke für Ihre Aufmerksamkeit!