Installation und Konfiguration des Identity Providers

Werbung
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+
Franck Borel, AAR-Projekt, UB-Freiburg
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
5
Installation des Identity Providers
Übersicht zu den Komponenten des Identity Providers:
Apache
mod_jk
Tomcat
Authentifizierung
über Tomcat oder
Apache schützt
SSO (HS)
SSO (HS)
Autorisierung
LDAP
Benutzerdaten
ShibbolethKomponenten
SQL
Franck Borel, AAR-Projekt, UB-Freiburg
...
AA
ARP
Richtlinien für
die Freigabe
von Attributen
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
metadata.xml
Identity
Provider
arp.site.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
<?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 -->
<!– ReleasePolicyEngine -->
<!– Logging -->
<!- NameMapping -->
<!- ArtifactMapper -->
→ z.B. Liste mit Service Providern
→ Weist auf die arp.xml
→ Einstellungen für die Log-Dateien
→ Zwischenablage des Principal
→ Einstellungen für die Verwendung der
<!- ProtocolHandler -->
<!- MetadataProvider -->
</IdPConfig>
→ Zertifikate/Schlüssel
→ Hier wird festgelegt, welche Art von Anfragen beantworten werden
→ Weist auf die metadata.xml
Franck Borel, AAR-Projekt, UB-Freiburg
Standard
Relaying
Party: z.B.
Föderation
oder
Applikation
Übertragungsmethode
Browser/Artifact
<!- Credentials -->
Attribute
Eindeutige
ID des
Identity
Providers
(URI)
9
Konfiguration des Identity Providers
•
Beispiel für eine formularbasierte
Authentifizierung mit MemoryRealm
1. server.xml bearbeiten
2. web.xml bearbeiten
3. 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
Tomcat
…
<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>
…
Einbinden der
Klasse
MemoryRealm
Franck Borel, AAR-Projekt, UB-Freiburg
debug level (0-4 /
default = 0)
11
Konfiguration des Identity Providers
Formularbasierte Authentifizierung mit MemoryRealm
web.xml
Identity
Provider
FORMSeiten
…
<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>
…
Authentifizierungsmethode
Benutzergruppe
Franck Borel, AAR-Projekt, UB-Freiburg
12
Konfiguration des Identity Providers
Formularbasierte Authentifizierung mit MemoryRealm
Aufruf von
j_security_check
login.jsp
Identity
Provider
…
<form method="POST"
action="<%=response.encodeURL('j_security_check')%>
…
<input type="text" name="j_username" />
<input type="password" name="j_password">
…
</form>
…
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 ResolverKonfigurationsdatei 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"/>
Referenz zur
</SimpleAttributeDefinition>
Datenbankverbindung
<JDBCDataConnector id="db1"
dbURL="jdbc:postgresql://aar.ub.uni-freiburg.de/redi?user=postgres&password=test"
dbDriver="org.postgresql.Driver"
maxActive="10"
maxIdle="5">
Verbindung zur
<Query>Select member from users where name = ?</Query>
Datenbank
</JDBCDataConnector>
<CustomDataConnector id="echo"
class="edu.internet2.middleware.shibboleth.aa.attrresolv.provider.SampleConnector"/>
</AttributeResolver>
SQL-Abfrage (? =
%PRINCIPAL%)
Franck Borel, AAR-Projekt, UB-Freiburg
17
Konfiguration des Identity Providers
• Beispiel einer Konfiguration mit einem JDBCResolver: 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
Herunterladen