Service Registry
CAS erlaubt es Services zu deklarieren, die für eine CAS-Authentifizierung genutzt werden dürfen. Die Service-Registry speichert die Services zusammen mit Metadaten und steuert somit das Verhalten des CAS.
Für die Service-Registry gibt es verschiedene Implementierungen, die genutzt werden können. Aktuell wird von uns die JSON Service-Registry genutzt, bei der die Services als JSON abgelegt werden und zur Laufzeit in den Speicher geladen werden.
Für die Registry wird ein zentraler Ablageort definiert, der sich jedoch in Abhängigkeit von der aktuell genutzten Stage unterscheiden kann.
Befindet sich der CAS im Produktionsmodus, werden die Services vom Pfad /etc/cas/services/production
geladen. Dabei werden die Services dynamisch, basierend auf den tatsächlich
installierten Dogus, erstellt. Für den Entwicklungsmodus sind statische Services für die Protokolle CAS, OAUTH und OIDC unter dem Pfad /etc/cas/services/development
deklariert, die generisch für die jeweiligen Protokolle gelten. Eine Unterscheidung zwischen einzelnen Applikationen findet nicht statt.
Services werden in der Regel über den Installationsprozess eines Dogus erzeugt. Besitzt ein Dogu eine Abhängigkeit auf den CAS, wird während der Installation das ExposedCommand service-account-create
aufgerufen, welches den Service als JSON-Konfiguration in der Service-Registry erstellt. Hierfür werden Konfigurationsvorlagen verwendet, die unter dem Pfad /etc/cas/config/services
hinterlegt sind. Anhängig von den
Eingabeparametern sowie dem Typ des genutzten Protokolls werden verschiedene Properties befüllt, die dann wiederum von CAS-internen Templates genutzt werden. Diese Templates werden über ihren Namen
referenziert und dienen als Vorlage für die im Speicher erzeugten Services des CAS. Sie sind unter /etc/cas/services/templates
zu finden. Die final erzeugten JSON-Dateien in der Service-Registry folgen
dabei stets der Namenskonvention <Applikation>-<ServiceID>.json
.