Demonstrator XML-Sicherheitsdienste für BioCASE
Ursprünglich zu Testzwecken wurde für die
XML-Sicherheitsdienste ein Beispielszenario entwickelt,
welches
alle wesentlichen Funktionalitäten der
Sicherheitskomponenten
abdeckt. Dieses Beispielszenario wurde zusammen mit den
Softwarekomponenten weiterentwickelt und steht nun in Form eines
Demonstrators online zur Verfügung.
Der Demonstrator besteht aus einem BioCASE Provider, der Daten aus
mitgelieferten Testdatenbanken anbietet (training und pontaurus), und
der zentralen Komponente der XML-Sicherheitsdienste, dem Policy
Enforcement Point (PEP). Der PEP kann sowohl mit einem Web-Browser als
auch mit dem Client-API benutzt werden. Zum Vergleich beider Varianten,
ist der Provider auch ohne vorgeschaltete PEP erreichbar.
Zugriffskontrollpolitiken
Die vom PEP verwendeten rollenbasierten XACML-Zugriffskontrollpolitiken
entsprechen denen des in der Dokumentation beschriebenen
Beispielszenarios. Hierbei wurden die folgenden Rollen und Benutzer
festgelegt:
Benutzer |
Rolle(n) |
Nobody, nicht authentisierter Benutzer |
Guest |
Client |
Client, TrustedClient |
Expert |
Expert |
Die nachfolgend beschrieben Rollen wurden anhand des
RoleManagers durch
Ausführen des in der Softwaredistribution enthaltenen Skripts
provider-setup
Rolle Guest
Die Rolle
Guest
beschreibt die
die standardmäßig festgelegte Rolle
mit minimalen
Zugriffsrechten. Sie hat lediglich Zugriff auf die im XML-Schema der
ABCD-Formate V1.20 bzw. V2.06 als obligatorisch gekennzeichneten
Elemente
des Content-Dokuments:
ABCD V1.20
- /DataSets
- /DataSets/DataSet
- /DataSets/DataSet/OriginalSource
- /DataSets/DataSet/OriginalSource/SourceInstitutionCode
- /DataSets/DataSet/OriginalSource/SourceName
- /DataSets/DataSet/OriginalSource/SourceLastUpdatedDate
- /DataSets/DataSet/DatasetDerivations
- /DataSets/DataSet/DatasetDerivations/DatasetDerivation
- /DataSets/DataSet/DatasetDerivations/DatasetDerivation/DateSupplied
- /DataSets/DataSet/DatasetDerivations/DatasetDerivation/Supplier
- /DataSets/DataSet/Units
- /DataSets/DataSet/Units/Unit
- /DataSets/DataSet/Units/Unit/UnitID
ABCD V2.06
- /DataSets
- /DataSets/DataSet
- /DataSets/DataSet/TechnicalContacts
- /DataSets/DataSet/TechnicalContacts/TechnicalContact/
- /DataSets/DataSet/TechnicalContacts/TechnicalContact/Name
- /DataSets/DataSet/ContentContacts
- /DataSets/DataSet/ContentContacts/ContentContact/
- /DataSets/DataSet/ContentContacts/ContentContact/Name
- /DataSets/DataSet/MetaData
- /DataSets/DataSet/MetaData/Description/
- /DataSets/DataSet/MetaData/Description/Representation/
- /DataSets/DataSet/MetaData/Description/Representation/Title
- /DataSets/DataSet/MetaData/RevisionData/
- /DataSets/DataSet/MetaData/RevisionData/DateModified
- /DataSets/DataSet/Units
- /DataSets/DataSet/Units/Unit/
- /DataSets/DataSet/Units/Unit/SourceInstitutionID
- /DataSets/DataSet/Units/Unit/SourceID
- /DataSets/DataSet/Units/Unit/UnitID
Desweiteren darf die Rolle
Guest
maximal fünf Treffer bei einer Suche anfordern.
Rolle Client
Die Rolle
Client
darf auf alle Elemente zugreifen, bis auf die folgenden und deren
Subelemente der ABCD Formate V1.20 bzw. V2.06:
ABCD V1.20
- DataSets/DataSet/Units/Unit/UnitDigitalImages
- DataSets/DataSet/Units/Unit/Gathering/GatheringSite
ABCD V2.06
- /DataSets/DataSet/Units/Unit/MultiMediaObjects
- /DataSets/DataSet/Units/Unit/Gathering/SiteCoordinateSets
- /DataSets/DataSet/Units/Unit/Gathering/SiteImages
Hinter diesen Elemente verbirgt sich der Zugriff auf Bilder eines
Belegobjekt bzw. die Geokoordinaten dessen Auftretens in der Natur.
Desweiteren darf die Rolle
Guest
maximal 100 Treffer bei einer Suche anfordern.
Rolle TrustedClient
Die Rolle
TrustedClient
ist
die systemimmanente Rolle, die zum vertrauensvollen
Durchreichen
von Zertifikaten authentisierter Benutzer berechtigt. Diese Rolle kann
mit dem Client-API dazu verwendet werden, eine Art Single-Sign-On (SSO)
Authentisierung zu realisieren.
Rolle Expert
Die Rolle
Expert
unterliegt
keinerlei Einschränkungen. Sie darf auf alle Elemente
zugreifen.
Zusätzlich signiert der Provider die im folgenden
aufgelisteten
Elemente und deren Subelemente in allen zurückgelieferten
ABCD Content-Dokumenten:
ABCD V1.20
- /DataSets/DataSet/OriginalSource/Source
- /DataSets/DataSet/DatasetDerivations/DatasetDerivation/DateSupplied
- /DataSets/DataSet/DatasetDerivations/DatasetDerivation/Supplier
- /DataSets/DataSet/Units/Unit/UnitID
ABCD V2.06
- /DataSets/DataSet/Metadata
- /DataSets/DataSet/Units
Authentisierung
Die Benutzerauthentisierung anhand
von X.509-Benutzerzertifikaten.
Die zugehörigen Schlüsselpaare
müssen hierzu
entweder im Web-Browser installiert oder entsprechend der
Softwaredokumentation
für das Client-API konfiguriert werden. Die folgenden
PKCS#12-Dateien enthalten sowohl den privaten Schlüssel, als
auch
das Zertifikat des jeweiligen Benutzers. Das Passwort zur Freischaltung
der privaten Schlüssel entspricht dem Namen des Benutzers.
Zur Verifikation der Zertifikatskette des Providerzertifikats
können die Zertifikate des
Providers
sowie das
Wurzelzertifikat
der ausstellenden, fiktiven Certification Authority (CA) und
dessen
Server
Registration
Authority (Server CA) im Web-Browser oder im Trust Store des
Client-API installiert werden.
Installation
von Zertifikaten
Eine Installationsanleitung zur Installation von Schlüsseln
und Zertifikaten gibt es für folgende Browser:
Firefox
Internet Explorer
Es können übrigens auch alle
Schlüsseldateien im Browser
installiert werden. Bei der Installation sollte man jedoch darauf
achten, im entsprechenden Dialog eine
Auswahlmöglichkeit des
zur Authentisierung verwendeten Schlüssels zu konfigurieren.
Man
kann dann sämtliche definierte Rollen mit dem Browser
ausprobieren.
Zum
Demonstrator
Nachdem die Schlüssel- und Zertifikatesdateien erfolgreich
installiert wurden, kann es mit dem Ausprobieren des Demonstrators
losgehen. Der Demonstrator ist unter folgenden URLs zu erreichen:
Demonstrator
mit XML-Sicherheitsdiensten
Provider
ohne XML-Sicherheitsdienste
Am einfachsten und interessantesten ist sicher die Verwendung des
Query-Tools. Wenn
Sie hier die Datenbank
training
aus, und geben auf der folgenden Seite bei
Country
das Suchmuster
ger*
ein. Sie können anschliessend unter drei
Einträgen
auswählen, die sowohl Lokalitätsinforamationen als
auch
Bilder enthalten. Diese werden Ihnen in der Rolle
expert angezeigt,
während diese in der Rolle
client nicht
angezeigt werden.
Hinweis:
Haben Sie noch kein Zertifikat installiert, oder sich als Benutzer
nobody
authentifiziert, so muss auf der Seite
Start>QueryTool>QueryForm
unter
Group result by
der Eintrag
UnitID
selektiert werden, um Treffer angezeigt zu bekommen. Dies
ist erforderlich, da die minimalen Zugriffsrechte, die in der
Zugriffskontrollpolitik
für die Rolle
guest
definiert sind nur Zugriff auf die UnitID eines Eintrags erlaubt.
Für Fortgeschrittene bietet der Punkt
Utilities
»
PyWrapper QueryForms
die Möglichkeit eigene BioCASE-Requests zu formulieren.
Weiterhin
ist dies, neben der Verwendung des Client-API's, auch die einzige
Möglichkeit als "
Expert"
signierte Antworten des Providers zu sehen.
Zum guten Schluss
Bei Problemen, entdeckten Fehlern, Fragen, Diskussionen oder
für
immer dankbar entgegengenommenes Lob, Anregungen zur Ausgestaltung des
Beispielszenarios oder der XML-Sicherheitsdienste, erreichen Sie mich
unter folgender Email:
suhrbier@inf.fu-berlin.de
Viel Spaß beim Experimentieren,
Lutz Suhrbier