Sécurité des API

Ce document présente le modèle d'authentification et de sécurité de l'interface de programmation d'application (API) de M3. Il fournit également des recommandations concernant la configuration de l'environnement pour l'accès via des API.

Introduction

Une API est une interface à un programme M3 permettant à un programme d'application externe d'exécuter des transactions pour charger ou télécharger des données spécifiques, activer certaines procédures, etc.

Deux méthodes distinctes sont disponibles pour l'interaction avec l'API M3. La méthode traditionnelle implique de passer par un composant client via une communication par socket conformément à un protocole propriétaire mais une communication via des services Web a également été mise en place. Les services Web permettent d'utiliser la communication HTTP/HTTPS, ainsi que le protocole Rest.

Le composant client communique via des canaux ouverts, de préférence sur un réseau interne. La version Java des interfaces client prend également en charge la communication et l'authentification SSL à l'aide de certificats. La communication via un composant client ne peut être utilisée dans un environnement Cloud mutualisé.

La partie HTTP des services Web communique également sur des canaux ouverts. HTTP convient uniquement aux réseaux internes ; HTTPS est à utiliser si un accès depuis des sources externes est requis. Dans un environnement Cloud mutualisé, HTTPS est requis.

Implémentation des API M3

Lorsqu'une technique API M3 est utilisée pour accéder au logiciel M3, les informations d'identification utilisateur doivent respecter la connexion initiale.

Dans tous les programmes API, les utilisateurs sont limités aux divisions auxquelles elles peuvent avoir accès. Différents programmes API dans des domaines d'application distincts peuvent également faire l'objet de restrictions au niveau champ, de restrictions au niveau de l'établissement, du dépôt, et ainsi de suite.

Par le biais des API M3, les utilisateurs peuvent par défaut avoir accès à chaque programme API et chaque transaction API, ce qui n'est pas préférable - mais il est possible de restreindre l'utilisation des programmes API et de leurs transactions par les utilisateurs.

M3 BE propose les méthodes suivantes pour gérer la sécurité des API M3 :

  • Autorisation par transaction - Fonction. Connecter autorisation API (SES005).
  • Autorisation par rôles – Fonction. Connecter autorisat par rôle (SES400) et Transaction API. Connecter opt. sécurité (SES405)

Authentification utilisateur

Les utilisateurs M3 sont authentifiés via le mécanisme d'authentification des utilisateurs. Qui plus est, l'utilisateur doit être enregistré dans M3 au moyen du programme (MNS150).

Il existe deux types de profils utilisateur liés aux API M3. Le type utilisé dépend principalement de la façon dont les applications client sont conçues.

  • Les utilisateurs peuvent travailler depuis leur poste de travail avec des applications client qui accèdent directement au serveur d'applications M3. Ils se connectent comme d'habitude avec leurs identifiants d'application M3.
  • Les utilisateurs accèdent à l'application cliente depuis un serveur intermédiaire (par exemple, un serveur Web) et ne se connectent jamais au serveur d'applications M3. A la place, l'application se connecte à l'aide d'un profil utilisateur partagé spécialement créé à cet effet. Les applications concernées sont par exemple M3 WebShop ou le serveur SOAP API M3.

Les utilisateurs M3 sont authentifiés par le mécanisme de la plateforme qu'ils utilisent. Les profils utilisateur utilisant l'API M3 doivent être définis de la manière habituelle pour les utilisateurs M3.

Dans la mesure du possible, des profils utilisateurs partagés issus d'applications serveur doivent être définis afin qu'ils ne puissent pas se connecter au serveur d'applications au moyen d'interfaces.

Autorisation par transaction dans (SES005)

Il est possible de limiter, jusqu'au niveau transaction, les programmes et les transactions que chaque utilisateur est autorisé à utiliser. Le programme à utiliser dans ce cas est Fonction. Connecter autorisation API (SES005).

Paramètres système dans (MNS090)

La sécurité API pour autorisation par transaction est activée par la sélection de l'option 1 – Sécurité via autorisation pour le paramètre Sécurité API dans Paramètres système. Ouvrir (MNS090).

