Microsoft 365 : Obtenir des informations sur les utilisateurs depuis Azure

Traduit automatiquement de Deepl

De nombreuses entreprises utilisent Microsoft 365 (anciennement Office 365). Outre l’accès aux applications Office, Microsoft fournit un annuaire actif basé sur Azure, permettant aux utilisateurs de se connecter pour accéder à des services tels que Microsoft Sharepoint ou OneDrive à l’aide d’un navigateur Web.

Tous les services Microsoft utilisent le même système d’authentification unique, basé sur l’adresse électronique. À partir de 4D v19 R6, 4D NetKit vous permet de rejoindre ce concept, en permettant aux utilisateurs de se connecter à votre application en utilisant leurs identifiants habituels de l’entreprise.

En plus de permettre l’authentification unique, il permettra de récupérer les informations de l’utilisateur authentifié telles que l’email, le département et le numéro de téléphone. Si l’administrateur le permet, vous pouvez même récupérer ces informations sur les collègues de la même entreprise.

Voyons comment cela fonctionne.

Tout d’abord, pour accéder aux informations d’un utilisateur, vous devrez obtenir un accès en son nom et utiliser la commande New OAuth2 provider pour créer votre fournisseur OAuth2 :

$param:=New object()
$param.name:="Microsoft"
$param.permission:="signedIn"
$param.clientId:="XXX"
$param.redirectURI:="http://127.0.0.1:50993/authorize/"
$param.scope:="https://graph.microsoft.com/.default"
// Create new OAuth2 object
$tokenProvider:=New OAuth2 provider($param)

Lorsque votre fournisseur OAuth2 est prêt, utilisez la commande New Office365 provider pour instancier un objet qui gérera l’accès à votre compte Microsoft 365 via l’API Microsoft Graph :

var $Office365 : cs.NetKit.Office365Provider
$Office365:=New Office365 provider($tokenProvider)

informations sur l’utilisateur

Vous pouvez obtenir les informations de l’utilisateur comme displayName, givenName, et plus encore.

Si vous êtes connecté en mode Sign In, vous pouvez obtenir les informations sur l’utilisateur actuel :

$currentUser:=$Office365.user.getCurrent()
//$currentUser=
//{displayName:My Name,givenName:Name,mail:myname@mycompany.com,...}

Si vous appartenez au compte Azure AD « work or school », vous pouvez accéder aux informations d’un utilisateur spécifique de votre organisation :

$user:=$Office365.user.get("myname@mycompany.com")

ou accéder à la liste de tous les utilisateurs de votre organisation :

$users:=$Office365.user.list()

Consultez la documentation pour plus de détails, et n’hésitez pas à nous faire part de votre expérience sur le forum 4D.

Fabrice Mainguené
- Product Owner -Fabrice Mainguené a rejoint l'équipe du programme 4D en novembre 2016. En tant que Product Owner, il est en charge de rédiger les user stories puis de les traduire en spécifications fonctionnelles. Son rôle est également de s'assurer que l'implémentation de la fonctionnalité livrée répond au besoin du client.Après avoir obtenu une licence en informatique au CNAM, Fabrice a rejoint une petite société d'édition de logiciels en tant que développeur Windev. Il a ensuite travaillé pour différentes entreprises dans les domaines de l'industrie et du commerce en tant que développeur Windev et web ainsi que conseiller technique sur les nouvelles fonctionnalités.