Intégration avec la boutique en ligne Beacon

Cette rubrique couvre l'intégration de la boutique en ligne Beacon via OIDC (Open ID Connect).

Authentification via OIDC et droits

Authentification

Beacon utilise les flux OAuth 2.0 suivants pour l'authentification :

  • Code d'autorisation avec PKCE : iOS, Android et Web
    Autorisation avec PKCE
    Autorisation avec PKCE
  • Flux de périphériques (extension Oauth 2.0) : Téléviseurs connectés et intelligents
    Flux de l'appareil
    Flux de l'appareil
,

Trois jetons devraient être mis à la disposition de Beacon :

  • Jeton d'accès : confirme qu'un utilisateur a pu s'authentifier et doit avoir accès à Beacon (format JWT et doit inclure iss et sub)
  • Jeton d'actualisation : permet à l'utilisateur de rester connecté après l'expiration du jeton d'accès en fournissant un mécanisme permettant d'obtenir automatiquement un nouveau jeton d'accès au nom de l'utilisateur (tant que l'utilisateur est autorisé à y accéder), ce qui est particulièrement important sur les téléviseurs
  • Jeton d'identité : standardise la façon dont nous obtenons des informations sur les utilisateurs

Les types de subventions suivants doivent être pris en charge :

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

Les points de terminaison des fournisseurs d'authentification suivants devront être configurés dans Beacon (le client doit nous les fournir afin que nous puissions les configurer. Si OpenID Connect Discovery est disponible, nous pouvons les découvrir) :

  • Jeton d'accès (JWT)
  • Jeton d'actualisation (JWT)
  • Informations sur l'utilisateur
  • Jeton de révocation (JWT)
  • Autoriser
  • Codes d'appariement
  • JWKS
  • Déconnexion
  • OpenID Connect Discovery (/.well-known/openid-configuration) - Utilisé pour la configuration du système

Exemples d'éléments configurés dans Beacon CMS

Exemple de configuration
Exemple de configuration

Droits

Pour ce qui est d'informer Beacon des droits des utilisateurs, Beacon fournit l'API suivante : https://beacon.brightcove.com/{instance}/webhook/beacon(clé API fournie par Brightcove)

La charge utile sera 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”
  }
]

Lors de l'utilisation d'un système d'authentification externe, external_user_id correspond à la valeur du sujet dans le jeton d'accès

Exemple d'appel Postman au webhook d'habilitation :

Exemple d'appel de facteur
Exemple d'appel de facteur