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
- Gerätefluss (Oauth 2.0-Erweiterung): Vernetzte und Smart-TVs
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
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