A3BC — Build digital trust. Together.
Français English
Documentation/Partage différé/Vue d'ensemble

Vue d'ensemble

Accéder plus tard à des informations dont le credential n'était pas encore validé.

Le partage différé permet à un utilisateur de partager des informations issues de credentials pas encore validés. Vous les récupérez ensuite, de façon asynchrone, quand ils le sont.

Principe

  • Le consentement suit le flux authorization_code habituel, avec le scope private:delayed_sharing.
  • L’utilisateur peut sélectionner des credentials encore en attente de validation.
  • Un nouveau claim, private:delayed_sharing, contient l’URL de l’API de partage différé.
  • Cette API reste accessible après l’expiration du code et des jetons, pendant une durée fixée par un TTL. Elle réexpose les informations consenties ; les claims des credentials désormais validés apparaissent.
  • Elle s’appelle avec un jeton obtenu par le flux client_credentials, avec les mêmes identifiants que le flux authorization_code.
  • Si tous les credentials sont déjà validés, l’API retourne simplement les mêmes informations que la transaction initiale.
Navigateur Votre serveur (RP) A3BC OIDC App TrustMe 1Clic « Se connecter avec TrustMe » 2Redirection vers /oauth2/auth 3GET /oauth2/auth (scope, state, nonce) 4Authentification et consentement 5Consentement accordé 6Redirection redirect_uri?code&state 7Callback avec le code 8POST /oauth2/token (code) 9id_token + access_token

Limites

Même avec ce scope, vous pouvez ne jamais recevoir toutes les informations :

  • l’utilisateur n’a aucun credential à partager (validé ou en attente) ;
  • la validation d’un credential a échoué ;
  • l’utilisateur supprime un credential (avant ou après validation) ou révoque son consentement ;
  • le TTL du partage est expiré.

La réponse OIDC initiale n’explique pas pourquoi un claim manque ; l’API de partage différé indique si un claim correspond à un credential en attente.

Stratégie d’implémentation

  1. Collectez et stockez tous les claims disponibles dès le consentement : ne comptez pas sur une relecture ultérieure.
  2. Si un claim attendu manque, appelez tout de suite l’API de partage différé pour savoir s’il peut arriver.
  3. Réagissez ensuite aux webhooks pour réinterroger l’API.
  4. Collectez les claims dès qu’ils apparaissent : ils peuvent disparaître ensuite.
  5. Prévoyez des règles métier pour le cas où le claim n’arrive jamais.
Si vous avez demandé un claim comme obligatoire, il doit être disponible et validé au moment du consentement : il sera forcément livré.

Configuration côté A3BC

Réalisée par A3BC dans le back-office, sur votre demande :

  • ajout du scope private:delayed_sharing aux scopes autorisés ;
  • ajout de client_credentials (et éventuellement refresh_token) aux grants, authorization_code restant sélectionné ;
  • réglage de delayed_sharing_ttl, la durée du partage en secondes.

Exemple de consentement

Avec les scopes profile private:ssn.fr private:delayed_sharing, un utilisateur qui consent avec une pièce d’identité validée et un numéro de sécurité sociale encore en attente obtient :

{
  "birthdate": "1978-03-12",
  "family_name": "DOE",
  "gender": "male",
  "given_name": "JOHN",
  "private:delayed_sharing": "http://openui.a3bc.lan/delayed-sharing/dddb6b7c-2730-4f52-bc5b-76c5e7faf549",
  "private:ssn": "",
  "private:ssn_key": "",
  "private:ssn_verified": "",
  "sub": "f997cfff165741f98038628f103fedb3"
}

Les claims private:ssn* sont présents mais vides : c’est la réponse standard quand aucune valeur n’est disponible. Le claim private:delayed_sharing donne l’URL à interroger.