Accueil Blog (en) Maintien des utilisateurs d’Acumatica via Google Workspace

Maintien des utilisateurs d’Acumatica via Google Workspace

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

Maintien des utilisateurs d’Acumatica via Google Workspace

Introduction

L’un des défis d’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 implémentent la prise en charge des plates-formes standard telles que Azure, AWS ou Google pour permettre une interaction transparente avec ces systèmes en fournissant des fonctionnalités telles que l’authentification unique (SSO).

Jusqu’à présent, Acumatica ne fournit qu’une prise en charge intégrée de Microsoft Active Directory / Federation Services et Azure Active Directory. De plus, ils fournissent des fonctionnalités d’authentification unique avec les comptes Google et Microsoft, ainsi que OneLogin via des fournisseurs Open ID . En particulier avec Google, je présenterai un moyen d’étendre cette capacité et de fournir également l’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 l’ESSE, accédez à l’option de menu Gestion du système > Activer/Désactiver les fonctionnalités . Ensuite, recherchez et définissez l’option de fonctionnalité respective:

Maintien des utilisateurs d’Acumatica via Google Workspace

Une fois qu’il est activé, sur la page de connexion apparaîtra l’option Google pour autoriser un accès de connexion à Acumatica.

Maintien des utilisateurs d’Acumatica via Google Workspace

Acumatica permet de s’inscrire à SSO via l’option MY PROFILE

Maintien des utilisateurs d’Acumatica via Google Workspace

Accédez ensuite à Identités externes, puis sélectionnez Google et cliquez sur ASSOCIER L’UTILISATEUR

Maintien des utilisateurs d’Acumatica via Google Workspace

Le processus d’authentification va à Google en utilisant la session utilisateur « actuelle » avec Google Workspace. Une fois terminé, l’ID de compte est défini comme identificateur de l’identité spécifiée :

Maintien des utilisateurs d’Acumatica via Google Workspace

Cet ID de compte (clé utilisateur) est utilisé pour identifier la session Google en cours de l’utilisateur tout en s’authentifier avec Google pendant le processus en un clic.

Ce mécanisme n’est disponible que pour l’utilisateur régulier. Il n’est pas disponible pour un administrateur, ce qui signifie qu’il n’y a aucun moyen d’attribuer une identité Google à un autre utilisateur que l’utilisateur actuel. Il est également nécessaire d’avoir l’e-mail de l’utilisateur défini comme faisant partie de l’annuaire Google ciblé.

Cet article présente une alternative pour élargir cette capacité en

  • Avoir la possibilité de définir les utilisateurs dans Google, puis de les créer automatiquement dans Acumatica avec son ensemble Google Identity.
  • Permettre aux administrateurs d’attribuer une identité Google spécifique à un utilisateur par un administrateur sans avoir besoin de s’authentifier à l’aide de 2FA.

Définition des exigences de Visual Studio et de Google

La première chose d’abord. Comment puis-je me connecter à Google ? Pour cette implémentation, j’ai utilisé les bibliothèques NuGet existantes fournies par Google:

Maintien des utilisateurs d’Acumatica via Google Workspace

Liste NuGet. Cette implémentation a utilisé la version 1.49.

En ajoutant ces bibliothèques, un ensemble de classes devient disponible pour implémenter 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
    Maintien des utilisateurs d’Acumatica via Google Workspace
    Écran Compte de service Google
  1. Créez un fichier de clé privée pour le compte de service. J’ai pris en charge les formats JSON et P12 (rétrocompatibilité 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 d’un fichier de clé privée dans Acumatica

Vous pourriez penser à télécharger le fichier dans Acumatica et c’est tout. En effet, c’est le cas, mais j’ai besoin d’avoir le contrôle du fichier car il est nécessaire d’interagir avec les points de terminaison Google Workspace. À cet effet, tous les paramètres requis et facultatifs décrits ci-dessus, ainsi que le fichier de clé privée, doivent être stockés dans Acumatica via un écran de configuration.

Pour restreindre l’accès à l’option Fichiers à l’écran, il me suffit de définir l’option suivante comme fausse:

Maintien des utilisateurs d’Acumatica via Google Workspace

Pour implémenter 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

La connexion à Google Workspace nécessite de spécifier l’étendue d’accès. Parce que Google est 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 via la classe DirectoryService.Scope. Le reste utilise les données du fichier de clé privée pour la connexion.

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

Récupération d’utilisateurs

Il y a 2 endroits à vérifier pour les utilisateurs:

1. Groupe d’utilisateurs Google spécifique. L’une des exigences facultatives est la définition d’un groupe dans l’Annuaire Google. En ayant une administration d’utilisateur de groupe est rendue plus facile en affectant simplement les utilisateurs de Google qui seront créés dans Acumatica à ce groupe spécifique. La définition d’URL de groupe est un paramètre d’installation.

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. Répertoire mondial 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 synchroniser avec lui.

Pour récupérer la liste des utilisateurs à partir de l’annuaire Google global, 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 Google fournit un sous-ensemble d’enregistrements par demande. Une requête d’utilisateur unique peut également être implémentée en utilisant l’e-mail principal comme clé.

Synchronisation des utilisateurs d’Acumatica

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

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’e-mail de l’utilisateur (e-mail principal) comme clé:

user@domain.com

La partie « utilisateur » deviendra la connexion Acumatica.

Un traitement d’un écran qui appelle ce processus serait nécessaire pour planifier ce processus de synchronisation et le laisser sans surveillance.

Conclusion

À l’aide de l’API Google et de la définition des comptes d’accès appropriés à Google Workspace, les administrateurs ont la possibilité de synchroniser les informations d’ESE pour différents utilisateurs. En outre, le processus de synchronisation planifié peut être utilisé pour avoir une administration sans surveillance des utilisateurs dans Acumatica. Les services informatiques n’ont besoin que d’affecter des utilisateurs à un groupe spécial et ils seront créés dans Acumatica. D’autres travaux sont encore nécessaires pour étendre la portée vers les 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’est étendue sur plus de deux décennies en tant que développeur full-stack avec une solide expérience en .NET et SQL Server. Il a travaillé dans de nombreux domaines d’activité et s’est concentré sur les implémentations et les intégrations ERP, le conseil et la mise en œuvre de l’automatisation des processus d’affaires, et a dirigé des équipes de développement de logiciels. Avec une expérience de travail dans diverses industries / cultures, un canapé d’affaires et une formation, ainsi qu’un accent sur l’apprentissage continu des nouvelles technologies, Leonardo dispose d’un ensemble d’outils robustes.

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