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.