Hallo,
ich beschreibe hier mal die Konfiguration die bei mir funktioniert. Einiges wiederholt sich aus den vorherigen Posts, aber so steht die gesamte Konfiguration in einem Stück beisammen. Folgende Programmversionen wurden verwendet:
Entfernter Rechner (“owncloud.im.netz”)
simplesamlphp: 1.11
owncloud5: 5.0.13
owncloud user_saml Erweiterung: 0.4, heruntergeladen von https://github.com/pitbulk/apps/tree/master/user_saml
Lokales UCS: (“ucsmaster.ucs.local”)
UCS 3.2 errata18
SAML App: 1.2
Einrichtung owncloud.im.netz
Editieren der simplesaml config /etc/simplesamlphp/config/authsources.php und anpassen des default-sp Eintrags:
'default-sp' => array(
'saml:SP',
'entityID' => 'owncloud.im.netz',
'idp' => 'https://ucsmaster.ucs.local/simplesamlphp/saml2/idp/metadata.php',
'discoURL' => NULL,
),
Dann muss die Konfiguration des IdP in /etc/simplesamlphp/metadata/saml20-idp-remote.php vorgenommen werden:
$metadata['https://ucsmaster.ucs.local/simplesamlphp/saml2/idp/metadata.php'] = array(
'description' => 'Log in to owncloud here',
'SingleSignOnService' => 'https://ucsmaster.ucs.local/simplesamlphp/saml2/idp/SSOService.php',
'certificate' => '/etc/simplesamlphp/ucsmaster.ucs.local-idp-certificate-REMOTE.crt',
'SingleLogoutService' => 'https://ucsmaster.ucs.local/simplesamlphp/saml2/idp/SingleLogoutService.php',
);
Hinweis: Im ersten Post dieses Threads wurde das Attribut cert statt certificate verwendet, was nicht funktioniert
Das Zertifikat des IdP muss dann dem Service Provider zur Verfügung gestellt werden. Auf owncloud.im.netz:
scp ucsmaster.ucs.local:/etc/simplesamlphp/ucsmaster.ucs.local-idp-certificate.crt /etc/simplesamlphp/ucsmaster.ucs.local-idp-certificate-REMOTE.crt
chown root:www-data /etc/simplesamlphp/ucsmaster.ucs.local-idp-certificate-REMOTE.crt
chmod g+r /etc/simplesamlphp/ucsmaster.ucs.local-idp-certificate-REMOTE.crt
Installation owncloud, ablegen der user_saml Erweiterung unter /var/www/owncloud/apps, chown -R www-data:www-data /var/www/owncloud/apps/user_saml
Dann mit dem Administrationsaccount an owncloud anmelden und die App aktivieren. Anschließend auf die Administrationsseite in owncloud wechseln und bei der SAML Konfiguration das Feld SimpleSAMLphp path anpassen. Unter Debian sollte er auf /usr/share/simplesamlphp gesetzt werden. Im Feld SimpleSAMLphp SP source sollte als Wert der oben konfigurierte Name des lokalen Service Providers, default-sp, stehen. Ich habe noch einen Haken gesetzt bei Autocreate user after saml login.
Dem Hinweis aus der user_saml Dokumentation zu den session cookies bin ich einfach mal gefolgt und habe den Wert, der in der Datei /var/www/owncloud/config/config.php bei instanceid steht, in die simplesamlphp Konfiguration übernommen: Er kommt in der /etc/simplesamlphp/config.php als Wert an das Attribut session.phpsession.cookiename
Erst jetzt beginnt die Konfiguration des UCS ucsmaster.ucs.local:
Einen neuen Serviceprovider anlegen, aktivieren und folgendermaßen konfigurieren:
Tab Allgemein:
Bezeichner des Service Providers: owncloud.im.netz
Antwort an diese Service Provider URL nach dem Login: https://owncloud.im.netz/simplesamlphp/module.php/saml/sp/saml2-acs.php/default-sp
Single logout URL des Service Providers: https://owncloud.im.netz/simplesamlphp/module.php/saml/sp/saml2-logout.php/default-sp
Format des NameID Attributs: urn:oasis:names:tc:SAML:2.0:attrname-format:basic
Name des Attributs, das als NameID verwendet wird: uid
Tab Weitere Einstellungen:
Erlaube die Übertragung von LDAP Attributen an den Service Provider aktivieren
Jetzt noch einen UCS Benutzer anlegen und auf dessen Konto Tab den owncloud.im.netz Service Provider aktivieren. Dann kann man auf http://owncloud.im.netz/owncloud
den SAML Login auswählen und per Single-Sign-On einloggen.
Ein weiterer Hinweis: Ob der Identity Provider korrekt auf owncloud.im.netz konfiguriert ist kann man herausbekommen, in dem man den Test von default-sp in der simplesamlphp Oberfläche startet: https://owncloud.im.netz/simplesamlphp/module.php/core/authenticate.php
Mit freundlichen Grüßen
Erik Damrose