Integration mit dem Beacon Web Store

Dieses Thema behandelt die Integration von Beacon Web Store über OIDC (Open ID Connect).

Authentifizierung über OIDC und Berechtigungen

Authentifizierung

Beacon nutzt die folgenden OAuth 2.0-Flows für die Authentifizierung:

  • Autorisierungscode mit PKCE: iOS, Android und Web
    Autorisierung mit PKCE
    Autorisierung mit PKCE
  • Gerätefluss (Oauth 2.0-Erweiterung): Vernetzte und Smart-TVs
    Gerätefluss
    Gerätefluss
,

Es gibt 3 Token, die Beacon voraussichtlich zur Verfügung gestellt werden:

  • Zugriffstoken: bestätigt, dass sich ein Benutzer authentifizieren konnte und Zugriff auf Beacon erhalten sollte ( JWT-Format und müssen iss und sub enthalten)
  • Token aktualisieren: ermöglicht es dem Benutzer, nach Ablauf des Zugriffstokens angemeldet zu bleiben, indem ein Mechanismus bereitgestellt wird, um automatisch ein neues Zugriffstoken im Namen des Benutzers zu erhalten (solange der Benutzer Zugriff hat) - das ist besonders wichtig bei Fernsehern
  • Identitätstoken: standardisiert die Art und Weise, wie wir Informationen über Benutzer erhalten

Folgende Zuschussarten sollen unterstützt werden:

  • authorization_code
  • refresh_token
  • urn:ietf:params:oauth:grant-type:device_code

Die folgenden Endpunkte des Authentifizierungsanbieters müssen in Beacon konfiguriert werden (der Kunde muss uns diese zur Verfügung stellen, damit wir konfigurieren können - wenn OpenID Connect-Erkennung verfügbar ist, können wir diese entdecken):

  • Zugriffstoken (JWT)
  • Aktualisierungstoken (JWT)
  • Benutzerinformation
  • Widerrufstoken (JWT)
  • Autorisieren
  • Pairing-Codes
  • JWKS
  • Ausloggen
  • OpenID Connect-Erkennung (/.well-known/openid-configuration) - Wird zur Konfiguration des Systems verwendet

Beispiele für Elemente, die in Beacon CMS konfiguriert wurden

Beispielkonfiguration
Beispielkonfiguration

Berechtigungen

Um Beacon über Berechtigungen für Benutzer zu informieren, bietet Beacon die folgende API: https://beacon.brightcove.com/{instance}/webhook/beacon(API-Schlüssel von Brightcove bereitgestellt)

Die Nutzlast ist JSON:

[
  {
    "package_name": "string",			// Commerce package for SVOD or SKU for TVOD purchases - required
    "external_user_id": "string",			// User identifier (username or email depending on configuration of users)- required
    "transaction_id": "string",			// Unique transaction id for purchase - required for subscriptions (this will be used in renewal)
    "start_date": "string",				// Start date for entitlements 
    "end_date": "string",				// End date for entitlements (applicable if a rent or a subscription)
    "trial_end_date": "string",			// End date for a trial if applicable
    "effective_cancellation_date": "string",		// Date by when cancellation is effective (for example, end of current subscription period)
    "notification_type": "new",			// One of: new, renew, cancellation, buy or rent - required
    “payment_gateway”: “beaconstore”      // One of: “beaconstore”
  }
]

Bei Verwendung eines externen Authentifizierungssystems entspricht die external_user_id dem Betreffwert im Access-Token

Beispiel für einen Postman-Aufruf an den Berechtigungswebhook:

Beispiel für einen Postbotenanruf
Beispiel für einen Postbotenanruf