Digitale Verlags-Plattform

Eine Plattform.
Alles aus einer Hand.

ASMIQ liefert die komplette digitale Infrastruktur für Medienhäuser – von Identity Management über Abo-Verwaltung bis E-Commerce, nahtlos integriert.

ASMIQ.iam – Identity & OAuth2 ASMIQ.shop – E-Commerce ASMIQ.one – Abo-Verwaltung Auftragsverwaltung

Plattform-Übersicht

ASMIQ.iam steht im Zentrum als OAuth2/OpenID Connect Identity Provider. Alle digitalen Touchpoints – Website, App, Shop – authentifizieren sich über eine einzige, zentrale Infrastruktur.

Gesamtarchitektur – Multi-Consumer OAuth2
graph TB subgraph CONSUMERS["Consumer-Schicht"] direction LR WEB["Website / CMS"] APP["Mobile App"] SHOP["Online-Shop"] FUTURE["Weitere Services"] end subgraph ASMIQ["ASMIQ Plattform"] direction TB IAM["ASMIQ.iam
OAuth2 / OpenID Connect
Identity Provider"] ONE["ASMIQ.one
Abo-Verwaltung
Self-Service API"] ORDER["Auftragsverwaltung
Bestellungen und Fulfillment"] SHOPBE["ASMIQ.shop
E-Commerce Backend"] FIN["Finance
Buchhaltungs-Schnittstelle"] IAM --> ONE SHOPBE --> ORDER ORDER --> ONE ORDER --> FIN end subgraph PARTNERS["Partner-Systeme"] VB["Verlagsbuchhaltung"] PRINT["Druckpartner / Versand"] end WEB -- OAuth2 --> IAM APP -- OAuth2 --> IAM SHOP -- OAuth2 --> IAM FUTURE -- OAuth2 --> IAM FIN --> VB ONE --> PRINT style IAM fill:#e62053,color:#FFFFFF,stroke:#e62053 style ONE fill:#000000,color:#FFFFFF,stroke:#000000 style ORDER fill:#545454,color:#FFFFFF,stroke:#545454 style SHOPBE fill:#333333,color:#FFFFFF,stroke:#333333 style FIN fill:#666666,color:#FFFFFF,stroke:#666666 style WEB fill:#f5f5f5,color:#000000,stroke:#c2c2c2 style APP fill:#f5f5f5,color:#000000,stroke:#c2c2c2 style SHOP fill:#f5f5f5,color:#000000,stroke:#c2c2c2 style FUTURE fill:#f5f5f5,color:#000000,stroke:#c2c2c2 style VB fill:#f5f5f5,color:#000000,stroke:#c2c2c2 style PRINT fill:#f5f5f5,color:#000000,stroke:#c2c2c2
Kernprinzip: Jeder Consumer spricht OAuth2 mit ASMIQ.iam. Kein System muss eine eigene Benutzerverwaltung aufbauen – die Berechtigungen stehen direkt im JWT-Token.
ASMIQ.iam

Identity Management
OAuth2-basiert.

ASMIQ.iam fungiert als zentraler Authorization Server. Alle Authentifizierung und Autorisierung läuft über einen einzigen, sicheren Punkt – mit Industry-Standard OAuth2 / OpenID Connect.

Login-Ablauf im Detail

Der vollständige OAuth2 Authorization Code Flow mit PKCE – vom Login-Klick bis zum validierten JWT-Token, das alle Berechtigungen enthält.

OAuth2 Authorization Code Flow (PKCE)
sequenceDiagram participant U as User participant W as Website / App participant I as ASMIQ.iam participant A as ASMIQ.one API Note over U,A: 1 - Login-Initialisierung U->>W: Klickt Login W->>W: Generiert Code Verifier (PKCE) W->>I: Redirect /authorize + client_id, scope, code_challenge Note over U,A: 2 - Authentifizierung I->>U: Login-Formular U->>I: Credentials eingeben I->>I: Validiert und erstellt Session Note over U,A: 3 - Authorization Code I->>W: Redirect zurueck mit ?code=xyz Note over U,A: 4 - Token Exchange W->>I: POST /token + code + code_verifier I->>W: access_token (JWT), refresh_token, id_token Note over U,A: 5 - Geschuetzte Ressourcen W->>A: GET /api/subscriptions Authorization: Bearer token A->>A: Validiert JWT A->>W: Abo-Daten Note over U,A: 6 - Token Refresh W->>I: POST /token + refresh_token I->>W: Neuer access_token
Multi-Consumer Architektur
graph LR IAM["ASMIQ.iam
Authorization Server
login.asmiq.ch"] subgraph CONSUMERS["Registrierte Consumer"] C1["Website
client_id: web-app"] C2["Mobile App
client_id: mobile"] C3["Shop
client_id: shop"] C4["Newsletter-Tool
client_id: newsletter"] end subgraph ENDPOINTS["Standard OAuth2 Endpoints"] E1["/authorize"] E2["/token"] E3["/userinfo"] E4["/.well-known/openid-configuration"] end C1 --> IAM C2 --> IAM C3 --> IAM C4 --> IAM IAM --- E1 IAM --- E2 IAM --- E3 IAM --- E4 style IAM fill:#e62053,color:#FFFFFF,stroke:#e62053 style C1 fill:#f5f5f5,color:#000000,stroke:#c2c2c2 style C2 fill:#f5f5f5,color:#000000,stroke:#c2c2c2 style C3 fill:#f5f5f5,color:#000000,stroke:#c2c2c2 style C4 fill:#f5f5f5,color:#000000,stroke:#c2c2c2 style E1 fill:#FBFBFB,color:#000000,stroke:#c2c2c2 style E2 fill:#FBFBFB,color:#000000,stroke:#c2c2c2 style E3 fill:#FBFBFB,color:#000000,stroke:#c2c2c2 style E4 fill:#FBFBFB,color:#000000,stroke:#c2c2c2
JWT Token & Claims

Berechtigungen direkt
im Token.

ASMIQ.iam verpackt alle Subscription-Attribute als einfache True/False-Werte im JWT. Kein API-Call, keine Datenbank-Abfrage beim Consumer – alles steckt im Token.

JWT mit Subscription-Attributen

Das ASMIQ-Prinzip: Statt komplexer Rollen-Hierarchien nutzen wir einfache Boolean-Attribute für jede Subscription. Der Consumer liest aus – fertig.

Beispiel JWT Payload
{
  "sub": "user-12345",
  "email": "user@beispiel.ch",
  "name": "Max Muster",
  "iss": "https://login.asmiq.ch",
  "aud": "publisher-cms",
  "exp": 1735689600,

  // Subscription-Attribute (ASMIQ.iam)
  "subscriptions": {
    "pub_print_basis": true,
    "pub_print_premium": false,
    "pub_digital": true,
    "pub_archive": false,
    "pub_newsletter": true
  },

  "subscription_status": "active",
  "subscription_expires": "2027-06-30",
  "customer_number": "PUB-456789"
}
Consumer-Code (Beispiel PHP)
// Token validieren
$decoded = JWT::decode($token, $pubKey);

// User-Infos direkt verfügbar
$email = $decoded->email;
$name = $decoded->name;
$customerNr = $decoded->customer_number;

// Subscription prüfen – ein Zeile!
if ($decoded->subscriptions->pub_digital) {
    // Vollzugriff anzeigen
} else {
    // Teaser / Paywall
}

// Kein API-Call zu ASMIQ nötig!
Berechtigungsmatrix – User-Zustände
graph TB TOKEN["JWT Token
subscriptions.pub_digital = true/false
subscription_status = active/expired/none"] TOKEN --> A{Status?} A -->|active + pub_digital = true| B["Vollzugriff
Alle Artikel, Downloads, Archive"] A -->|active + pub_digital = false| C["Basis-Zugang
Nur freigegebene Inhalte"] A -->|expired| D["Abgelaufen
Teaser + Verlaengerungs-CTA"] A -->|none / kein Token| E["Nur Login
Kostenlose Inhalte + Kauf-CTA"] style B fill:#000000,color:#FFFFFF,stroke:#000000 style C fill:#e62053,color:#FFFFFF,stroke:#e62053 style D fill:#545454,color:#FFFFFF,stroke:#545454 style E fill:#666666,color:#FFFFFF,stroke:#666666 style TOKEN fill:#f5f5f5,color:#000000,stroke:#c2c2c2
Neuer Abo-Typ? In ASMIQ.one eine neue Subscription-Kategorie anlegen. Das Token enthält automatisch das neue Attribut – kein Code-Change beim Consumer nötig.
Self-Service

Abo-Verwaltung
für Endkunden.

Abonnenten verwalten ihr Abo direkt über ASMIQ – via Redirect zu login.asmiq.ch. Der Consumer (CMS, App) muss kein eigenes User-Backend bauen.

Redirect-Flow zur Selbstverwaltung

Via Redirect-Mechanismus gelangen User nahtlos zur ASMIQ Self-Service Oberfläche. Nach Änderungen kehren sie zurück zum Publisher-Portal.

Self-Service Redirect-Flow
graph TB U["Abonnent auf publisher-website.ch"] subgraph STEP1["Schritt 1 - Initialisierung"] W1["Klickt: Mein Abo verwalten"] R1["Redirect zu login.asmiq.ch
action=manage
return_uri=publisher-website.ch"] end subgraph STEP2["Schritt 2 - Bei ASMIQ"] L{"Bereits eingeloggt?"} LOGIN["Login / Session wiederherstellen"] MANAGE["Self-Service Portal
Adresse anpassen
Zahlungsdaten
Abo pausieren / kuendigen
Zusatzprodukte kaufen"] end subgraph STEP3["Schritt 3 - Rueckkehr"] DONE["Aenderungen gespeichert"] BACK["Redirect zurueck zur Publisher-Website
+ aktualisiertes Token"] end U --> W1 --> R1 R1 --> L L -->|Nein| LOGIN --> MANAGE L -->|Ja| MANAGE MANAGE --> DONE --> BACK style MANAGE fill:#000000,color:#FFFFFF,stroke:#000000 style LOGIN fill:#e62053,color:#FFFFFF,stroke:#e62053 style U fill:#f5f5f5,color:#000000,stroke:#c2c2c2 style W1 fill:#f5f5f5,color:#000000,stroke:#c2c2c2 style R1 fill:#f5f5f5,color:#000000,stroke:#c2c2c2 style DONE fill:#f5f5f5,color:#000000,stroke:#c2c2c2 style BACK fill:#f5f5f5,color:#000000,stroke:#c2c2c2
Vorteil für den Publisher-Entwickler: Es muss kein eigenes User-Management-Backend entwickelt werden. Adress­änderungen, Zahlungs­updates, Abo-Pausierungen – alles läuft über ASMIQ.iam und wird direkt im erneuerten Token reflektiert.
ASMIQ.shop & Commerce

Bestellung bis Abo-Start
vollautomatisch.

Vom Shop-Kauf über die Auftragsverwaltung bis zur Abo-Eröffnung und Weiterleitung an Druck und Buchhaltung – alles in einem durchgehenden, automatisierten Flow.

Neukauf – End-to-End

Bestell- und Monetarisierungsflow
graph TB U["Interessent"] subgraph SHOP_LAYER["ASMIQ.shop - Neukauf"] CART["Produktauswahl / Warenkorb"] PAYMENT["Zahlungsabwicklung
Kreditkarte / LSV / Rechnung"] end subgraph ORDER_LAYER["Auftragsverwaltung"] ORDER["Internet-Auftrag erstellt"] FULFILL["Fulfillment / Status-Tracking"] end subgraph ABO_LAYER["ASMIQ.one - Abo-Eroeffnung"] ABO["Abo-Datensatz angelegt / aktiviert"] TOKEN_UPDATE["Token-Attribute aktualisiert"] end subgraph PARTNERS_LAYER["Partner-Systeme"] VB["Verlagsbuchhaltung
Rechnungsdaten"] PRINT["Druckpartner
Adress- und Versanddaten"] end U --> CART --> PAYMENT PAYMENT --> ORDER ORDER --> FULFILL FULFILL --> ABO ABO --> TOKEN_UPDATE ORDER --> VB ABO --> PRINT style ORDER fill:#545454,color:#FFFFFF,stroke:#545454 style ABO fill:#000000,color:#FFFFFF,stroke:#000000 style TOKEN_UPDATE fill:#e62053,color:#FFFFFF,stroke:#e62053 style U fill:#f5f5f5,color:#000000,stroke:#c2c2c2 style CART fill:#f5f5f5,color:#000000,stroke:#c2c2c2 style PAYMENT fill:#f5f5f5,color:#000000,stroke:#c2c2c2 style VB fill:#f5f5f5,color:#000000,stroke:#c2c2c2 style PRINT fill:#f5f5f5,color:#000000,stroke:#c2c2c2 style FULFILL fill:#f5f5f5,color:#000000,stroke:#c2c2c2
Wiederkehrende Verlängerungen (Recurring)
graph LR TRIGGER["Verlaengerungs-Trigger
30 / 14 / 7 Tage vorher"] subgraph RENEWAL["Automatischer Verlaengerungsflow"] CHECK{"Zahlungsmittel hinterlegt?"} AUTO["Automatisch verlaengern"] INVOICE["Rechnung an Verlagsbuchhaltung"] MANUAL["Zahlungsaufforderung per E-Mail"] end subgraph ABO_UPDATE["ASMIQ.one Update"] ABO_RENEW["Abo-Laufzeit verlaengert"] TOKEN_NEW["Neues Token-Ablaufdatum"] end TRIGGER --> CHECK CHECK -->|Ja| AUTO --> INVOICE --> ABO_RENEW CHECK -->|Nein| MANUAL --> ABO_RENEW ABO_RENEW --> TOKEN_NEW style AUTO fill:#000000,color:#FFFFFF,stroke:#000000 style ABO_RENEW fill:#e62053,color:#FFFFFF,stroke:#e62053 style TRIGGER fill:#f5f5f5,color:#000000,stroke:#c2c2c2 style INVOICE fill:#f5f5f5,color:#000000,stroke:#c2c2c2 style MANUAL fill:#f5f5f5,color:#000000,stroke:#c2c2c2 style TOKEN_NEW fill:#f5f5f5,color:#000000,stroke:#c2c2c2 style CHECK fill:#f5f5f5,color:#000000,stroke:#c2c2c2
Vergleich

Klassisch vs.
OAuth2-basiert.

Warum ein zentrales Identity-Management den Entwicklungsaufwand beim Publisher massiv reduziert – und gleichzeitig die Skalierbarkeit erhöht.

Klassische API vs. OAuth2 Approach

Thema Klassische Integration ASMIQ OAuth2
Login-System Selbst entwickeln, eigene DB Von ASMIQ.iam übernommen
Session-Verwaltung Selbst implementieren Token macht das automatisch
Rechte prüfen API-Call bei jedem Request Direkt im JWT auslesen
Synchronisation Regelmäßige Sync-Jobs nötig Token immer aktuell
Neuer Abo-Typ Alle Systeme anpassen, Deploy In ASMIQ anlegen – fertig
Datenbank-Calls Viele, bei jedem Seitenaufruf Ein Token-Check reicht
Selbstverwaltung Eigenes Backend entwickeln Redirect zu ASMIQ.iam
Mehrere Apps Jede App: eigene User-DB Alle teilen ASMIQ.iam
Verantwortungsabgrenzung
graph TB subgraph ASMIQ_RESP["ASMIQ verantwortet"] R1["Identity Management
Login, Sessions, OAuth2"] R2["E-Commerce
Shop, Zahlungen"] R3["Auftragsabwicklung
Fulfillment, Status"] R4["Abo-Lifecycle
Aktivierung, Verlaengerung, Kuendigung"] end subgraph PARTNER_RESP["Partner - Kernkompetenz"] P1["Buchhaltung
Rechnungsstellung, Mahnwesen"] P2["Druck / Versand
Produktion, Logistik"] P3["CMS / Website
Content, Design, Redaktion"] end subgraph INTERFACES["Schnittstellen"] I1["ASMIQ zu Buchhaltung
Rechnungsdaten"] I2["ASMIQ zu Druck
Adress- und Versanddaten"] I3["ASMIQ.iam zu CMS
OAuth2 Token"] end R3 --> I1 --> P1 R4 --> I2 --> P2 R1 --> I3 --> P3 style R1 fill:#e62053,color:#FFFFFF,stroke:#e62053 style R2 fill:#333333,color:#FFFFFF,stroke:#333333 style R3 fill:#545454,color:#FFFFFF,stroke:#545454 style R4 fill:#000000,color:#FFFFFF,stroke:#000000 style P1 fill:#f5f5f5,color:#000000,stroke:#c2c2c2 style P2 fill:#f5f5f5,color:#000000,stroke:#c2c2c2 style P3 fill:#f5f5f5,color:#000000,stroke:#c2c2c2 style I1 fill:#FBFBFB,color:#000000,stroke:#c2c2c2 style I2 fill:#FBFBFB,color:#000000,stroke:#c2c2c2 style I3 fill:#FBFBFB,color:#000000,stroke:#c2c2c2
Das zentrale Argument: Der Publisher (CMS-Entwickler) implementiert OAuth2 – einen Industry-Standard. Er muss kein eigenes User-Management aufbauen, keine Subscription-Logik entwickeln, keine Synchronisations-Jobs betreiben. ASMIQ liefert die Infrastruktur, der Publisher konzentriert sich auf Content und UX.