Lorsque vous choisissez l'option 1, les utilisateurs autorisés à utiliser des transactions API doivent être ajoutés dans (SES005). Si aucun élément n'existe pour l'utilisateur dans (SES005), la transaction API est considérée comme refusée.

Connecter une autorisation dans (SES005)

Dans le programme Fonction. Connecter autorisation API (SES005), ajoutez des utilisateurs qui doivent disposer du droit d'exploiter des transactions API M3. Le comportement par défaut en mode Autorisation est d'interdire l'ensemble des programmes et transactions API.

Les programmes et transactions qui doivent être autorisés à un utilisateur peuvent être spécifiés. Vous pouvez définir des programmes et transactions pour qu'ils extraient leurs valeurs par le biais d'une invite. Pour simplifier la saisie, toutes les transactions du programme actuel peuvent être extraites, et vous pouvez ensuite retirer celles qui ne sont pas applicables.

Il est en outre possible d'autoriser toutes les transactions d'un programme en spécifiant la valeur *ALL pour un utilisateur donné. De plus, un utilisateur peut être autorisé à accéder à tous les programmes et à toutes les transactions en saisissant *ALL au niveau du programme.

Sécurité avec autorisation par rôles pour les API

Le modèle de sécurité basé sur les rôles appliqué pour les fonctions peut également être utilisé pour les transactions API où un programme API (par exemple, CRS610MI) équivaut à une fonction (par exemple, Client. Ouvrir (CRS610)). Chaque transaction API se voit affecter une option de sécurité qui équivaut à une option pour les fonctions. Les programmes employés pour cela sont (SES400) et (SES405).

La sécurité pour autorisation par rôle pour API est activée par la sélection de l'option 2 – Sécurité via rôles pour le paramètre Sécurité API dans Paramètres système. Ouvrir (MNS090).

Remarque

Avant la sélection d'une option, chaque transaction API et option de sécurité par défaut doit être créée dans (SES405). Une transaction inexistante ou dotée d'une option de sécurité vierge dans (SES405) est considérée comme une transaction restreinte et refusée pour tous les utilisateurs.

Options de sécurité dans (SES405)

Chaque transaction API doit être rattachée à une option de sécurité dans Transaction API. Connecter opt. sécurité (SES405). Les enregistrements et les options de sécurité de l'ensemble des transactions et programmes API existants sont générés par la touche de fonction F18 (Gén standard) dans (SES405). Les options de sécurité sont définies avec une valeur par défaut fondée sur le nom de la transaction et correspondent aux options standard (1-6) utilisées dans les fonctions. Les options peuvent être modifiées manuellement par la suite. Le programme est configuré par client.

La touche de fonction F18 peut également être utilisée par la suite pour mettre à jour le programme avec les nouvelles transactions API et les options de sécurité par défaut.

Le tableau qui suit montre comment les options de sécurité sont fondées sur le nom de la transaction.

Option de sécurité Le nom de la transaction API commence par :
1 Ajouter, Créer, Cré
2 Modifier, Mod mise à jour, Màj
3 Copier, Cop
4 Supprimer, Suppr, Sup
5 Obtenir, Liste, Lst, Rechercher, Sélectionner, Sél
6 Imprimer, Imp
Remarque

Toutes les transactions pour lesquelles il n'est pas possible d'identifier une option de sécurité sur la base du nom se voient attribuer l'option de sécurité 2.

Le tableau qui suit montre un exemple d'options de sécurité par défaut définies pour CRS610MI (interface client) selon le type de transaction.

Option de sécurité Transaction API Description
1 Add Créer un nouvel enregistrement client
1 AddAddress Créer une nouvelle adresse client
1 AddText Ajouter du texte pour un client
2 CheckPIN Vérifier le code client et le code PIN
2 ChgAddress Modifier des données d'adresse client
2 ChgBasicData Modifier des données de base client
3 Copy Copier un enregistrement client existant
4 Supprimer Supprimer un enregistrement client
4 DeleteAddress Supprimer un enregistrement d'adresse client
2 EXPORTSMS Exporter vers SMS
5 GetAddress Extraire des données d'adresse client
5 GetBasicData Extraire des données de base client
5 LstAddresses Dresser une liste des informations d'adresse client

