Classificação de sites "moderna" do Microsoft Office SharePoint Online

Observação

Agora você pode usar rótulos de confidencialidade (/microsoft-365/compliance/sensitivity-labels-teams-groups-sites) em vez da classificação de sites para ajudar a proteger seus sites do Microsoft Office SharePoint Online.

Ao criar sites "modernos" no Microsoft Office SharePoint Online, você pode, opcionalmente, selecionar uma classificação de site para definir a confidencialidade dos dados do site. O objetivo da classificação de sites é permitir o gerenciamento de clusters de sites com base em sua classificação de uma perspectiva de governança e conformidade, bem como automatizar processos de governança com base na classificação de sites.

Importante

A opção de classificação de site não está habilitada por padrão e você precisa configurá-la no nível do Azure Active Directory.

Habilitar a classificação de site em seu locatário

Para se beneficiar da classificação de site, você precisa habilitar esse recurso no nível do Azure Active Directory, em seu locatário de destino. Depois de habilitar essa funcionalidade, você verá um campo adicional Quão confidenciais são seus dados? ao criar novos sites "modernos". Na figura a seguir, você pode ver a aparência do campo de classificação do site.

A opção de classificação de site ao criar um site


Na figura a seguir, você pode ver a classificação realçada no cabeçalho de um site "moderno".

A classificação de site realçada no cabeçalho de um site

Habilitar a classificação de site com o PowerShell

Para habilitar o recurso de classificação de site, você pode executar o código do PowerShell como o exemplo a seguir.

# Install the Azure AD Preview Module for PowerShell
Install-Module AzureADPreview

# Connect to Azure AD
Connect-AzureAD

# Create new directory setting and set initial values
$template = Get-AzureADDirectorySettingTemplate | where { $_.DisplayName -eq "Group.Unified" }

$setting = $template.CreateDirectorySetting()
$setting["UsageGuidelinesUrl"] = "https://aka.ms/sppnp"
$setting["ClassificationList"] = "HBI, MBI, LBI, GDPR"
$setting["DefaultClassification"] = "MBI"
New-AzureADDirectorySetting -DirectorySetting $setting

Observação

Considere que leva algum tempo (cerca de 1 hora ou mais) para ter as configurações disponíveis na interface do usuário do Office 365.

Sobre o snippet de código anterior, vale a pena dizer que, no momento da redação deste artigo, você precisa usar a versão prévia dos cmdlets do Azure Active Directory, mas em breve você poderá usar a versão RTM. Depois de instalar os cmdlets do Azure Active Directory, basta conectar-se ao locatário de destino do Azure Active Directory, que está fazendo backup do seu locatário do Microsoft Office SharePoint Online de destino.

Usando o cmdlet Get-AzureADDirectorySettingTemplate, você obtém uma referência ao modelo de configuração para o Grupos Unificados, que é aquele com DisplayName do Group.Unified.

Depois de ter o modelo, você pode definir as configurações desse modelo criando um novo DirectorySetting e fornecendo os valores de configuração por meio de um dicionário.

As principais configurações, de uma perspectiva de classificação de site são:

  • UsageGuidelinesUrl: a URL de uma página em que você pode explicar as diferentes opções de classificação. Um link para essa página aparece no formulário de criação do site e no cabeçalho de cada site classificado.
  • ClassificationList: uma lista separada por vírgulas de valores para a lista de opções de classificação de site.
  • DefaultClassification: o valor padrão para a classificação do site.

Habilitar a classificação de site com a biblioteca PnP Core

Outra opção que você precisa habilitar a capacidade de classificação de site é aproveitar a biblioteca PnP Core, que fornece alguns métodos de extensão para gerenciar a classificação no C# código.

Por exemplo, para habilitar a classificação de site, você pode C# escrever código como o seguinte.

