Классификация "современных" сайтов SharePoint

Примечание.

Теперь вы можете использовать метки конфиденциальности (/microsoft-365/compliance/sensitivity-labels-teams-groups-sites) вместо классификации сайтов для защиты сайтов SharePoint.

При создании "современных" сайтов в SharePoint Online можно при желании выбрать классификацию сайтов, чтобы определить конфиденциальность данных сайта. Цель классификации сайта — разрешить управление кластерами сайтов на основе присвоенной системой управления классификации и с точки зрения соответствия требованиям, а также автоматизировать процессы управления на основе классификации сайтов.

Важно!

Параметр классификации сайта по умолчанию не включен, и его необходимо настроить на уровне Azure AD.

Включение классификации сайта в клиенте

Чтобы воспользоваться преимуществами классификации сайта, необходимо включить эту возможность на уровне Azure AD в целевом клиенте. После включения этой возможности при создании новых современных сайтов вы увидите дополнительное поле Насколько конфиденциальны ваши данные?. На следующем рисунке можно увидеть, как выглядит поле классификации сайта.

Параметр классификации сайта при создании


На следующем рисунке вы можете увидеть классификацию, выделенную в заголовке "современного" сайта.

Классификация сайта, выделенная в заголовке

Включение классификации сайта с помощью PowerShell

Чтобы включить возможность классификации сайта, можно выполнить код PowerShell, как в следующем примере.

# 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

Примечание.

Учитывайте, что для параметров, доступных в пользовательском интерфейсе Office 365, требуется некоторое время (около 1 часа или более).

О предыдущем фрагменте кода следует сказать, что на момент написания этой статьи необходимо использовать предварительную версию командлетов Azure AD, но вскоре вы сможете использовать версию RTM. После установки командлетов Azure AD необходимо просто подключиться к целевому клиенту Azure AD, который будет поддерживает целевой клиент SharePoint Online.

С помощью командлета Get-AzureADDirectorySettingTemplate вы получаете ссылку на шаблон параметров для унифицированной группы, который имеет DisplayName из Group.Unified.

После создания шаблона можно настроить параметры этого шаблона, создав новый DirectorySetting и предоставив значения параметров через словарь.

Основные параметры с точки зрения классификации сайта:

  • UsageGuidelinesUrl: URL-адрес страницы, на которой можно объяснить различные параметры классификации. Ссылка на эту страницу отображается в форме создания сайта и в заголовке каждого классифицированного сайта.
  • ClassificationList: список значений, разделенных запятыми, для списка параметров классификации сайтов.
  • DefaultClassification: значение по умолчанию для классификации сайта.

Включение классификации сайта с помощью основной библиотеки PnP

Кроме того, необходимо включить возможность классификации сайта, чтобы использовать основную библиотеку PnP, которая предоставляет несколько методов расширения для управления классификацией в C# коде.

Например, чтобы включить классификацию сайта, можно написать C# код следующим образом.

// 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");
}

Обновление или удаление классификации сайта в клиенте

Подобно включению классификации сайтов, обновление или удаление параметра можно выполнить с помощью PowerShell или основной библиотеки PnP.

Обновление или удаление классификации сайта с помощью PowerShell

Если вам потребуется впоследствии обновить параметры классификации сайта, можно использовать следующий фрагмент кода 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

Примечание.

Обновление параметров в пользовательском интерфейсе Office 365 может занять час или более.

Как видите, необходимо просто найти параметр каталога со значением DisplayNameGroup.Unified, а затем обновить его значения параметров и применить изменения с помощью командлета Set-AzureADDirectorySetting .

Чтобы удалить классификацию сайта, можно использовать командлет Remove-AzureADDirectorySetting, как в следующем фрагменте кода.

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

Обновление или удаление классификации сайта с помощью основной библиотеки PnP

Кроме того, можно использовать основную библиотеку PnP.

Например, чтобы обновить классификацию сайта, можно написать C# код следующим образом.

// 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");
}

Кроме того, чтобы отключить и удалить параметры классификации сайта, можно использовать фрагмент кода следующим образом.

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

Управление классификацией сайта

Значение классификации для сайта можно прочитать или обновить позже с помощью пользовательского интерфейса SharePoint Online, как видно на следующем рисунке, путем изменения параметров Сведения о сайте.

Параметр классификации сайта при редактировании параметров сведений о сайте

Программное чтение классификации сайта

С точки зрения разработчика, вы можете использовать CSOM и REST API SharePoint Online для чтения и записи значения классификации для определенного сайта. На самом деле каждая коллекция веб-сайтов SharePoint Online имеет свойство Классификация, которое можно использовать для чтения классификации сайта.

Здесь вы можете увидеть фрагмент кода PowerShell для этого.

# 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

Если вы хотите прочитать значение классификации сайта с помощью REST, например, в клиентской веб-части SharePoint Framework, можно использовать следующую конечную точку REST:

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

На основе значения классификации сайта можно определить автоматизацию и настраиваемые правила политики.

В основной библиотеке PnP существует метод расширения для объекта Site CSOM, который позволяет легко читать значение классификации сайта. В следующем фрагменте кода вы можете узнать, как использовать этот метод расширения.

// 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();
}

Программное обновление классификации сайта

Если целевой объект является "современным" информационным сайтом, вы также можете использовать свойство Classification CSOM для обновления значения.

Если целью является "современный" сайт группы и вы хотите обновить значение классификации, следует использовать Microsoft Graph, так как свойство Classification CSOM просто реплицирует значение свойства классификации группы Microsoft 365.

Примечание.

Дополнительные сведения об обновлении группы Microsoft 365 с помощью Microsoft Graph можно найти в документе Обновляемая группа.

Чтобы упростить обновление классификации сайта, в основной библиотеке PnP есть метод расширения, который применяет к вам правильное поведение в зависимости от "современного" типа сайта. В следующем фрагменте кода вы можете узнать, как его использовать.

// 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();
}

См. также