Compte Active Directory avec SharePoint Online et Power Apps

Vous apprendrez à créer un compte Active Directory avec Power Apps et SharePoint Online. C’est simple.

Si vous rencontrez des erreurs dans les manipulations ci-dessous, lisez l’article qui explique comment débuguer les erreurs dans Power Apps.

Gardez à l’esprit que l’interface a pu évoluer fortement depuis que cet article a été rédigé.

Se connecter à SharePoint

Créer un compte Active Directory avec Power Apps dans SharePoint Online nécessite de disposer d’un champ de type Personne ou Groupe dans une liste ou une bibliothèque SharePoint.

Par exemple pour le compte QualityAccount :

Compte Active Directory avec Power Apps
Compte Active Directory avec Power Apps

Ensuite la liste SharePoint doit être connectée à votre application Power Apps, via le menu Données (volet de gauche). C’est une icône en forme de base de données.

Power Apps Se connecter à SharePoint
Power Apps Se connecter à SharePoint

Ensuite, il suffit d’indiquer le site SharePoint puis la liste sélectionnée dans le volet de droite.

Compte Active Directory avec Power Apps : Obtenir la revendication (Claims) de l’utilisateur courant

La fonction User() donne quelques informations sur l’utilisateur courant : son email, son nom complet et son image. C’est tout.

Malheureusement, il manque une information cruciale : sa revendication (Claims). Vous trouverez beaucoup de sites web qui expliquent que le Claims peut se calculer grâce à la fonction Concatenate() ou l’opérateur &, avec la formule:

Set(glbCurrentUserClaims;"i:0#.f|membership|" & User().Email);;

Dans cette formule, la chaîne de caractères « i:0#.f|membership| » est fixe. Elle est indépendante de l’utilisateur ou de la société.

Afin d’éviter de consommer des ressources inutilement avec l’appel de la fonction User(), nous préférons utiliser une variable globale glbCurrentUser qui est simplement définie par :

Set(glbCurrentUser;User());;

La formule précédente devient donc :

Set(glbCurrentUserClaims;"i:0#.f|membership|" & glbCurrentUser.Email);;

Cette formule est valable dans les cas simples. Notamment, si votre AD (Active Directory) est parfaitement « propre » et cohérent. Toutefois, ce n’est pas toujours le cas.

En effet, la revendication peut être construite à partir d’une adresse email de l’utilisateur qui est différente de celle qui est fournie par User().Email. Vous devrez donc le vérifier auprès de votre administrateur informatique.

Compte Active Directory avec Power Apps : Créer le compte utilisateur dans SharePoint

Notamment, pour ajouter le compte AD d’un utilisateur dans le champ QualityAccount, de type Personne, utilisez la formule complète suivante :

QualityAccount:{'@odata.type':"#Microsoft.Azure.Connectors.SharePoint.SPListExpandedUser";Claims:glbCurrentUserClaims;DisplayName:glbCurrentUser.FullName;Department:"";Email:glbCurrentUser.Email;JobTitle:"";Picture:glbCurrentUser.Picture}

Notez que les champs Department, JobTitle et Picture sont obligatoires pour la création du compte dans la liste. Ils peuvent être éventuellement vides.

Autre écriture du compte de l’utilisateur courant dans Power Apps.

{'@odata.type':"#Microsoft.Azure.Connectors.SharePoint.SPListExpandedUser";Claims:"i:0#.f|membership|"&User().Email;DisplayName:User().FullName;Email:User().Email;Department:"";Picture:User().Image;JobTitle:""}

Nullifier un compte utilisateur

Pour « mettre à blanc » un compte utilisateur dans une liste SharePoint, utilisez la fonction Blank() 🙂

Par exemple :

QualityAccount:{Claims:Blank();DisplayName:"";Email:"";Department:"";Picture:"";JobTitle:""}

Récupérer l’adresse email d’une revendication (Claims)

Les fonctions Split() et Last() nous viennent en aide :

Last(Split("i:0#.f|membership|xavier@com.fr";"|")).Result

Cette formule donnera :

xavier@com.fr

Voilà.

Ce contenu a été publié dans Power Apps, SharePoint. Vous pouvez le mettre en favoris avec ce permalien.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *