Im Zuge des FFG-geförderten Projekt IDunion wurde von OwnYourData unter anderem ein Login ohne Passwort auf Basis von OpenID Connect für Semantic Container und Data Vault implementiert. Das esatus Wallet stellt dabei die Autorisierungsebene zur Verfügung.

OpenID Connect (OIDC) ist ein offenes Authentifizierungsprotokoll, das OAuth 2.0 um eine Identitätsebene erweitert. Es ermöglicht Anwendungen, die Identität eines Endbenutzers mithilfe der Authentifizierung durch einen Autorisierungsserver zu bestätigen. Die Implementierung von OIDC auf OAuth 2.0 schafft die Möglichkeit für APIs, mobile Anwendungen und Browseranwendungen, dass Authentifizierung und Autorisierung in einer einzigen, zusammenhängenden Architektur gewährleistet werden.

Als Autorisierungsserver wird die Softwareplattform SOWL der esatus AG verwendet. SOWL ist eine Software zur Verwaltung von Identitäten und Zugriffsrechten in Unternehmen. Sie implementiert die Self-Sovereign Identity-Technologie (SSI), die Nutzerrechte stärkt und die Verwaltung von Identitäten für Unternehmen vereinfacht. Ein in SOWL registrierter Benutzer kann mit der esatus Wallet App (verfügbar für Android und iOS) seine Identität eigenständig verwalten. Darüber hinaus können mit der Wallet natürlich auch andere Credentials verwaltet und für Authentifizierungs- und Autorisierungsprozesse verwendet werden.

Um in einem Semantic Container das OIDC Login via SOWL zu konfigurieren, müssen im Container eine entsprechende Doorkeeper Applikation (Doorkeeper wird als OAuth2 Provider von OwnYourData verwendet) eingerichtet werden und zusätzliche Parameter in einem Configuration Item abgelegt sein. Ein Beispiel für die Einrichtung einer Doorkeeper Application (via
POST https://api-docs.ownyourdata.eu/semcon/#/Authorization/post_oauth_applications
):

{
	"id":2,
	"name":"oidc_app",
	"scopes":["admin","write","read"],
	"oidc_identifier":"1234",
	"oidc_secret":"secret",
	"oidc_token_endpoint":"https://auth-ssi-demo.esatus.com/services/idp/oidc/token"
}

(oidc_identifier & oidc_secret müssen aus der entsprechenden SOWL Anwendung eingetragen werden)

Und das zugehörige Configuration Item:

{ 
    "content": {
        "key": "oauth",
        "value": {
            "authority": "https://auth-ssi-demo.esatus.com/.well-known/openid-configuration?tenant=9876",    <- eigene Tenant-ID
            "client_id": "1234",  <- von SOWL Anwendung
            "scope": "openid",
            "response_type": "id_token",
            "redirect_uri": "http://localhost:3000/signin-oidc",
            "title": {"en":"Login with SOWL", "de":"mit SOWL einloggen”},
            "application_id": 2   <- ID von Doorkeeper Application },
    "schema_dri": "zQmVXrH8ZwrKKTKXeZVjAprWhwMNHn2q6SiwBwvbdXj2sTz"
}

Beim Datentresor, der unter der Adresse https://data-vault.eu von OwnYourData gehostet und gratis angeboten wird, sind diese Konfigurationen bereits vordefiniert. Das SOWL Login kann über einen Link unter der Anmeldemaske aufgerufen werden und der Ablauf ist in folgenden Bildern dargestellt:

OIDC Login

Eine Besonderheit bei diesem Login ist die Bereitstellung des Passworts für die Entschlüsselung der Daten. Der Datentresor speichert Daten Ende-zu-Ende verschlüsselt und für den Zugriff ist damit der private Schlüssel notwendig, welcher aus dem Login-Passwort erstellt wird. Daher ist es notwendig, neben der Authentifizierung in SOWL ebenfalls eine Beweisanfrage (ProofRequest) zu bestätigen, um diese Information (also das Login-Passwort) bereitzustellen.

In diesem Blogpost haben wir das Login mittels OpenID Connect für Semantic Container und Datentresor unter Verwendung von SOWL und dem esatus Wallet beschrieben. Besonders soll dabei hervorgehoben werden, dass es sich bei diesen Produkten um MyData Operator Lösungen handelt – diese also den Prinzipien einer menschen-zentrierten und ethischen Verwendung personenbezogener Daten verpflichtet sind. Solltest du Fragen oder Anregungen dazu haben, zögere nicht einen Kommentar zu hinterlassen oder uns via support@ownyourdata.eu zu kontaktieren!