SharePoint の "モダン" サイトの分類SharePoint "modern" sites classification

SharePoint Online で "モダン" サイトを作成するときに、オプションとして [サイトの分類] を選択し、サイト データの秘密度を定義できます。When you create "modern" sites in SharePoint Online, you can optionally select a site classification to define the sensitivity of your site data. サイト分類の目標は、ガバナンスと法令遵守のパースペクティブからの分類に基づいてサイトのクラスターを管理したり、サイト分類に基づいてガバナンス プロセスを自動化したりできるようにすることです。The goal of site classification is to allow managing clusters of sites based on their classification from a governance and compliance perspective, as well as to automate governance processes based on site classification.

重要

[サイトの分類] オプションは既定では無効です。Azure AD レベルでこれを構成する必要があります。The site classification option is not enabled by default, and you need to configure it at the Azure AD level.

テナントで [サイトの分類] を有効にするEnable site classification in your tenant

[サイトの分類] を利用するには、ターゲット テナントでこの機能を Azure AD レベルにおいて有効にする必要があります。To benefit from site classification, you need to enable this capability at the Azure AD level, in your target tenant. この機能を有効にすると、"モダン" サイトの新規作成中に、[データの秘密度] という追加のフィールドが表示されます。After you have enabled this capability, you see an additional field How sensititive is your data? while creating new "modern" sites. サイトの分類のフィールドが、次の図に示されているように表示されます。In the following figure, you can see what the site classification field looks like.

SharePoint Online での "モダン" サイトの作成時における [サイトの分類] オプション


次の図にあるように、"モダン" サイトの見出しに分類が強調表示されます。While in the following figure, you can see the classification highlighted in the header of a "modern" site.

"モダン" サイトの見出しで強調表示されている [サイトの分類]

PowerShell で [サイトの分類] を有効にするEnable site classification with PowerShell

[サイトの分類] 機能を有効にするには、次のサンプルのような PowerShell コードを実行できます。To enable the site classification capability, you can execute PowerShell code like the following sample.

# 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 の UI でこの設定が有効になるまでに約 1 時間以上かかることに注意してください。Consider that it takes a while (about 1 hour or more) to have the settings available in the UI of Office 365.

前述のコード スニペットに関して、この資料を書いている時点では Azure AD コマンドレットのプレビュー版を使用する必要がありますが、間もなく RTM バージョンが使用可能になります。About the previous code snippet, it worth saying that at the time of this writing you have to use the preview version of the Azure AD cmdlets, but soon you will be able to use the RTM version. Azure AD コマンドレットをインストールした後は、Azure AD ターゲット テナントに接続するだけで済みます。このテナントが SharePoint Online ターゲット テナントの背後に配置されます。After you have installed the Azure AD cmdlets, you simply need to connect to the target Azure AD tenant, which is backing your target SharePoint Online tenant.

Get-AzureADDirectorySettingTemplate コマンドレットを使用して、(DisplayNameGroup.Unified である) 統合グループ設定テンプレートへの参照を取得します。Using the Get-AzureADDirectorySettingTemplate cmdlet, you get a reference to the Setting Template for the Unified Groups, which is the one with DisplayName of Group.Unified.

テンプレートの取得後、そのテンプレートの設定を構成できます。これを行うには、新しい DirectorySetting を作成し、ディクショナリを介して設定値を提供します。After you have the template, you can configure the settings of that template by creating a new DirectorySetting and providing the setting values through a dictionary.

[サイトの分類] パースペクティブから可能な主な設定は次のとおりです。The main settings, from a site classification perspective are:

  • UsageGuidelinesUrl:さまざまな分類オプションについて記述できるページの URL。UsageGuidelinesUrl: the URL of a page where you can explain the different classification options. そのページへのリンクが、サイト作成フォームと、分類された各サイトの見出しに表示されます。A link to that page shows up in the site creation form and in the header of every classified site.
  • ClassificationList:[サイトの分類] オプション一覧を示す、コンマ区切りの値リスト。ClassificationList: a comma separated list of values for the site classification options list.
  • DefaultClassification:[サイトの分類] の既定値。DefaultClassification: the default value for the site classification.

PnP コア ライブラリで [サイトの分類] を有効にするEnable site classification with PnP Core library

[サイトの分類] 機能を有効にするための別の選択肢として、PnP コア ライブラリを利用できます。このライブラリには、C# コードで分類を管理する拡張メソッドがいくつかあります。Another option that you have to enable the site classification capability is to leverage the PnP Core library, which provides a few extension methods to manage classification in C# code.

たとえば、[サイトの分類] を有効にするには、次のような C# コードを記述できます。For example, to enable the site classification, you can write C# code like the following.

// 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", "http://aka.ms/OfficeDevPnP");
}

テナントで [サイトの分類] を更新または削除するUpdate or remove site classification in your tenant

[サイトの分類] を有効にする場合と同様に、PowerShell または PnP コア ライブラリを使用して設定を更新または削除できます。Similar to enabling the site classification, updating or removing the setting can be done either by using PowerShell or the PnP Core library.

