Skip to main content

Pressmatix Aboverwaltung Integrationsmöglichkeiten

Zielarchitektur

  1. Benutzerauthentifizierung läuft über einen OIDC-Provider (PX-User, Auth0 oder Keycloak)
  2. Benutzer Authentifiziert sich in der PressMatrix App oder im Web am Pressmatrix-Kontext [läuft über den OIDC-Provider]
  3. Es wird ein Access Token-Generiert
  4. Pressmatrix ruft beim Zugriff die eigene Middleware auf
  5. Middleware erhält den OIDC-Token

Beispiel-Aufruf durch Pressmatrix

curl -X POST https://{auth-server-url}/pmx-api/v2/{profile_token}/authorize \
  -H "Authorization: Bearer {ACCESS_TOKEN}" \
  -H "OIDC-ID-Token: {OIDC_ID_TOKEN}" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "issue_name": "Sample Issue May 2014",
    "issue_date": "2014-05-01",
    "category_name": "Sample Category",
    "category_ids": "20924,20925",
    "product_id_apple": "sample_issue_2014_05",
    "product_id_google": "sample_issue_2014_05",
    "product_id_amazon": "sample_issue_2014_05",
    "product_id_external": "sample_id_1,sample_id_2"
  }'

Die Middleware prüft zuerst ob der Token gültig ist [Anfrage zum OIDC-Provider]

Wenn der Token ungültig ist, wird der Status 401, Unauthorized zurückgegeben

Wenn der Token gültig ist, wird geprüft, ob der Kunde Zugriff auf die angefragte Ressource hat

falls ja: Rückgabe von granted: true

falls nein: Rückgabe von granted: false

Die Daten der Abonnemente müssen in eine eigene Datenbank der Middleware synchronisiert werden, damit beim zugriff nicht auf die Live-Daten im CRM zugegriffen werden müssen. Sonst kann der Kunde bei beispielsweise eines API-Problems bei Sage nicht auf eine Ausgabe zugreifen.

image.png

Mögliche CRM Datenstruktur

Kontakt beziehungsweise Benutzer

Feld Beispiel
CRM Contact ID 4711
OIDC Subject 8b153fb2-...
E-Mail kunde@example.ch
Status aktiv
Identity Provider keycloak

Der wichtigste Schlüssel ist der OIDC-Claim sub. Die E-Mail-Adresse sollte nicht als dauerhafter Primärschlüssel verwendet werden, weil sie sich ändern kann.

Abonnement

Feld Beispiel
Subscription ID SUB-2026-00123
Contact ID 4711
Produktcode MAGAZIN-PREMIUM
Beginn 2026-01-01
Ende 2026-12-31
Status aktiv
Kündigungsdatum optional
Grace Period bis optional

Produktzuordnung

CRM-Produktcode PressMatrix-ID
MAGAZIN-PREMIUM com.publisher.magazin.premium
MAGAZIN-2026 magazin_issue_2026_*
ARCHIV-ZUGANG Kategorie archive

Mögliche Middleware Datenbank:

                    Synchronisation
Sage CRM ─────────────────────────────────► Middleware-Datenbank
                                                   ▲
                                                   │ schnelle Abfrage
PressMatrix ───────────── authorize/issues ─────────┘




identity_mapping
----------------
issuer
oidc_subject
crm_contact_id

subscriptions
-------------
subscription_id
crm_contact_id
status
valid_from
valid_until
grace_until

entitlements
------------
subscription_id
product_code
pressmatrix_product_id
valid_from
valid_until