Les connexions

Généralités

MyReport utilise un composant externe pour se connecter à diverses API : CData ADO.NET Provider for REST

Une connexion REST permet de préparer la connexion à un WebService de type REST pour son utilisation dans un modèle.

Note

Liste des connexions validées avec MyReport BE : https://portail.myreport.fr/knowledge/article/554

Paramétrage

Important

Il est important de bien lire la documentation de l'API du WebService pour comprendre comment s'y connecter.

Il est fortement conseillé de valider la connexion avec un outil externe comme postman ou insomnia avant de tenter la connexion dans MyReport Data.

La ConnexionString permet à MyReport Data de savoir comment se connecter à une API, et comment récupérer les données.

Elle est constituée d'un ensemble de clé/valeurs, permettant de définir

  • L'URL d'accès aux données
  • Une méthode d'authentification
  • La manière de transformer les données reçues pour les rendre compatible avec un système tabulaire et relationnel (SQL)
  • La sécurisation de la connexion (SSL, SSH, Proxy, Firewall)
  • Une gestion de cache
  • Divers propriétés comme :

    • un TimeOut de connexion (différent de celui natif de MyReport),
    • La génération d'un format d'accès personnalisable via un fichier RSD (cas avancé)
    • ...

En-têtes de la connexion

  • Pour les utiliser, il faut ajouter un paramètre supplémentaire de Connection String avec pour libellé "CustomHeaders" et pour valeur les en-têtes voulues sous la forme "en-tête:valeur" et séparées par un retour à la ligne.

Note

En OAuth Code, si l'API fait un contrôle sur le RedirecURI, il faut obligatoirement définir le port utilisé dans le RedirectURI, même si c'est le port 80.

Ce port doit être disponible sur la machine qui fait l'authentification (exécutant MyReport Data).

Important

La documentation de ce paramètre se trouve ici

Important

La configuration d'une connexion REST doit respecter la documentation de l'API : chaque API a ses propres règles de nommage, d'authentification et de structure des données retournées.

Il est possible d'ajouter des paramètres variables ou statiques lors du paramétrage d'une connexion REST

  • Les paramètres variables sont des formules MyReport qui doivent renvoyer du texte.

    Syntaxe :
    MyReport (... )
    
    Exemple :
    MyReport ( DateEnTexte ( DateDernierETLOK ) )

Authentification

Authentification simple

Aucune authentification : le Webservice ne nécessite aucune authentification.

Authentification Login / Mot de passe / NTLM : le WebService nécessite un couple login/Mot de passe (aussi appelé Credential) qui est passé dans l’entête de la requête HTTP(s).

Il existe trois modes Login / Mot de passe :

  • Login / Mot de passe :

    1. MyReport effectue d'abord un challenge HTTP (un premier appel au serveur sans authentification).
    2. Le serveur renvoi une erreur 401 avec l'entête WWW-Authenticate: Basic realm="...."
    3. MyReport effectue un second appel avec l'entête Authorization: Basic ....

    Basic Auth :

    • MyReport ne fait qu'un appel avec l'entête Authorization: Basic ....

      Ce mode existe parce que certains serveurs ne respectent pas le protocole du challenge et ne mettent pas la bonne entête dans la réponse.

    Authentification Windows (NTLM) :

    • MyReport utilise les informations d’identification utilisateur de Microsoft Windows pour tenter l’authentification auprès du serveur

    Digest :

    • Un premier appel est effectué pour récupérer des informations qui seront utilisés pour calculer l'entête d'authentification
    • MyReport fait un appel avec l'entête Authorization: Digest ....

Authentification OAuth 2.0

Le Webservice nécessite une authentification de type OAuth 2.0. Cette authentification utilise un système de Token à durée limitée.

Generalités

Pour toutes connexions en OAuth 2.0 les paramètres suivants sont requis :

  • ID Client : identifiant de l'application. client_id . (obligatoire)
  • Code secret client : mot de passe. client_secret (obligatoire)
  • Url d'accès (Access Token) : cette URL sert à récupérer le Token que MyReport doit fournir dans l'URL d'accès aux données. MyReport rajoute à cette URL les informations récupérées après l'appel à l'URL d'authentification. URL de récupération des Tokens (nommée {URLToken}
  • Fréquence d'actualisation du Token (Refresh Token) : ces paramètres permettent d'avoir toujours un Token valide en appelant l'URL de récupération du Token régulièrement.

    Le Refresh Token est stocké dans la configuration du modèle, et est actualisé par le Serveur en fonction de la fréquence configurée en rappelant l' URL de récupération des Tokens.

Le Token d'accès (Access Token)

Cette procédure permet de récupérer l'AccessToken.

  1. {URLAuthentification}?response_type=code&redirect_uri={URLRetour}

    Récupération d'un code "code" {codeValue} basé sur un Login/Mot de passe demandé pendant la configuration de la connexion/modèle

  2. {URLToken}?redirect_uri={URLRetour}&grant_type=authorization_code&code={CodeValue}

    Récupération d'un RefreshToken "refresh_token" {RefreshTokenValue}

  3. {URLToken}?redirect_uri={URLRetour}&grant_type=refresh_token&refresh_token={RefreshTokenValue}

    Récupération d'un AccessToken "access_token" {AccessTokenValue}

Exploitation de l'AccessToken

  • MyReport appelle l'URL des données en ajoutant automatiquement le paramètre : access_token={AccessTokenValue}

  • Lors de l'ETL, on n'utilise que l' URL de récupération des Tokens pour avoir un nouveau AccessToken

OAuth Client Credential

La récupération d'un Token se fait à l'aide d'une URL de récupération de Token. Il n'y a pas de phase d'authentification (Login / mot de passe).

Le paramètre URL de retour (nommée {URLRetour} ou CallbackURL) est optionnel. Si besoin on peut le rajouter en paramètre supplémentaire du ConnexionString de la connexion.

Exemple :
En premier paramètre, Libellé : OAuthIncludeCallbackURL ; valeur : true
En deuxième paramètre,  Libellé : CallbackURL ; valeur : http://localhost:XXXX/callback
OAuth Authorization Code

2 URLs supplémentaires sont à configurer pour la mise en place d'une authentification avec le protocole OAuth 2.0 - Authorization Code:

  • URL de retour (nommée {URLRetour} ou CallbackURL)

  • URL d'authentification (nommée {URLAuthentification} )

Paramètres de fréquence d'actualisation du Token : Permet de sélectionner les jours de la semaine et la répétition hebdomadaire d'actualisation

Lors de la validation de la connexion en Authorization Code, la mire de validation apparaît.

Astuce

Des paramètres supplémentaires d'autorisation OAuth peuvent être passés dans l'onglet d'authentification.

Par exemple, pour passer le scope d'authentification directement dans la chaine de connexion, on aura pour syntaxe :

Libellé

Valeur

scope

basic email

ghostghostghostghostghost
loading table of contents...