Authentifizierung
OAuth2
mittwald unterstützt OAuth 2.0 als Authentifizierungsmechanismus für die öffentliche API. Dieser Mechanismus ist in dem RFC 6749 spezifiziert. Unterstützt werden die folgenden OAuth 2.0 Flows:
- Authorization Code Grant
- Authorization Code Grant with PKCE
Um OAuth2 nutzen zu können, muss ein OAuth2 Client angelegt werden, der die notwendigen Scopes für die Domain Actions anfragt. Dieser Client kann verwendet werden, um OAuth 2.0 Authentifizierungsabläufe durchzuführen. Für weitere Informationen über die notwendigen API-Endpunkte für den OAuth2 Flow siehe OAuth2 Endpunkte
Access Token Retrieval Key
Um mStudio Benutzern einen bequemen Einstieg in die externe Anwendung zu ermöglichen, bietet das mStudio einen Single Sign On (SSO) Mechanismus an. Per Knopfdruck im mStudio wird der Benutzer zur externen Anwendung weitergeleitet und ist authentifiziert.
Dazu generiert das mStudio einen Access Token Retrieval Key (ATReK) und übermittelt diesen beim Click an das Frontend der Extension. Dies geschieht nur, wenn die Extension ein URL-Template bereitstellt, das den ATReK und die UserID als Platzhalter enthält. Siehe dazu auch Extension External Frontend.
Der ATReK ist sehr kurzlebig und nur einmalig gültig. Aufgrund der Kurzlebigkeit des ATReKs ist es wichtig, dass die externe Anwendung den ATReK sofort verwendet, um ein Access Token zu beziehen. Für weitere Informationen darüber, wie ein ATReK gegen ein Access Token ausgetauscht wird, siehe Access Token Retrieval Key Referenz
Das Access Token, das durch einen ATReK ausgestellt wird, repräsentiert den ausstellenden mStudio-User. Sie sind auf die Scopes der Extension und die Rechte des mStudio Nutzers eingeschränkt. Dadurch wird sichergestellt, dass der mStudio Nutzer nur die Domain Actions ausführen kann, die er auch im mStudio ausführen könnte. Gleichzeitig wird sichergestellt, dass eine Extension durch die Rechte des mStudio Nutzers nicht mehr Rechte erhält, als die Extension angefragt hat.
Extension Instance Secret
Um autark und ohne Nutzerinteraktion agieren zu können, erhält die Extension ein eigenes Secret pro Extension Instance. Dieses wird der externen Anwendung mittels Lifecycle Webhooks übermittelt. Mit der Extension Instance ID und diesem Secret kann ein Extension Access Token abgerufen werden. Dabei sind die Berechtigungen anhand der Scopes der Extension eingeschränkt.
Für weitere Informationen über die Informationen, die in Lifecycle Webhooks mitgeschickt werden, siehe Lifecycle Webhooks. Für weitere Informationen darüber, wie ein Extension Secret gegen ein Access Token ausgetauscht wird, siehe Extension Secret Referenz
Mit dieser Methode kann ebenfalls eine eigene Nutzerverwaltung bereitgestellt werden. Nutzer, die von der externen Anwendung registriert werden, kommunizieren alle im Namen der Extension Instance und teilen sich unterliegend dasselbe Extension Secret.
Abfragen von Anmeldeinformationen des mStudio Nutzers
Das direkte Abfragen der mStudio-Anmeldeinformationen ist keine akzeptable Methode, da der Nutzer nicht dazu konditioniert werden soll, seine Anmeldeinformationen an eine Drittanbieteranwendung weiterzugeben.
Nutzung des erhaltenen Access Tokens
Für eine Beschreibung, wie das erhaltene Access Token verwendet werden kann, siehe Nutzung von Access Tokens zur Authentifizierung.