Accueil Blog Maintenir les utilisateurs d'Acumatica grâce à Google Workspace

Gestion des utilisateurs Acumatica via Google Workspace

Nous fournissons des capacités d'administration étendues sur l'authentification unique (SSO) avec Google grâce à l'intégration de la base d'utilisateurs, ce qui permet aux administrateurs de créer, d'activer et de désactiver les utilisateurs Acumatica à partir de Google Workspace.
Leonardo Justiniano | 27 octobre 2022

Gestion des utilisateurs Acumatica via Google Workspace

Introduction

L'un des défis que doit relever une entreprise est de gérer la base d'utilisateurs de ses systèmes de manière orchestrée et sécurisée. De nombreux systèmes prennent en charge des plateformes standard telles qu'Azure, AWS ou Google afin de permettre une interaction transparente avec ces systèmes en offrant des fonctionnalités telles que l'authentification unique (Single Sign-On - SSO).

Jusqu'à présent, Acumatica ne fournit qu'un support intégré pour Microsoft Active Directory / Federation Services et Azure Active Directory. En outre, ils fournissent des capacités d'authentification unique avec les comptes Google et Microsoft, ainsi que OneLogin par le biais de fournisseurs Open ID. En ce qui concerne Google en particulier, je présenterai un moyen d'étendre cette capacité et de fournir une intégration de la base d'utilisateurs, permettant aux administrateurs de créer, d'activer et de désactiver les utilisateurs d'Acumatica à partir de Google Workspace.

Acumatica Single Sign-On avec Google (SSO)

Pour activer le SSO, allez dans le menu System Management > Enable/Disable Features (Gestion du système > Activer/Désactiver les fonctionnalités ). Ensuite, recherchez et définissez l'option de fonctionnalité correspondante :

Gestion des utilisateurs Acumatica via Google Workspace

Une fois qu'elle est activée, sur la page de connexion apparaîtra l'option Google permettant d'autoriser l'accès à Acumatica par un seul login.

Gestion des utilisateurs Acumatica via Google Workspace

Acumatica permet l'auto-enregistrement dans le SSO grâce à l'option MON PROFIL.

Gestion des utilisateurs Acumatica via Google Workspace

Allez ensuite dans Identités externes, sélectionnez Google et cliquez sur ASSOCIER UN UTILISATEUR.

Gestion des utilisateurs Acumatica via Google Workspace

Le processus d'authentification s'adresse à Google en utilisant le mot de passe "actuelle" avec Google Workspace. Une fois l'authentification terminée, l'identifiant du compte est défini comme identifiant de l'identité spécifiée :

Gestion des utilisateurs Acumatica via Google Workspace

