Clasificación de los sitios “modernos” de SharePoint

Nota:

Ahora puede usar etiquetas de confidencialidad (/microsoft-365/compliance/sensitivity-labels-teams-groups-sites) en lugar de la clasificación de sitios para ayudar a proteger sus sitios de SharePoint.

Al crear sitios "modernos" en SharePoint Online, también puede seleccionar una clasificación del sitio para definir la sensibilidad de datos de su sitio. EL objetivo de la clasificación del sitio es permitir la administración de los clústeres de sitios según su clasificación desde una perspectiva de gobierno y de cumplimiento, así como automatizar los procesos de gobierno en función de la clasificación del sitio.

Importante

La opción de clasificación de sitios no está habilitada de forma predeterminada y deberá configurarla en el nivel de Azure AD.

Habilitar la clasificación del sitio en su inquilino

Para beneficiarse de la clasificación de sitios, debe habilitar esta función en el nivel de Azure AD, en el inquilino de destino. Después de habilitar esta función, verá el campo adicional ¿Qué nivel de confidencial tienen mis datos? al crear nuevos sitios "modernos". En la siguiente ilustración, puede ver el aspecto que tiene el campo de clasificación del sitio.

La opción de clasificación de sitios al crear un sitio


En la ilustración siguiente, verá la clasificación resaltada en el encabezado de un sitio "moderno".

La clasificación del sitio resaltada en el encabezado de un sitio

Habilitar la clasificación del sitio con PowerShell

Para habilitar la capacidad de clasificación de sitios, puede ejecutar el código PowerShell como en el ejemplo siguiente.

# 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

Nota:

Tenga en cuenta que se tarda algún tiempo (aproximadamente 1 hora o más) hasta tener la configuración disponible en la interfaz de usuario de Office 365.

Respecto al fragmento de código anterior, es importante decir que en el momento en que se escribe este artículo, es necesario usar la versión preliminar de los cmdlets de Azure AD, pero pronto se podrá usar la versión RTM. Después de instalar los cmdlets de Azure AD, basta con conectar con el inquilino de Azure AD que desee, que copia al inquilino de destino de SharePoint Online.

Con el cmdlet Get-AzureADDirectorySettingTemplate, obtendrá una referencia a la Plantilla de configuración para los Grupos unificados, que es el que tiene DisplayName de Group.Unified.

Una vez tenga la plantilla, puede configurar las opciones de esa plantilla creando un nuevo DirectorySetting y proporcionando los valores de configuración a través de un diccionario.

Los valores principales, desde la perspectiva de clasificación de sitios son:

  • UsageGuidelinesUrl: la dirección URL de la página donde puede explicar las diferentes opciones de clasificación. Un vínculo a la página se muestra en el formulario de creación de sitios y en el encabezado de cada sitio clasificado.
  • ClassificationList: lista separada por comas de valores para la lista de opciones de clasificación de sitios.
  • DefaultClassification: el valor predeterminado para la clasificación del sitio.

Habilitar la clasificación del sitio con la biblioteca principal de PnP

Otra opción que tiene para habilitar la capacidad de clasificación de sitios es aprovechar la biblioteca principal PnP, que ofrece unos cuantos métodos de extensión para administrar la clasificación en código C#.

Por ejemplo, para habilitar la clasificación del sitio, puede escribir el código de C# similar al siguiente.

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

Actualizar o quitar la clasificación del sitio en su inquilino

Al igual que para habilitar la clasificación del sitio, actualizar o quitar la configuración puede hacerse con PowerShell o en la biblioteca principal PnP.

Actualizar o eliminar la clasificación del sitio con PowerShell

Si necesita actualizar la configuración de clasificación de sitios posteriormente, puede usar el siguiente fragmento de 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

Nota:

Puede tomar una hora o más hasta que la configuración se actualice en la interfaz de usuario de Office 365.

Como puede ver, simplemente deberá buscar la configuración del directorio con un valor DisplayName de Group.Unified, y, a continuación, puede actualizar los valores de configuración y aplicar los cambios con el cmdlet Set-AzureADDirectorySetting.

Para quitar una clasificación del sitio, puede usar el cmdlet Remove-AzureADDirectorySetting, como en el fragmento de código siguiente.

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

Actualizar o eliminar la clasificación del sitio con la biblioteca principal de PnP

Otra opción es usar la biblioteca principal PnP.

Por ejemplo, para actualizar la clasificación del sitio, puede escribir el código de C# similar al siguiente.

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

Además, para deshabilitar y quitar la configuración de clasificación de sitios, puede usar un fragmento de código similar al siguiente.

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

Administrar la clasificación de un sitio

El valor de clasificación de un sitio se puede leer o actualizar más adelante mediante el uso de la interfaz de usuario de SharePoint Online, como puede ver en la siguiente ilustración, si edita la configuración de Información del sitio.

La opción de clasificación de sitios al editar la Información del sitio de un sitio

Leer mediante programación la clasificación de un sitio

Desde la perspectiva de un desarrollador, puede usar CSOM y la API de REST de SharePoint Online para leer y escribir el valor de clasificación para un sitio específico. De hecho, cada colección de sitios de SharePoint Online tiene la propiedad Clasificación que puede usar para leer la clasificación del sitio.

Aquí puede ver un fragmento de código de PowerShell para ello.

# 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

Si quiere leer el valor de clasificación del sitio con REST, por ejemplo dentro de un elemento web del lado cliente de SharePoint Framework, puede usar el punto final REST siguiente:

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

Según el valor de clasificación de un sitio, puede definir reglas de directiva personalizadas y automatización.

En la biblioteca principal PnP, existe un método de extensión para el objeto Sitio de CSOM que permite leer fácilmente el valor de clasificación de un sitio. En el fragmento de código siguiente, verá cómo aprovechar este método de extensión.

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

Actualizar mediante programación la clasificación de un sitio

Si el destino es un sitio de comunicación "moderno", también puede usar la propiedad Classification de CSOM para actualizar el valor.

Si el destino es un sitio de grupo "moderno" y desea actualizar el valor de clasificación, debería usar Microsoft Graph porque laclasificación de propiedad de CSOM simplemente replica el valor de la clasificación de la propiedad del grupo de Microsoft 365.

Nota:

Encontrará más información sobre cómo actualizar un grupo de Microsoft 365 usando Microsoft Graph en el documento Actualizar grupo.

Para que sea más fácil actualizar la clasificación de un sitio, en la biblioteca principal PnP hay un método de extensión que aplica el comportamiento adecuado por usted, según el tipo de sitio "moderno". En el siguiente fragmento de código, verá cómo usarlo.

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

Vea también