Utiliser les profils utilisateur dans un client multigéographique
Dans un client multigéographique, vous pouvez définir un emplacement de données favori, détecter l’emplacement du profil d’un utilisateur et l’URL d’un site personnel, ainsi que lire et mettre à jour les propriétés par défaut et personnalisées d’un profil utilisateur.
Définir un emplacement de données favori
Dans un client multigéographique, les utilisateurs SharePoint se trouvent à différents emplacements géographiques ; par exemple, certains utilisateurs sont en Amérique du Nord, d’autres sont en Europe, et ainsi de suite. Ce modèle s’applique également aux comptes d’utilisateur et aux sites personnels (OneDrive Entreprise).
Dans l’idéal, les utilisateurs et leurs comptes d’utilisateur et sites se trouvent dans le même emplacement géographique. Pour vous en assurer, définissez un emplacement de données favori semblable à l’emplacement géographique de l’utilisateur avant de créer des sites personnels.
Dans l’exemple illustré dans l’image suivante, l’utilisateur vesa@contoso.onmicrosoft.com réside en Europe et a un emplacement de données préféré défini sur EUR. Ainsi :
- La copie par défaut du profil utilisateur se trouve dans l’emplacement géographique Europe.
- Le site personnel de l’utilisateur est créé dans l’emplacement géographique Europe.
L’emplacement de données de l’utilisateur bert@contoso.onmicrosoft.com est défini sur NAM. Comme il avait un site personnel hébergé en Europe avant de définir son emplacement de données favori, son profil reste en Europe.
Les profils utilisateurs et les sites personnels se trouvent dans le même emplacement géographique. Pour les utilisateurs qui n’ont pas de site personnel :
- S’ils ont défini un emplacement de données favori, leur profil se trouve dans cet emplacement géographique.
- S’ils n’ont pas défini un emplacement de données favori, leur profil se trouve dans l’emplacement géographique par défaut.
Détecter l’emplacement d’un profil utilisateur et l’URL de son site personnel
Pour identifier l’emplacement d’un profil utilisateur via un programme, effectuez l’une des opérations suivantes :
- Utilisez l’API de profil utilisateur de SharePoint. Nous vous recommandons d’utiliser cette méthode, car elle fonctionne dans tous les scénarios.
- Utilisez Microsoft Graph. Cette méthode convient uniquement aux utilisateurs qui ont aussi des sites personnels.
Utiliser l’API de profil utilisateur de SharePoint pour détecter l’emplacement d’un profil
Vous pouvez appeler l’API de profil utilisateur de SharePoint via REST ou le modèle CSOM pour extraire l’URL hôte du site personnel d’un compte donné. Cette URL contient l’hôte du site personnel de l’utilisateur, que le site personnel ait déjà été créé ou non. L’exemple suivant illustre l’appel REST.
GET https://contoso.sharepoint.com/_api/SP.UserProfiles.PeopleManager/GetPropertiesFor(accountName=@v)/personalsitehosturl?%40v=%27i%3A0%23.f%7Cmembership%7Cbert%40contoso.onmicrosoft.com%27
Si vous utilisez le langage C#, le modèle CSOM est plus facile à utiliser, comme illustré dans l’exemple suivant.
public string GetUserPersonalSiteHostUrlCSOM(string userPrincipalName)
{
string result = null;
PeopleManager peopleManager = new PeopleManager(this.clientContext);
var userProperties = peopleManager.GetPropertiesFor($"i:0#.f|membership|{userPrincipalName}");
this.clientContext.Load(userProperties);
this.clientContext.ExecuteQuery();
result = userProperties.PersonalSiteHostUrl;
return result;
}
Une fois que vous avez l’URL hôte du site personnel, vous pouvez l’utiliser avec l’emplacement multigéographique détecté pour obtenir l’URL du site d’administration du client correspondant à l’emplacement géographique qui héberge le profil de l’utilisateur.
Pour en savoir plus, consultez l’exemple MultiGeo.UserProfileUpdates.
Utiliser Microsoft Graph pour détecter l’URL du site personnel de l’utilisateur
Pour détecter l’URL du site personnel d’un utilisateur dans un client multigéographique, vous pouvez utiliser l’appel Microsoft Graph suivant :
GET https://graph.microsoft.com/v1.0/users/bert@contoso.onmicrosoft.com?$select=mySite
Une fois que vous avez l’URL hôte du site personnel, vous pouvez l’utiliser avec l’emplacement multigéographique détecté pour obtenir l’URL du site d’administration du client correspondant à l’emplacement géographique qui héberge le profil de l’utilisateur.
Remarque
Si l’utilisateur n’a aucun site personnel, cette méthode ne fonctionne pas. Dans ce cas, utilisez plutôt l’API de profil utilisateur de SharePoint.
Pour en savoir plus, consultez l’exemple MultiGeo.UserProfileUpdates.
Mettre à jour les propriétés de profil utilisateur
Mettre à jour en bloc des propriétés de profil utilisateur est un scénario fréquent dans les entreprises clientes. La méthode à utiliser dépend du type de propriété de profil utilisateur à mettre à jour.
Mettre à jour les propriétés de profil utilisateur par défaut
Certaines propriétés de profil utilisateur sont disponibles par défaut, à l’instar des propriétés Department, AboutMe et PreferredDataLocation. Nous vous recommandons d’utiliser l’API Microsoft Graph pour mettre à jour ces propriétés, car Microsoft Graph tient compte des emplacements géographiques.
L’exemple suivant montre comment mettre à jour la propriété AboutMe pour l’utilisateur bert@contoso.onmicrosoft.com.
GET https://graph.microsoft.com/v1.0/users/bert@contoso.onmicrosoft.com?$select=aboutme
Pour en savoir plus, consultez l’exemple MultiGeo.UserProfileUpdates.
Mettre à jour la propriété d’emplacement de données favori
L’emplacement de données favori de l’utilisateur (propriété preferredDataLocation) indique l’emplacement géographique favori de l’utilisateur. Cette propriété affecte les éléments suivants :
- L’emplacement géographique où le site personnel de l’utilisateur est approvisionné
- L’emplacement géographique où les sites de groupe de l’utilisateur sont créés
Comme l’emplacement de données favori est une propriété par défaut, nous vous recommandons d’utiliser l’API Microsoft Graph pour la configurer, comme illustré dans l’exemple suivant.
GET https://graph.microsoft.com/v1.0/users/bert@contoso.onmicrosoft.com?$select=preferredDataLocation
PATCH https://graph.microsoft.com/beta/users/bert@contoso.onmicrosoft.com
JSON payload:
{
"preferredDataLocation" : "eur"
}
Pour en savoir plus, consultez l’exemple MultiGeo.UserPreferredDataLocation.
Ajouter des propriétés de profil utilisateur SharePoint personnalisées
Vous pouvez ajouter des propriétés de profil utilisateur propres à l’entreprise aux profils utilisateur dans SharePoint. Pour les clients multigéographiques SharePoint, les principes suivants s’appliquent :
- Les propriétés de profil utilisateur personnalisées sont créées au niveau de l’emplacement géographique. Si vous créez une propriété dans l’emplacement géographique Europe, cette propriété n’est pas disponible dans les autres emplacements géographiques. Nous vous recommandons de créer des propriétés de profil utilisateur personnalisées dans tous les emplacements géographiques. Ainsi, vous réduisez le risque de perte de données quand vous déplacez des données d’un emplacement géographique à l’autre.
- Lisez et mettez à jour les propriétés de profil utilisateur personnalisées au niveau de l’emplacement géographique. Si vous avez créé une propriété personnalisée dans tous les emplacements géographiques, vous devez itérer sur les emplacements géographiques et mettre à jour la propriété pour tous les utilisateurs.
Remarque
Pour qu’une propriété de profil personnalisée s’affiche pour un utilisateur dans les résultats de recherche de personnes, la propriété doit être créée et définie dans au moins l’emplacement du profil de l’utilisateur. Par exemple, pour un utilisateur avec un profil situé dans nam, la propriété personnalisée doit être définie au moins dans la zone géographique nam afin d’apparaître dans les résultats de la recherche de personnes; pour un utilisateur avec un profil situé en EUR, la propriété personnalisée doit être définie dans au moins EUR.
// For SharePoint Online custom properties, use the following approach.
string userPrincipalName = "bert@contoso.onmicrosoft.com";
string userAccountName = $"i:0#.f|membership|{userPrincipalName}";
PeopleManager peopleManager = new PeopleManager(tenantAdminContext);
var propsToRetrieve = new string[] { "CostCenter", "CustomProperty" };
var props = peopleManager.GetUserProfilePropertiesFor(new UserProfilePropertiesForUser(tenantAdminContext, userAccountName, propsToRetrieve));
tenantAdminContext.ExecuteQuery();
int i = 0;
foreach (var prop in props)
{
Console.WriteLine($"Prop: {propsToRetrieve[i]} Value: {prop}");
i++;
}
// Update user profile properties
peopleManager.SetSingleValueProfileProperty(userAccountName, "CostCenter", "89786879");
tenantAdminContext.ExecuteQuery();
Pour en savoir plus, consultez l’exemple MultiGeo.UserProfileUpdates.
Utiliser l’API de mise à jour en bloc de profil utilisateur
Vous pouvez utiliser l’API de mise à jour en bloc de profil utilisateur pour mettre à jour en bloc les propriétés de profil utilisateur personnalisées dans un client multigéographique. Remarques :
- Cette API fonctionne au niveau de l’emplacement géographique et ne tient pas compte des emplacements multigéographiques. Par exemple, si vous utilisez l’API dans l’emplacement géographique Europe, seuls les comptes en Europe sont mis à jour.
- Si vous spécifiez un fichier d’importation avec des comptes dans plusieurs emplacements géographiques, l’API met uniquement à jour les propriétés pour les utilisateurs se trouvant dans cet emplacement géographique.