# BC Security
# Vue d'ensemble
Le protocole est basĂ© sur le modĂšle requĂȘte-rĂ©ponse, utilisant le protocole Hypertext Transfer Protocol Secure (HTTPS). Tous les services utilisent les mĂ©thodes HTTP POST et GET. Les corps des requĂȘtes et des rĂ©ponses sont encodĂ©s en texte au format JSON.
# Termes
Termes ayant une signification spécifique et communément acceptée dans le Contexte Borné Sécurité.
| Module | Description |
|---|---|
| Fournisseurs Crypto | Adaptateur qui fournit les services cryptographiques et les services de gestion de clés (KMS) |
| IAM | Gestion des Identités et des AccÚs (Identity and Access Management). Adaptateur qui fournit les services de gestion des utilisateurs, menus, profils, rÎles et permissions. |
| AuthN | Module dâauthentification. NĂ©cessite un identifiant utilisateur et un mot de passe, et retourne un jeton JWT. |
| AuthZ | Module dâautorisation. NĂ©cessite un JWT et un certificat (clĂ© publique). VĂ©rifie les ROLES du JWT et la signature. |
| JWT | JSON Web Token. RenvoyĂ© aprĂšs une authentification utilisateur rĂ©ussie. Contient les dĂ©tails de lâutilisateur, les ROLES et la signature. |
| KMS | SystÚme de Gestion de Clés (Key Management System). GÚre le cycle de vie des clés cryptographiques (définition, création et retrait). Fait partie du sous-systÚme Crypto. |
# Cas dâUtilisation
# Connexion Utilisateur / Opérateur du BC (AuthN)
# Description
La fonction de connexion requiert que lâidentifiant utilisateur et une clĂ© secrĂšte soient transmis dans le corps HTTP. La rĂ©ponse contient un jeton JWT signĂ©. La signature est gĂ©nĂ©rĂ©e par le sous-systĂšme Crypto. La connexion est rĂ©alisĂ©e par les services dâauthentification ou lâIAM.
# Diagramme de flux
_Apr22_1829.96ad6adf.png)
Diagramme de workflow UC : Connexion Utilisateur / Opérateur du BC (AuthN)
# ModĂšle dâAutorisation du BC (AuthZ)
# Description
IAM fournit l'association des utilisateurs/groupes, rĂŽles et privilĂšges. Chaque BC dispose Ă©galement dâune liste de rĂŽles correspondants. Lorsquâune fonction API ou un microservice est appelĂ©, la signature du JWT est vĂ©rifiĂ©e Ă lâaide de la clĂ© publique et le rĂŽle fourni dans le JWT est comparĂ© au rĂŽle associĂ© au BC. Si la vĂ©rification de la signature et celle du rĂŽle sont rĂ©ussies, la fonction API ou le microservice est exĂ©cutĂ©.
# Diagramme de flux

Diagramme de workflow UC : ModĂšle dâAutorisation du BC (AuthZ)
# Bootstrap du BC
# Description
Au dĂ©marrage ("bootstrap"), le BC envoie la liste des privilĂšges possibles. Cette opĂ©ration est effectuĂ©e une fois Ă chaque dĂ©ploiement dâune nouvelle version.
# Diagramme de flux

Diagramme de workflow UC : Bootstrap du BC
# Démarrage du BC
# Description
Au lancement, le BC demande les clĂ©s publiques de lâĂ©metteur dâauthentification auprĂšs des sous-systĂšmes Crypto / KMS du BC SĂ©curitĂ© ainsi que la liste des rĂŽles/privilĂšges auprĂšs du sous-systĂšme IAM du BC SĂ©curitĂ©. Une fonction locale de vĂ©rification de signature d'une bibliothĂšque cryptographique vĂ©rifie la signature JWT et les rĂŽles dans le JWT sont comparĂ©s Ă la liste locale de rĂŽles obtenue du service central dâautorisation.
# Diagramme de flux

Diagramme de workflow UC : Démarrage du BC
# Association RĂŽle / PrivilĂšge
# Description
Les rÎles sont associés à un certain nombre de privilÚges.
# Diagramme de flux

Diagramme de workflow UC : Association RĂŽle / PrivilĂšge
# Exemple de RequĂȘte / Appel
# Description
Lâautorisation du client doit ĂȘtre rĂ©alisĂ©e Ă lâaide dâun jeton dâaccĂšs (access token). Un client doit dâabord demander au service dâautorisation de gĂ©nĂ©rer un jeton dâaccĂšs pour lâutilisateur qui souhaite accĂ©der Ă lâinterface. Cet utilisateur est authentifiĂ© dans le service dâautorisation. Le jeton dâaccĂšs gĂ©nĂ©rĂ© est ensuite utilisĂ© pour lâautorisation sur lâinterface. Pour utiliser le jeton dâaccĂšs, le client doit dĂ©finir lâen-tĂȘte HTTP Authorization Ă la valeur Bearer [jeton_d_acces] sur chaque requĂȘte adressĂ©e Ă lâinterface.
# Diagramme de flux

Diagramme de workflow UC : Exemple de RequĂȘte API / Appel
â BC Scheduling BC Settlements â