// Connect to the admin central of your tenant
using (var adminContext = new ClientContext("https://[tenant]-admin.sharepoint.com/"))
{
    // Provide a valid set of credentials
    adminContext.Credentials = OfficeDevPnP.Core.Utilities.CredentialManager.GetSharePointOnlineCredential("[name-of-your-credentials]");

    // Create a new instance of the Tenant class of CSOM
    var tenant = new Tenant(adminContext);

    // Get an Azure AD Access Token using ADAL, MSAL, or whatever else you like
    var accessToken = getAzureADAccessToken();

    // Define the list of classifications
    var newClassificationList = new List<String>();
    newClassificationList.Add("HBI");
    newClassificationList.Add("MBI");
    newClassificationList.Add("LBI");
    newClassificationList.Add("GDPR");

    // Use the PnP extension method to enable site classification
    // Including a default classification value and the URL to an informative page
    tenant.EnableSiteClassifications(accessToken, newClassificationList, "MBI", "https://aka.ms/OfficeDevPnP");
}

Atualizar ou remover a classificação de site em seu locatário

Semelhante a habilitar a classificação de site, atualizar ou remover a configuração pode ser feita usando o PowerShell ou a biblioteca PnP Core.

Atualizar ou remover a classificação de site com o PowerShell

Se você precisar atualizar as configurações de classificação de site posteriormente, poderá usar o seguinte snippet do PowerShell.

# Connect to Azure AD
Connect-AzureAD

# Read current settings
(Get-AzureADDirectorySetting | where { $_.DisplayName -eq "Group.Unified" }).Values

# Update settings
$currentSettings = Get-AzureADDirectorySetting | where { $_.DisplayName -eq "Group.Unified" }
$currentSettings["UsageGuidelinesUrl"] = "https://aka.ms/sppnp"
$currentSettings["ClassificationList"] = "HBI, MBI, LBI, GDPR"
$currentSettings["DefaultClassification"] = "MBI"
Set-AzureADDirectorySetting -Id $currentSettings.Id -DirectorySetting $currentSettings

Observação

Pode levar uma hora ou mais para que as configurações tenham sido atualizadas na interface do usuário do Office 365.

Como você pode ver, basta pesquisar a Configuração de Diretório com um valor DisplayName de Group.Unified e, em seguida, atualizar seus valores de configuração e aplicar as alterações usando o cmdlet Set-AzureADDirectorySetting.

Para remover uma classificação de site, você pode usar cmdlet Remove-AzureADDirectorySetting, como no snippet de código a seguir.

# Delete settings
$currentSettings = Get-AzureADDirectorySetting | where { $_.DisplayName -eq "Group.Unified" }
Remove-AzureADDirectorySetting -Id $currentSettings.Id

Atualizar ou remover a classificação de site com a biblioteca PnP Core

Outra opção que você tem é usar a biblioteca PnP Core.

Por exemplo, para atualizar a classificação de site, você pode escrever C# código como o seguinte.

// Connect to the admin central of your tenant
using (var adminContext = new ClientContext("https://[tenant]-admin.sharepoint.com/"))
{
    // Provide a valid set of credentials
    adminContext.Credentials = OfficeDevPnP.Core.Utilities.CredentialManager.GetSharePointOnlineCredential("[name-of-your-credentials]");

    // Create a new instance of the Tenant class of CSOM
    var tenant = new Tenant(adminContext);

    // Get an Azure AD Access Token using ADAL, MSAL, or whatever else you like
    var accessToken = getAzureADAccessToken();

    // Retrieve the current set of values for site classification
    var classificationList = tenant.GetSiteClassificationList(accessToken);
    
    // And update it by adding a new value
    var updatedClassificationList = new List<String>(classificationList);
    updatedClassificationList.Add("TopSecret");

    // Update the site classification settings accordingly
    tenant.UpdateSiteClassificationSettings(accessToken, updatedClassificationList, "MBI", "https://aka.ms/SharePointPnP");
}

Além disso, para desabilitar e remover as configurações de classificação de site, você pode usar um snippet de código como o seguinte.