Par la suite, si vous souhaitez la sécurité pour un nouveau programme ou une nouvelle transaction API implémentée, vous devez saisir le nom du nouveau programme API dans le champ Programme, puis appuyez sur Entrée. Toute nouvelle transaction concernant une API est créée dans la table CMNSMI (SES405) avec une option de sécurité vide. Vous pouvez soit saisir l'option manuellement, soit accepter l'option système par défaut au moyen du bouton 'Options par défaut' ou la touche de fonction F14 (Options par défaut). Seules les transactions API sans option de sécurité renseignée sont mises à jour à l'aide de la touche de fonction F14.

Les options de sécurité valides pour les transactions API sont les suivantes :

  • Les options 00 à 99 peuvent être définies manuellement.
  • L'option 00 n'exige aucune autorisation et est considéré ouverte à tous les utilisateurs.
  • L'option '**' est définie par la touche de fonction F14 ou F18 dans (SES405) et ne nécessite pas de sécurité pour le fonctionnement de M3. Cette option de sécurité ne peut pas être modifiée.
Remarque

Les transactions API sans option de sécurité renseignée ou non répertoriées dans (SES405) sont considérées comme restreintes et sont refusées pour tous les utilisateurs si le paramètre de sécurité API a la valeur 2 (Sécurité via rôles) dans (MNS090).

Autorisation par rôle dans (SES400)

Les options de sécurité (1-99) qui doivent être valides pour un programme API, un rôle, une division et une société sont définies dans Fonction. Connecter autorisat par rôle (SES400) de la même manière que pour les fonctions. Pour les programmes API, l'option associée 11 (Sécurité des transactions API) permettant d'ouvrir (SES405) peut être utilisée. Lé résultat de la configuration dans (SES400) peut être consulté dans Autorisation par utilisateur. Afficher (SES401).

Exemple de la connexion entre options de sécurité dans (SES400) et (SES405) :

Vous avez créé un rôle appelé AFFICHER qui n'est disponible que pour les transactions qui affichent ou listent des enregistrements pour un programme API. Dans (SES400), vous créez un enregistrement pour le programme API et cochez la case correspondant à l'option de sécurité 5. Assurez-vous ensuite que les transactions d'affichage et de liste pour le programme API dans (SES405) sont connectées à l'option de sécurité 05.

Fonction dans (MNS110)

Le paramètre 'Autorisation requise' dans Fonction. Ouvrir (MNS110) détermine alors si des éléments à saisir sont nécessaires dans (SES401) pour que l'utilisateur ait accès au programme API.

Si ce paramètre doit être défini sur 1, saisissez le nom du programme API dans le champ Fonction de l'écran B, et sélectionnez Créer. Dans l'écran E, sélectionnez Catég fonction= API – programme API et cochez la case pour Autor requise puis appuyez sur entrée.

La table ci-dessous montre si un utilisateur est autorisé à exécuter une transaction API, en fonction de la valeur du paramètre dans (MNS110), définie dans (SES401) et (SES405).

Paramètre 'Autor requise' défini sur 0 :

Enregistrement dans (SES401) pour utilisateur/programme Transaction API dans (SES405) et option de sécurité connectée Utilisateur autorisé à exécuter la transaction API
Numéro Numéro Non autorisé
Numéro Oui - option vide Non autorisé
Numéro Oui - toute option entre 00 et 99 Autorisé
Oui - option 5 autorisée Numéro Non autorisé
Oui - option 5 autorisée Oui - option vide Non autorisé
Oui - option 5 autorisée Oui - option 02 Non autorisé
Oui - option 5 autorisée Oui - option 05 Autorisé

Paramètre 'Autor requise' défini sur 1 :

Enregistrement dans (SES401) pour utilisateur/programme Transaction API dans (SES405) et option de sécurité connectée Utilisateur autorisé à exécuter la transaction API
Numéro Numéro Non autorisé
Numéro Oui - option vide Non autorisé
Numéro Oui - option 05 Non autorisé
Oui - option 5 autorisée Numéro Non autorisé
Oui - option 5 autorisée Oui - option vide Non autorisé
Oui - option 5 autorisée Oui - option 02 Non autorisé
Oui - option 5 autorisée Oui - option 05 Autorisé