Fonctionnement

Spécifications techniques de MyReport BE

Langages et composants

  • NET : 8.0
  • ASP.NET : 9.0
  • Angular : 18.2.3
  • DevExpress : 24.1.5
  • Identity Server : 7.0.6

Thirdparty

  • DotNet 8.0.11
  • DotNetFramework 4.7.2
  • DotNetHostingBundle 8.0.6

Chiffrement

  • Pour les bases de données et, de manière générale, où il y a une nécessité de chiffrement, la chaine de caractère concernée est chiffrée. La chaine de caractère est chiffrée dès la saisie dans l'interface, persistée de manière chiffrée et décodée au moment où le mot de passe est requis.

  • Exemples :

    • Pour les bases de données, dans la chaine de connexion (Connection string) vers la base de données
    • Pour l'AD, lors de l'envoi de la requête de validation aux serveurs d'authentification de Microsoft

Schéma général de fonctionnement de MyReport BE

MyReport Business Evolution est une application 3 tiers : Les produits clients (MyReport Data/Administrator/Messenger/Builder/Center) se connectent à MyReport Server, qui effectue les traitements (Sélection des données, chargement des données dans l'entrepôt et diffusions).

Il n'est pas nécessaire que Microsoft Excel soit installé sur le serveur MyReport : MyReport Server utilise des composants tiers (composants devExpress) pour manipuler les fichiers Excel en lecture (source de donnée) ou écriture (diffusions).

Figure 1.1. Schéma général de fonctionnement de MyReport Business Evolution

Schéma général de fonctionnement de MyReport Business Evolution

Fonctionnement entre les services MyReport

Tous les services (MyReport Server, Auth, Center, CenterAPI, ExtMan, ExtManAPI) font appel au service Discovery pour connaitre l'adresse à utiliser pour communiquer avec un autre service. Cela implique que tous ces services doivent connaitre l'adresse du service Discovery.

Les clients lourds ne communiquent pas avec le service Discovery mais avec MyReport Server pour avoir ces informations.

Important

L'URL d'accès à la configuration des URL est celle du sous-site "discovery" de MyReport Center. Elle est à configurer dans MyReport Server.

<URL_de_votre_center>/discovery

Exemple : https://center.myreport.fr:443/discovery

Fonctionnement de l'authentification

Toute l'authentification MyReport est gérée par le service d'authentification. Celui-ci est un sous-site de MyReport Center.

L'authentification permet de se connecter à un serveur de projet et d'accéder à l'ensemble de ce projets (selon les droits de l'utilisateur défini dans MyReport Administrator).

Fonctionnement

  • L'authentification de tous les clients (applications, site, CLI) nécessite un accès internet au service d'authentification ("/Auth")
  • Pour les clients lourds et Center

    • L'authentification se fait via la page web du service d'authentification
    • Pour les utilisateurs EntraID, ils seront rediriger vers l'interface d'authentification de leur EntraID ayant potentiellement une gestion du MFA
  • Pour les CLI et Administrator System

    • L'authentification est également gérée par le service d'authentification mais sans fenêtre web, directement via les informations demandées (mot de passe système)

Plusieurs types d'authentification sont supportées

  • Authentification MyReport
  • Authentification depuis un fournisseur d'identité (FI)

    • AD - Active Directory
    • Entra ID - Microsoft Entra ID
    • AD B2C - Azure Active Directory B2C

Important

Dans le cas de l'utilisation d'un fournisseur d'identité, l'authentification est déléguée à celui-ci.

SSO - Single Sign-On

MyReport supporte le SSO (Single Sign-On), qui permet à un utilisateur de se connecter une seule fois dans une application, permettant ainsi de ne pas se reconnecter à chaque fois aux autres applications. Ce principe reste identique pour la déconnexion.

Important

MyReport utilise le protocole OpenID Connect (OIDC) pour effectuer le SSO.

Spécificités de la déconnexion

  • La déconnexion de l'utilisateur le déconnecte de tous les produits, y compris Center.
  • La déconnexion de l'utilisateur n'enregistre pas le travail en-cours de celui-ci pour les projets ouverts dans les différents produits.

Spécificités SSO

  • Si vous avez plusieurs comptes de licences

    • Si plusieurs comptes de licences sont paramétrés, le compte sur lequel s'est faite la dernière authentification côté client lourd prime côté Center

Gestion des jetons (tokens) d'authentification

Les applications utilisent l'access-token pour chaque appel au serveur MyReport.

Selon la durée de validité du jeton, celui-ci est rafraichi automatiquement et silencieusement par les applications, et ce durant la durée de validité du refresh-token.

Gestion des tokens

  • Par défaut, l'access-token à une durée de validité de 1h.
  • Par défaut, le refresh-token à une durée de validité d'un mois.

    • Le refresh token est stocké dans "...\AppData\Roaming\MyReport\Servers\ServerProject.infx"

Modification de la durée des tokens

Table 1.3. Paramétrage à renseigner pour modifier la durée de validité des jetons d'authentification

Site

Localisation

Paramétrage à ajouter (partie en gras)

Site d'authentification

C:\inetpub\MyReportCenter\ServerIdentity\appsettings.json

{
  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
  },
  "AllowedHosts": "*",
  "locale": "",
  "identityProvider": {
    "onlyExternalIdP": false // Allows display of an intermediate window allowing connection with a MyReport user (outside the identity provider) even on an account with a Graph type IdP configured. Otherwise, the user is directly redirected for authentication on the IdP environment.
  },
  "ServiceDiscovery": {
    "Url": "/discovery"
  }
  "ClientLifetime": {
    "AccessTokenLifetime": 3600,
    "RefreshTokenExpiration": "Sliding", // Or "Absolute",
    "AbsoluteRefreshTokenLifetime": 2592000, // 30 jours
    "SlidingRefreshTokenLifetime": 1296000 // 15 jours"
  }
}