// Connect to the admin central of your tenant
using (var adminContext = new ClientContext("https://[tenant]-admin.sharepoint.com/"))
{
    // Provide a valid set of credentials
    adminContext.Credentials = OfficeDevPnP.Core.Utilities.CredentialManager.GetSharePointOnlineCredential("[name-of-your-credentials]");

    // Create a new instance of the Tenant class of CSOM
    var tenant = new Tenant(adminContext);

    // Get an Azure AD Access Token using ADAL, MSAL, or whatever else you like
    var accessToken = getAzureADAccessToken();

    // Disable the site classification settings
    tenant.DisableSiteClassifications(accessToken);
}

Gerenciar a classificação de um site

O valor de classificação de um site pode ser lido ou atualizado posteriormente usando a interface do usuário do Microsoft Office SharePoint Online, como você pode ver na figura a seguir, editando as configurações de Informações do Site.

A opção de classificação de site ao editar as configurações de Informações do Site de um site

Ler programaticamente a classificação de um site

Da perspectiva de um desenvolvedor, você pode usar o CSOM e a API REST do Microsoft Office SharePoint Online para ler e gravar o valor da classificação para um site específico. Na verdade, cada conjunto de sites do Microsoft Office SharePoint Online tem a propriedade De classificação que você pode usar para ler a classificação do site.

Aqui você pode ver um snippet do PowerShell para fazer isso.

# Delete settings
Connect-PnPOnline "https://[tenant].sharepoint.com/sites/[modernsite]" -Credentials [credentials]

$site = Get-PnPSite
$classificationValue = Get-PnPProperty -ClientObject $site -Property Classification
Write-Host $classificationValue

Se você quiser ler o valor de classificação de site usando REST, por exemplo, em uma Web Part do lado do cliente da Estrutura do SharePoint, poderá usar o seguinte ponto de extremidade REST:

https://[tenant].sharepoint.com/sites/[modernsite]/_api/site/Classification

Com base no valor de classificação de um site, você pode definir regras de política personalizadas e de automação.

Na biblioteca PnP Core, há um método de extensão para o objeto Site do CSOM que permite que você leia facilmente o valor de classificação de um site. No snippet de código a seguir, você pode ver como aproveitar esse método de extensão.

// Connect to the target site collectiion
using (var clientContext = new ClientContext("https://[tenant].sharepoint.com/sites/[modernsite]"))
{
    // Provide a valid set of credentials
    clientContext.Credentials = OfficeDevPnP.Core.Utilities.CredentialManager.GetSharePointOnlineCredential("[name-of-your-credentials]");

    // Read the current classification value
    var currentClassification = clientContext.Site.GetSiteClassification();
}

Atualizar programaticamente a classificação de um site

Se o destino for um site de comunicação "moderno", você poderá usar a propriedade Classification do CSOM para atualizar o valor também.

Se o destino for um site de equipe "moderno" e você quiser atualizar o valor de classificação, use o Microsoft Graph porque a propriedade de Classificação do CSOM simplesmente replica o valor da propriedade de classificação do grupo Microsoft 365.

Observação

Você pode encontrar mais detalhes sobre como atualizar um grupo Microsoft 365 usando o Microsoft Graph no documento Grupo de atualização.

Para facilitar a atualização da classificação de um site, na biblioteca PnP Core, há um método de extensão que aplica o comportamento certo para você, dependendo do tipo de site "moderno". No trecho de código a seguir, você pode ver como usá-lo.

// Connect to the target site collectiion
using (var clientContext = new ClientContext("https://[tenant].sharepoint.com/sites/[modernsite]"))
{
    // Provide a valid set of credentials
    clientContext.Credentials = OfficeDevPnP.Core.Utilities.CredentialManager.GetSharePointOnlineCredential("[name-of-your-credentials]");

    // Get an Azure AD Access Token using ADAL, MSAL, or whatever else you like
    // This is needed only if your target is a "modern" team site
    var accessToken = getAzureADAccessToken();

    // Update the classification value, where the accessToken is an optional argument
    clientContext.Site.SetSiteClassification("MBI", accessToken);

    // Read back the new classification value (it can take a while to get back the new value)
    var currentClassification = clientContext.Site.GetSiteClassification();
}

Confira também