Compartilhar via


Trabalhar com perfis de usuário em um locatário multigeográfico

Em um locatário multi-geográfico, você pode definir um local de dados preferencial para um usuário, detectar a localização do perfil do usuário e a URL do site pessoal e ler e atualizar propriedades padrão e de perfil de usuário personalizado.

Definir um local de dados preferencial

Em um locatário multi-geográfico, os usuários do SharePoint abrangem diferentes localizações geográficas; por exemplo, alguns usuários estão em América do Norte, alguns estão na Europa e assim por diante. Esse modelo também se aplica a contas de usuário e sites pessoais (OneDrive for Business).

Idealmente, os usuários e suas contas de usuário e sites estão na mesma localização geográfica. Para garantir isso, antes de criar sites pessoais, defina o local de dados preferido do usuário como sua localização geográfica.

No exemplo mostrado na imagem a seguir, o usuário vesa@contoso.onmicrosoft.com mora na Europa e tem um local de dados preferencial definido como EUR. Como tal:

  • A cópia padrão do perfil do usuário está na localização geográfica da Europa.
  • O site pessoal do usuário é criado na localização geográfica da Europa.

O usuário bert@contoso.onmicrosoft.com tem seu local de dados preferencial definido como NAM. Como ele tinha um site pessoal hospedado na Europa antes de seu local de dados preferido ser definido, seu perfil permanece na Europa.

Mapa do mundo mostrando a localização geográfica padrão em América do Norte e locais satélites na Europa e Ásia, com usuários, localizações geográficas e locais de dados preferenciais definidos

Os perfis e sites pessoais dos usuários estão na mesma localização geográfica. Para usuários que não têm um site pessoal:

  • Se eles definirem um local de dados preferencial, seu perfil estará localizado nessa localização geográfica.
  • Se eles não definirem um local de dados preferencial, seu perfil estará localizado na localização geográfica padrão.

Para detectar o local do perfil de um usuário e a URL do site pessoal

Para descobrir programaticamente o local do perfil de um usuário, você pode fazer um dos seguintes procedimentos:

  • Use a API de Perfil de Usuário do SharePoint. Recomendamos essa abordagem porque ela funciona em todos os cenários.
  • Use Microsoft Graph. Isso funciona para usuários que também têm sites pessoais, mas não para usuários que não têm sites pessoais.

Usar a API de Perfil de Usuário do SharePoint para detectar o local do perfil

Você pode chamar a API de Perfil de Usuário do SharePoint por meio de REST ou CSOM para recuperar a URL do host do site pessoal para uma determinada conta. Essa URL contém o host de site pessoal do site pessoal do usuário, independentemente de o site pessoal ter sido criado. O exemplo a seguir mostra a chamada 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

Se você estiver usando C#, o CSOM será mais fácil de usar, conforme mostrado no exemplo a seguir.

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;
}

Quando você tiver a URL do host do site pessoal, você pode usá-la junto com as informações de descoberta multi-geográfica para obter a URL do site de administrador do locatário para a localização geográfica que hospeda o perfil do usuário.

Para saber mais, confira o exemplo MultiGeo.UserProfileUpdates .

Usar o Microsoft Graph para detectar a URL do site pessoal do usuário

Para descobrir a URL do site pessoal de um usuário em um locatário multi-geográfico, você pode usar a seguinte chamada do Microsoft Graph:

GET https://graph.microsoft.com/v1.0/users/bert@contoso.onmicrosoft.com?$select=mySite

Quando você tiver a URL do host do site pessoal, você pode usá-la junto com as informações de descoberta multi-geográfica para obter a URL do site de administrador do locatário para a localização geográfica que hospeda o perfil do usuário.

Observação

Se o usuário não tiver um site pessoal, essa abordagem não funcionará. Em vez disso, você deve usar a API de Perfil de Usuário do SharePoint.

Para saber mais, confira o exemplo MultiGeo.UserProfileUpdates .

Atualizar propriedades do perfil do usuário

Fazer atualizações em massa para propriedades de perfil de usuário é um cenário comum para clientes corporativos. O processo a ser usado varia de acordo com o tipo de propriedade de perfil de usuário que você deseja atualizar.

Atualizar propriedades de perfil de usuário padrão

Algumas propriedades de perfil de usuário estão disponíveis por padrão, por exemplo, Departamento, AboutMe e PreferredDataLocation. Recomendamos que você use o Microsoft API do Graph para atualizar essas propriedades porque o Microsoft Graph tem reconhecimento geográfico.

O exemplo a seguir mostra como atualizar a propriedade AboutMe para o usuário bert@contoso.onmicrosoft.com.

GET https://graph.microsoft.com/v1.0/users/bert@contoso.onmicrosoft.com?$select=aboutme

Para obter mais informações, consulte o exemplo MultiGeo.UserProfileUpdates .

Atualizar a propriedade de localização de dados preferencial

O local de dados preferencial do usuário (propriedade preferredDataLocation ) indica o local geográfico preferencial para o usuário. Isso afeta o seguinte:

  • O local geográfico em que o site pessoal do usuário é provisionado
  • A localização geográfica em que os sites de grupo do usuário são criados

Como o local de dados preferencial é uma propriedade padrão, recomendamos que você use o Microsoft API do Graph para configurá-lo, conforme mostrado no exemplo a seguir.

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 obter mais informações, consulte o exemplo MultiGeo.UserPreferredDataLocation .

Adicionar propriedades personalizadas do perfil de usuário do SharePoint

Você pode adicionar propriedades de perfil de usuário específicas da empresa aos perfis de usuário no SharePoint. Para locatários SharePoint Multi-Geo, as seguintes considerações se aplicam:

  • Propriedades de perfil de usuário personalizadas são criadas no nível de localização geográfica. Se você criar uma propriedade na localização geográfica da Europa, essa propriedade não estará disponível nas outras localizações geográficas. Como prática recomendada, crie propriedades de perfil de usuário personalizadas em todas as localizações geográficas. Isso reduz o risco de que os dados sejam perdidos quando um usuário se move por locais geográficos.
  • Você deve ler e atualizar propriedades de perfil de usuário personalizadas no nível de localização geográfica. Se você criou uma propriedade personalizada em todos os locais geográficos, precisará iterar sobre as localizações geográficas e atualizar a propriedade para todos os usuários.

Observação

Para que uma propriedade de perfil personalizado apareça para um usuário em pessoas pesquisar resultados, a propriedade deve ser criada e definida em pelo menos o local do perfil do usuário. Por exemplo, para um usuário com um perfil localizado no NAM, a propriedade personalizada deve ser definida em pelo menos na geo do NAM para aparecer nos resultados da pesquisa de pessoas; para um usuário com um perfil localizado em EUR, a propriedade personalizada teria que ser definida em pelo 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 obter mais informações, consulte o exemplo MultiGeo.UserProfileUpdates .

Usar a API de atualização de perfil de usuário em massa

Você pode usar a API de atualização de perfil de usuário em massa para fazer atualizações em massa para propriedades de perfil de usuário personalizadas em um locatário multi-geo. Observe o seguinte:

  • Essa API funciona no nível de localização geográfica e não tem reconhecimento geográfico. Por exemplo, se você usar a API na localização geográfica da Europa, somente as contas na Europa serão atualizadas.
  • Se você especificar um arquivo de importação com contas em diferentes locais geográficos, a API só atualizará as propriedades para os usuários nessa localização geográfica.

Confira também