Stratégies de gestion de la durée de vie des refresh tokens

  • Il existe deux stratégies principales de gestion de la durée de vie des refresh tokens : Sliding et Absolute. Ces stratégies déterminent combien de temps un refresh token reste valide et dans quelles conditions il peut être renouvelé.
  • Sliding Expiration (Expiration glissante)

    • Le refresh token a une durée de vie maximale glissante.
    • À chaque fois qu’un refresh token est utilisé avec succès pour obtenir un nouvel access token, une nouvelle fenêtre d’expiration est ouverte (ex. : 14 jours à partir de maintenant).
    • Mais il y a une limite : la durée de vie totale ne peut pas dépasser un temps maximum absolu, sinon un nouveau login est requis.
    • Exemple :

      • Sliding lifetime : 14 jours
      • Absolute lifetime : 30 jours
      • Si l’utilisateur utilise son refresh token tous les 10 jours, il pourra rester connecté jusqu’à 30 jours, mais jamais plus.
  • Absolute Expiration (Expiration absolue)

    • Le refresh token a une durée de vie fixe (ex. : 30 jours) définie dès sa création.
    • Même s’il est utilisé plusieurs fois, il expire toujours à la même date/heure.
    • Une fois expiré, l’utilisateur doit se reconnecter.
    • Exemple :

      • Absolute lifetime : 30 jours
      • Même si l’utilisateur l’utilise tous les jours, il devra se reconnecter au bout de 30 jours.

MFA - Authentification multifacteur

Le MFA (Multi-factor authentication - Authentification multifacteur) permet de renforcer la sécurité de l’accès à vos comptes grâce à l’ajout d’un ou de plusieurs facteurs d’authentification (par exemple un code reçu par SMS ou par e-mail).

Important

MyReport supporte le MFA pour les fournisseurs d'identité ci-dessous :

  • Entra ID - Microsoft Entra ID

  • AD B2C - Azure Active Directory B2C

Avertissement

Le MFA est à configurer dans votre fournisseur d'identité.

Spécificités

Chrome doit "Autoriser le site d'authentification à enregistrer des données sur votre appareil"

  • Sur votre ordinateur, ouvrez Chrome.
  • En haut à droite, cliquez sur les "trois petits points" -> "Paramètres"
  • Cliquez sur "Confidentialité et sécurité" -> "Paramètres des sites"
  • Cliquez sur "Paramètres de contenu supplémentaires" -> "Données des sites sur l'appareil"
  • Sélectionnez

    • un comportement par défaut -> "Autoriser les sites à enregistrer des données sur votre appareil"
    • ou
    • un comportement personnalisé -> "Autoriser les sites à enregistrer des données sur votre appareil"

Contenu des différents dossiers

A quoi correspondent les différents dossiers évoqués dans le schéma ?

  • Paramétrage MyReport Server

    • Dossier de stockage : C:\ProgramData\MyReport
    • Contenu du dossier

      • Dossier "App" : Sérialisation de MyReport
      • Dossier "Discovery" : Configuration des URL vers les différents services MyReport
      • Dossier "Server" : Paramétrage de MyReport Server
      • Dossier "Sources" : Configuration des sources références dans MyReport Server
      • Fichier "LogError.txt" : Détail des erreurs rencontrées par le serveur
  • Paramétrage MyReport "Client"

    • Dossier de stockage : C:\Users\{User}\AppData\Roaming\MyReport
    • Contenu du dossier

      • Dossier "App" : Configuration licence de MyReport
      • Dossier "Builder" : Préférences utilisateur de MyReport Builder
      • Dossier "CLI" : Stocke les informations d'authentification utilisées par les lignes de commande
      • Dossier "Data" : Préférences utilisateur de MyReport Data
      • Dossier "Page" : Préférences utilisateur de MyReport Page
      • Dossier "SizeForm" : Taille et position des fenêtres des produits Data, Builder, Page, Administrator et Messenger.
      • Dossier "Servers" : Liste des serveurs, projets et sources locales fichier (Builder) référencés dans les applications Administrator, Data, Builder, Page et Administrator
      • Fichier "LogError.txt" : Détail des erreurs rencontrées par les applications Data, Builder, Page, Administrator et Messenger.
      • Fichier "Settings.infx" : Préférences globales des produits Data, Builder, Page, Administrator et Messenger (choix de la langue).
  • MySystems

    • Dossier de stockage : variable.
    • Contenu du dossier : paramétrage du projet
  • MyDrive

    • Dossier de stockage : A définir par l'utilisateur, par défaut dans le dossier Data du dossier MySystems
    • Contenu du dossier :

      • Fichiers sources des Modèle de fichier plat, Modèle d'Excel ou des Diffusions
      • Fichiers diffusés

Interactions avec le registre

Table 1.4. MyReport Builder, en fonction de l'installation et de l’environnement, exploite l'une des deux clés de registre suivantes pour les barres d'outils

Installation pour tous les utilisateurs, sur un OS 32 bits

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\

Installation pour tous les utilisateurs, sur un OS 64 bits et Office 64 bits

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\

Installation pour tous les utilisateurs, sur un OS 64 bits et Office 32 bits

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Office\


Table 1.5. Le paramétrage des barre d'outils sont dans les sous-dossiers suivants du registre

Excel

Excel\Addins\Builder.AddIn

Word

Word\Addins\Builder.AddIn

PowerPoint

PowerPoint\Addins\Builder.AddIn


ghostghostghostghostghost
loading table of contents...