Cet identifiant de compte (clé d'utilisateur) est utilisé pour identifier la session Google actuelle de l'utilisateur lors de l'authentification auprès de Google au cours de la procédure en un clic.

Ce mécanisme n'est accessible qu'à l'utilisateur normal. Il n'est pas disponible pour un administrateur, ce qui signifie qu'il n'existe aucun moyen d'attribuer une identité Google à un autre utilisateur que l'utilisateur actuel. Il faut également que l'adresse électronique de l'utilisateur soit définie comme faisant partie de l'annuaire Google ciblé.

Cet article présente une alternative permettant d'étendre cette capacité en

  • La possibilité de définir des utilisateurs dans Google et de les créer automatiquement dans Acumatica grâce à l'ensemble d'identités Google.
  • Permettre aux administrateurs d'attribuer une identité Google spécifique à un utilisateur par un administrateur sans qu'il soit nécessaire de s'authentifier à l'aide de 2FA.

Configuration des exigences de Visual Studio et de Google

Commençons par le commencement. Comment se connecter à Google ? Pour cette implémentation, j'ai utilisé les bibliothèques NuGet existantes fournies par Google :

Gestion des utilisateurs Acumatica via Google Workspace

Liste NuGet. Cette implémentation utilise la version 1.49.

En ajoutant ces bibliothèques, un ensemble de classes devient disponible pour mettre en œuvre les appels RESTAPI de manière conviviale.

Deuxièmement, il existe une liste d'exigences du côté de Google pour permettre l'intégration d'Acumatica avec Google Workspace :

  1. Créer un compte de service
    Gestion des utilisateurs Acumatica via Google Workspace
    Écran du compte de service Google
  1. Créer un fichier de clé privée pour le compte de service. J'ai pris en charge les deux formats JSON et P12 (compatibilité ascendante X.509). Le fichier est créé une fois pour le téléchargement. Après cela, il n'y a pas d'option pour le recréer.
  2. Créez un groupe d'espace de travail. L'objectif est de synchroniser les utilisateurs de Google qui appartiennent à ce groupe. Tout autre utilisateur sera ignoré.
  3. Désignez un compte d'accès. Il sera utilisé pour interroger l'annuaire Google.

Stockage du fichier de clé privée dans Acumatica

On pourrait penser qu'il suffit de télécharger le fichier dans Acumatica et que c'est tout. En effet, c'est le cas, mais j'ai besoin de contrôler le fichier car il est nécessaire pour interagir avec les points de terminaison de Google Workspace. À cet effet, tous les paramètres obligatoires et facultatifs décrits ci-dessus, ainsi que le fichier de clé privée, doivent être stockés dans Acumatica par le biais d'un écran de configuration.

Pour restreindre l'accès à l'option Fichiers à l'écran, il me suffit de mettre l'option suivante à false :

Gestion des utilisateurs Acumatica via Google Workspace

Pour mettre en œuvre un téléchargement contrôlé du fichier, un panneau de téléchargement est ajouté à l'écran :

GIST: https://gist.github.com/tac-ljustiniano/74bfe34432846dea1815d89d44a76380

Connexion à Google

Pour se connecter à l'espace de travail Google, il faut spécifier l'étendue de l'accès. Google étant la source de vérité pour la création d'utilisateurs, je n'ai besoin que d'un accès en lecture seule aux utilisateurs et aux groupes. Google propose plusieurs options dans la classe DirectoryService.Scope. Le reste consiste à utiliser les données du fichier Private Key pour la connexion.

GIST : https://gist.github.com/tac-ljustiniano/69a374543c953d0206078dc22d094d22

Récupération des utilisateurs

Il y a deux endroits où l'on peut vérifier l'identité des utilisateurs :

1. Groupe d'utilisateurs Google spécifique. L'une des exigences facultatives est la définition d'un groupe dans l'annuaire Google. L'existence d'un groupe facilite l'administration des utilisateurs en assignant simplement les utilisateurs Google qui seront créés dans Acumatica à ce groupe spécifique. La définition de l'URL du groupe est un paramètre de configuration.

Pour récupérer la liste des membres du groupe, j'utilise la classe MembersResource.ListRequest:

GIST : https://gist.github.com/tac-ljustiniano/a5962defd78ba5c4b41da107028c900f

2. Annuaire global des utilisateurs. Il couvre tous les comptes Google. Si aucun groupe n'est spécifié, il n'y a pas d'autre choix que de se synchroniser avec lui.

Pour récupérer la liste des utilisateurs de l'annuaire global de Google, j'utilise la classe UsersResource.ListRequest:

GIST : https://gist.github.com/tac-ljustiniano/27bfcd08a3b7e3c6f8ed975ae7068638

La pagination est nécessaire car, de par sa conception, l'API de Google ne fournit qu'un sous-ensemble d'enregistrements par demande. Une requête pour un seul utilisateur peut également être mise en œuvre en utilisant l'adresse électronique principale comme clé.

Synchronisation des utilisateurs Acumatica

En étendant l'écran Utilisateurs pour ajouter une action permettant d'associer l'utilisateur sélectionné à un compte de l'annuaire Google, l'utilisateur sélectionné sera synchronisé avec l'annuaire Google lorsque l'action sera invoquée. Une telle action est placée dans le contexte des IDENTITÉS EXTERNES.

GIST : https://gist.github.com/tac-ljustiniano/76d8930ee0b2d849fc8077fa8159b5b8

Une version plus étendue pour créer, mettre à jour ou désactiver des utilisateurs est créée pour traiter la liste des utilisateurs dans Acumatica selon un critère, en utilisant l'email de l'utilisateur (email primaire) comme clé :

user@domain.com

La partie "user" deviendra le login Acumatica.

Le traitement d'un écran qui invoque ce processus serait nécessaire pour programmer ce processus de synchronisation et pour qu'il ne fasse l'objet d'aucune surveillance.

Conclusion

En utilisant l'API Google et en définissant les comptes d'accès appropriés à l'espace de travail Google, les administrateurs ont la possibilité de synchroniser les informations SSO pour différents utilisateurs. De plus, un processus de synchronisation programmé peut être utilisé pour administrer sans surveillance les utilisateurs dans Acumatica. Les départements informatiques n'ont qu'à assigner les utilisateurs à un groupe spécial et ils seront créés dans Acumatica. D'autres travaux sont encore nécessaires pour étendre le champ d'application aux rôles Acumatica. Actuellement, cette implémentation crée les utilisateurs avec un accès de base à Acumatica. Des autorisations supplémentaires doivent encore être accordées pour permettre à ces utilisateurs d'interagir avec leurs modules respectifs.

Bon codage !

Auteur du blog

La carrière de Leonardo s'étend sur plus de deux décennies en tant que développeur complet avec une solide expérience en .NET et SQL Server. Il a travaillé dans de nombreux domaines d'activité et s'est concentré sur la mise en œuvre et l'intégration d'ERP, le conseil et la mise en œuvre de l'automatisation des processus d'entreprise, et a dirigé des équipes de développement de logiciels. Grâce à son expérience professionnelle dans diverses industries/cultures, à ses formations en entreprise et à son apprentissage continu des nouvelles technologies, Leonardo dispose d'un ensemble d'outils robustes.

Recevez les mises à jour du blog dans votre boîte de réception.