Das Self-Service-Portal von FIT-Connect erlaubt es Ländern, Kommunen oder interessierten IT-Dienstleistern über eine grafische Oberfläche mit wenigen Klicks OAuth-API-Clients anzulegen und Zustellpunkte, eine so genannte **Destination**, für ihre bereits bestehenden Fachverfahren und Dienstleistungen zu registrieren. Diese Destinations können dann im Rahmen von FIT-Connect über den Antrags-Routingdienst gefunden werden.
### Anmeldung am Service Portal
Eine Nutzung des Self-Service-Portals setz zwingend eine vorangehende Authentifizierung mit OAuth 2.0 über einen der unterstützten Identity Provider voraus.
<imgwidth="600"alt="Übersicht der aktuell unterstützten OAuth 2.0 Identiy Provider"src="{useBaseUrl('/images/ssp/1-Login-Verfahren.png')}">
Nach erfolgreicher Authentifizierung wird die Startseite des Self-Service-Portals angezeit: Die Clientverwaltung.
### Client-verwaltung
Über die Client-Verwaltung lassen sich bereits hinzugefügt OAuthAPI-Clients verwalten, neue OAuthAPI-Clients anlegen und auch wieder entfernen.
Über den Menüpunkt <mark>Client hinzufügen</mark> können neue OAuthAPI-Client zu Ihren Konto hinzugefügt werden.
<imgwidth="600"alt="Client-Verwaltung mit eingerichteten Clients"src="{useBaseUrl('/images/ssp/6-Clientverwaltung.png')}">
Hierbei wird zwischen **Sendern** und **Subscribern** unterschieden. **Sender** repräsentieren dabei technische Systeme, die in Zukunft Einreichungen über die Submission-API des Zustelldiensts vornehmen. **Subscriber** stellen technische Systeme dar, die Einreichungen auf Verwaltungsseite entgegennehmen und bearbeiten.
#### Sender hinzufügen
Mit Auswahl der Optionsschaltfläche <mark>Sender</mark> und Eingabe einer Bezeichnung und anschließender Betätigung wird ein Client von Typ **Sender** angelegt.
<imgwidth="600"alt="Neuen OAuth-API-Client vom Typ: Sender hinzufügen"src="{useBaseUrl('/images/ssp/3-Client-hinzufügen-Sender.png')}">
Das Self-Service-Portal generiert daraufhin **Client ID** und **Client Secret**. Die **Client ID** stellt dabei einen öffentlichen, im FIT-Connect Umfeld einzigartigen Identifkator für Anwendungen dar. Das **Client Secret** wiederum ist ein Geheimnis, welches nur der Anwendung und dem OAuth-Server bekannt ist.
**Sendern** wird ein Scope zugeordnet. Dieser legt fest aus welchem Kontext heraus Anfragen über diesen Client gestellt werden können. In der Testphase ist dieser mit send:region:DE vorbefüllt.
<imgwidth="600"alt="OAuth-API-Client vom Typ: Sender"src="{useBaseUrl('/images/ssp/4-Client-hinzufügen-Sender2.png')}">
Weitere Informationen zu den Scopes von sendenen Systemen finden Sie unter [OAuth-Scopes für sendende Systeme](https://docs.fitko.de/fit-connect/docs/details/authentication/scopes-sender/).
#### Subscriber hinzufügen
Mit Auswahl der Optionsschaltfläche <mark>Subscriber</mark> und Eingabe einer Bezeichnung und anschließender Betätigung wird ein Client von Typ **Sender** angelegt.
<imgwidth="600"alt="Neuen OAuth-API-Client vom Typ: Subscriber hinzufügen"src="{useBaseUrl('/images/ssp/3b-Client-hinzufügen-Subscriber.png')}">
Das Self-Service-Portal generiert daraufhin **Client ID** und **Client Secret**. Die **Client ID** stellt dabei einen öffentlichen, im FIT-Connect Umfeld einzigartigen Identifkator für Anwendungen dar. Das **Client Secret** wiederum ist ein Geheimnis, welches nur der Anwendung und dem OAuth-Server bekannt ist.
**Subscribern** wird initial kein Scope zugeordnet. Dieser wird durch Zuordnung einer oder mehrerer Destinations bestimmt und legt fest von welchen Zustellpunkten Anfragen an den Client übermittelt werden dürfen.
<imgwidth="600"alt="OAuth-API-Client vom Typ: Subscriber"src="{useBaseUrl('/images/ssp/4b-Client-hinzufügen-Subscriber2.png')}">
Weitere Informationen zu den Scopes von empfangenden Systemen finden Sie unter [OAuth-Scopes für empfangende Systeme](https://docs.fitko.de/fit-connect/docs/details/authentication/scopes-subscriber).
#### Clients bearbeiten und löschen
Durch einen Klick auf die <mark>Client ID</mark> in der Client-Verwaltung öffnet sich die Detailansicht für den ausgewälten Client.
<imgwidth="600"alt="Detailansicht von Clients, hier ein Sender"src="{useBaseUrl('/images/ssp/18-Client-Detailansicht-Sender.png')}">
Durch einen Klick auf <mark>bearbeiten</mark> öffnet sich die Bearbeitungsansicht. Hier kann derzeit die Bezeichnung des Clients angepasst werden.
Clients vom Typ **Subscriber** können Destinations zugeordnet werden. Der Client empfängt dann die für den Zustellpunkt bestimmten Anfragen. Durch einen Klick auf die <mark>Client ID</mark> eines Clients vom Typ **Subscriber** in der Client-Verwaltung öffnet sich die Detailansicht.
<imgwidth="600"alt="Destination zu einem Client hinzufügen"src="{useBaseUrl('/images/ssp/16-Destination-zu-Client-hinzufügen.png')}">
Unter Destinations werden alle verfügbaren oder bereits verknüpften Destinations angezeigt. Durch aktivieren des Kontrollkästchens vor der gewünschten Destinations öffnet sich der Bestätigungsdialog, um dem Client Zugriff auf die gewählte Destination zu geben.
<imgwidth="600"alt="Bestätigungsdialog um eine Destination zu einem Client hinzufügen"src="{useBaseUrl('/images/ssp/16b-Destination-zu-Client-hinzufügen.png')}">
Im Anschluss wird die hinzufügte Destination durch ein Häkchen im Kontrollkästchen gekennzeichnet. Zusätzlich wurde die Destination im Scope des Clients hinzugefügt.
<imgwidth="600"alt="Aktualisierter Scope des Clients"src="{useBaseUrl('/images/ssp/16c-Destination-zu-Client-hinzufügen.png')}">
#### Zugriff auf Destinations entfernen
Bei Clients vom Typ **Subscriber** können ihnen zugeordnete Destinations auch wieder entfernt werden. Durch einen Klick auf das derzeit noch aktive und mit einem Häkchen gekennzeichnete Kontrollkästchen der zu entfernenden Destination, öffnet sich ein Kontrolldialog, in dem das Löschen bestätigt werden muss.
<imgwidth="600"alt="Kontrolldialog zum Entfernen des Zugriffs auf eine Destination"src="{useBaseUrl('/images/ssp/17-Destination-vom-Client-entfernen.png')}">
Im Anschluss wird die entfernte Destination nicht länger durch ein Häkchen im Kontrollkästchen gekennzeichnet. Zusätzlich wurde die Destination im Scope des Clients entfernt.
<imgwidth="600"alt="Aktualisierter Scope des Clients"src="{useBaseUrl('/images/ssp/17b-Destination-vom-Client-entfernen.png')}">
### Destination-Verwaltung
Unter einer Destination versteht sich ein technisch eindeutig adressierbarer Endpunkt zur digitalen Einreichung von Anträgen oder Berichten an die Verwaltung über die FIT-Connect Übermittlungsinfrastruktur. Sie werden Subscriber-OAuth-API-Client zugeordnet. Ein Zustellpunkt repräsentiert dabei typischerweise einen Subscriber-Client (Fachverfahren oder virtuelle Poststelle). Es ist jedoch möglich einem empfangenden System multiple Zustellpunkte zuzuordnen.
Über die Destination-Verwaltung lassen sich bereits hinzugefügt Destinations verwalten, neue Destinations anlegen und auch wieder entfernen.
Über den Menüpunkt <mark>Destination hinzufügen</mark> können neue Destinations zu Ihren Konto hinzugefügt werden.
<imgwidth="800"alt="Formular zum Anlegen einer neuer Destination"src="{useBaseUrl('/images/ssp/8-Destination-hinzufügen.png')}">
Ein Zustellpunkt benötigt zur Erstellung eine Vielzahl von Angaben, die sich im Wesentlichen auf Kontaktdaten, Technische Angaben und Service aufteilen.
Unter den unter dem Punkt Kontaktdaten abgefragten Informationen werden Details zur Antragempfangenden Instanz erfasst. Sämtliche Felder sind dabei aktuell noch Fließtext. Unter der Funktionspostfachadresse wird eine E-Mail-Adresse erwartet.
Unter den unter dem Punkt Technische Angaben abgefragten Informationen werden neben einer Callback-URL auch öffentliche Schlüssel zur Signaturprüfung und Verschlüsselung erwartet. Beide Schlüssel müssen im JSON-Format vorliegen und den Anforderderungen aus [Vorgaben für kryptographische Verfahren](https://docs.fitko.de/fit-connect/docs/details/crypto) entsprechen. Ein Tool um schnell und einfach passende Schlüssel für Testzwecke zu generieren finden Sie unter #TODO: Link zum Tool hinzufügen
Unter den unter dem Punkt Service abgefragten Informationen werden ein eindeutiger Leistungsindikator, eine Region aus der eine Anfrage zulässig ist sowie die URI des verwendeten Fachschemas erwartet.
<imgwidth="800"alt="Destination mit Beispieldaten befüllt"src="{useBaseUrl('/images/ssp/9-Destination-hinzufügen-befüllt.png')}">
Wurden alle Informationen und Schlüssel in korrekter Form übergeben wird die Destination erstellt.
<imgwidth="600"alt="Destination wurde erfolgreich angelegt"src="{useBaseUrl('/images/ssp/11-Destination-erfolgreich-angelegt.png')}">
#### Destination löschen
Durch einen Klick auf die <mark>Destination ID</mark> in der Destination-Verwaltung öffnet sich die Detailansicht für den ausgewälten Zustellpunkt.