PowerShell で [サイトの分類] を更新または削除するUpdate or remove site classification with PowerShell

後で [サイトの分類] 設定を更新する必要が生じた場合、次の PowerShell スニペットを使用できます。If you need to update the site classification settings afterwards, you can use the following PowerShell snippet.

# 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 の UI で設定の更新が反映されるまでに、約 1 時間以上かかる場合があります。It may take an hour or more to have the settings updated in the UI of Office 365.

示されているように、DisplayName の値が Group.Unified である Directory Setting を検索し、Set-AzureADDirectorySetting コマンドレットを使ってその設定値を更新し、変更を適用できます。As you can see, you simply need to search for the Directory Setting with a DisplayName value of Group.Unified, and then you can update its setting values and apply the changes by using the Set-AzureADDirectorySetting cmdlet.

[サイトの分類] を削除するには、次のコード スニペットのように Remove-AzureADDirectorySetting コマンドレットを使用できます。To remove a site classification, you can use the Remove-AzureADDirectorySetting cmdlet, like in the following code snippet.

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

PnP コア ライブラリで [サイトの分類] を更新または削除するUpdate or remove site classification with PnP Core library

別の選択肢として、PnP コア ライブラリを使用できます。Another option that you have is to use the PnP Core library.

たとえば、[サイトの分類] を更新するには、次のような C# コードを記述できます。For example, to update the site classification, you can write C# code like the following.

// 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", "http://aka.ms/SharePointPnP");
}


さらに、[サイトの分類] 設定を無効にして削除するには、次のようなコード スニペットを使用できます。Moreover, to disable and remove the site classification settings, you can use a code snippet like the following.

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

サイトの分類を管理するManage the classification of a site

次の図に示されているように、SharePoint Online の UI を使用して [サイトの情報] 設定を編集することで、サイトの分類値をあとで読み取ったり更新したりできます。The value of classification for a site can be read or updated later on by using the UI of SharePoint Online, as you can see in the following figure, by editing the Site Information settings.

SharePoint Online で "モダン" サイトの [サイトの情報] 設定を編集する際の [サイトの分類] オプション

プログラムを使用してサイトの分類を読み取るProgrammatically read the classification of a site

開発者の観点から、SharePoint Online の CSOM と REST API を使用して、特定のサイトの分類値を読み取ったり書き込んだりできます。From a developer's perspective, you can use CSOM and the REST API of SharePoint Online to read and write the value of classification for a specific site. 実際、すべての SharePoint Online サイト コレクションに含まれている Classification プロパティを使用すると、サイトの分類を読み取ることができます。In fact, every SharePoint Online site collection has the Classification property that you can use to read the site classification.

そのための PowerShell スニペットを次に示します。Here you can see a PowerShell snippet to do that.

# 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

(たとえば、SharePoint Framework のクライアント側の Web パーツで) REST を使用して [サイトの分類] を読み取る場合、次の REST エンドポイントを使用できます。If you like to read the site classification value using REST, for example within a SharePoint Framework client-side web part, you can use the following REST endpoint:

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

サイトの分類値に基づいて、オートメーションとカスタム ポリシー ルールを定義できます。Based on the classification value of a site, you can define automation and custom policy rules.

PnP コア ライブラリには、CSOM のサイト オブジェクト用の拡張メソッドがあり、これによりサイトの分類値を簡単に読み取ることができます。In the PnP Core library, there is an extension method for the Site object of CSOM that allows you to easily read the classification value of a site. 次のコード スニペットで、この拡張メソッドを利用する方法を示します。In the following code snippet you can see how to leverage this extension method.

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

プログラムを使用してサイトの分類を更新するProgrammatically update the classification of a site

ターゲットが "モダン" コミュニケーション サイトである場合には、CSOM の Classification プロパティを使用して値を更新することもできます。If your target is a "modern" communication site, you can use the Classification property of CSOM to update the value, too.

ターゲットが "モダン" チーム サイトで、分類値を更新する場合には、Microsoft Graph を使用する必要があります。CSOM の Classification プロパティは Office 365 グループの classification プロパティ値を複製するだけだからです。If your target is a "modern" team site and you want to update the classification value, you should use the Microsoft Graph because the Classification property of CSOM simply replicates the value of the classification property of the Office 365 group.

注意

Microsoft Graph を使用して Office 365 グループを更新する方法の詳細については、「グループを更新する」をご覧ください。You can find further details about how to update an Office 365 group using the Microsoft Graph in the document Update group.

PnP コア ライブラリにある拡張メソッドは "モダン" サイトの種類に応じて適切な動作を適用し、これによりサイトの分類を簡単に更新できます。To make it easier for you to update the classification of a site, in the PnP Core library there is an extension method that applies the right behavior for you, depending on the "modern" site type. 次のコードの引用部分で、その使用方法を示します。In the following code excerpt you can see how to use it.

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

関連項目See also