Trabajar con los perfiles de usuario en un inquilino Multi-Geo
En un inquilino Multi-Geo, puede definir una ubicación de datos preferida para un usuario, detectar la ubicación del perfil del usuario y la URL de sitio personal y lea y actualice las propiedades del perfil del usuario personalizadas y actualizadas.
Establecimiento de la ubicación de datos preferida
En un inquilino Multi-Geo, los usuarios de SharePoint abarcan diferentes ubicaciones geográficas. Por ejemplo, algunos usuarios están en América del Norte, algunos en Europa y así sucesivamente. Este modelo también se aplica a las cuentas de usuario y a los sitios personales (OneDrive para la Empresa).
Idealmente, los usuarios y sus cuentas de usuario y los sitios están en la misma ubicación geográfica. Para garantizar esto, antes de crear sitios personales, establezca la ubicación de datos preferida del usuario a su ubicación geográfica.
En el ejemplo que se muestra en la siguiente imagen, el usuario vesa@contoso.onmicrosoft.com reside en Europa y tiene una ubicación de datos preferida establecida en EUR. Por lo tanto:
- La copia predeterminada del perfil del usuario está en la ubicación geográfica de Europa.
- El sitio personal del usuario se crea en la ubicación geográfica de Europa.
El usuario bert@contoso.onmicrosoft.com tiene su ubicación de datos preferida establecida en NAM. Dado que él tenía un sitio personal hospedado en Europa antes de que estableciese su ubicación de datos preferida, su perfil permanece en Europa.
Los sitios personales y los perfiles de los usuarios están en la misma ubicación geográfica. Para los usuarios que no tienen un sitio personal:
- Si establecen una ubicación de datos preferida, el perfil se encuentra en esa ubicación geográfica.
- Si no establecen ninguna ubicación de datos preferida, el perfil se encuentra en la ubicación geográfica predeterminada.
Para detectar la ubicación del perfil de usuario y la dirección URL del sitio personal
Para detectar mediante programación la ubicación del perfil de un usuario, puede realizar uno de estos procedimientos:
- Use la API de perfil de usuario de SharePoint. Se recomienda este enfoque porque funciona en todos los escenarios.
- Usar Microsoft Graph Esto funciona para los usuarios que también tienen sitios personales, pero no para los usuarios sin sitios personales.
Usar la API de perfil de usuario de SharePoint para detectar la ubicación del perfil
Puede llamar a la API de perfil de usuario de SharePoint a través de REST o CSOM para recuperar la URL del host del sitio personal para una cuenta determinada. Esta dirección URL contiene el host de sitio personal para el sitio personal del usuario, independientemente de si se ha creado el sitio personal. En el ejemplo siguiente se muestra la llamada 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 usa C#, CSOM es más fácil de usar, como se muestra en el ejemplo siguiente.
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;
}
Cuando tenga la URL del host de sitio personal, puede usarla junto con la información de detección Multi-Geo para obtener la URL del sitio de administración del inquilino para la ubicación geográfica donde se hospeda el perfil de usuario.
Para obtener más información, vea el ejemplo MultiGeo.UserProfileUpdates.
Usar Microsoft Graph para detectar la URL del sitio personal del usuario
Para detectar la URL del sitio personal de un usuario en un inquilino Multi-Geo, puede usar la siguiente llamada de Microsoft Graph:
GET https://graph.microsoft.com/v1.0/users/bert@contoso.onmicrosoft.com?$select=mySite
Cuando tenga la URL del host de sitio personal, puede usarla junto con la información de detección Multi-Geo para obtener la URL del sitio de administración del inquilino para la ubicación geográfica donde se hospeda el perfil de usuario.
Nota:
Si el usuario no tiene un sitio personal, este enfoque no funcionará. En su lugar, debería usar la API de perfil de usuario de SharePoint.
Para obtener más información, vea el ejemplo MultiGeo.UserProfileUpdates.
Migrar las propiedades de perfil de usuario
Realizar actualizaciones masivas en las propiedades de perfil de usuario es un escenario común para clientes empresariales. El proceso que se usa varía según el tipo de propiedad de perfil de usuario que desea actualizar.
Actualizar las propiedades de perfil de usuario predeterminado
Algunas propiedades de perfil de usuario están disponibles de forma predeterminada, por ejemplo, Departamento, Acerca de mí y PreferredDataLocation. Le recomendamos que use la API de Microsoft Graph para actualizar estas propiedades porque Microsoft Graph es compatible con Multi-Geo.
En el ejemplo siguiente se muestra cómo actualizar la propiedad AboutMe para el usuario bert@contoso.onmicrosoft.com.
GET https://graph.microsoft.com/v1.0/users/bert@contoso.onmicrosoft.com?$select=aboutme
Para obtener más información, vea el ejemplo MultiGeo.UserProfileUpdates.
Actualizar la propiedad de ubicación de datos preferida
La ubicación de datos preferida del usuario (propiedad preferredDataLocation) indica la ubicación geográfica preferida del usuario. Esto afecta a lo siguiente:
- La ubicación geográfica donde se aprovisione el sitio personal del usuario
- La ubicación geográfica donde se creen los sitios personales del usuario
Debido a que la ubicación de datos preferida es una propiedad predeterminada, le recomendamos que use la API de Microsoft Graph para configurarla, como se muestra en el ejemplo siguiente.
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"
}
Para obtener más información, consulte el ejemplo MultiGeo.UserPreferredDataLocation.
Agregue propiedades de perfil de usuario en SharePoint
Puede agregar propiedades de perfil de usuario específicas de la empresa a los perfiles de usuario de SharePoint. Para los inquilinos SharePoint Multi-Geo, se aplican las siguientes consideraciones:
- Las propiedades de perfil de usuario personalizadas se crean en el nivel de la ubicación geográfica. Si crea una propiedad en la ubicación geográfica de Europa, esta propiedad no está disponible en las otras ubicaciones geográficas. Como práctica recomendada, cree propiedades de perfil de usuario personalizadas en todas las ubicaciones geográficas. Esto reduce el riesgo de que se pierdan datos cuando un usuario se mueva por las ubicaciones geográficas.
- Debe leer y actualizar las propiedades de perfil de usuario personalizadas en el nivel de ubicación geográfica. Si ha creado una propiedad personalizada en todas las ubicaciones geográficas, debe recorrer en iteración las ubicaciones geográficas y actualizar la propiedad para todos los usuarios.
Nota:
Para que una propiedad de perfil personalizada aparezca para un usuario en los resultados de búsqueda de personas, la propiedad debe crearse y establecerse en al menos la ubicación del perfil del usuario. Por ejemplo, para un usuario con un perfil ubicado en NAM, la propiedad personalizada debe establecerse en al menos la geolocalización nam para mostrarse en los resultados de búsqueda de personas; Para un usuario con un perfil ubicado en EUR, la propiedad personalizada tendría que establecerse en al menos 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();
Para obtener más información, vea el ejemplo MultiGeo.UserProfileUpdates.
Use la API de actualización de perfil de usuario en masa
Puede usar la API de actualización de perfil de usuario en masa para realizar las actualizaciones en masa para personalizar las propiedades de perfil de usuario en un inquilino Multi-Geo. Tenga en cuenta lo siguiente:
- Esta API funciona en el nivel de ubicación geográfica y no es compatible con Multi-Geo. Por ejemplo, si usa la API en la ubicación geográfica de Europa, solo se actualizan las cuentas en Europa.
- Si especifica un archivo de importación con cuentas en diferentes ubicaciones geográficas, la API solo actualiza las propiedades en esa ubicación geográfica.