Importez dans Copilot via un connecteur 🔌

J’ai reçu un mail il y a quelques jours de la part de Microsoft (oui oui, seulement un 🤣) m’invitant tester par moi-même un premier connecteur Copilot pour Microsoft 365, en suivant simplement un pas à pas technique. N’ayant pas d’expérience en .NET, je me suis dit … pourquoi pas ! Je vous propose de le réaliser ensemble pour que vous puissiez vous-même reproduire cet exercice sur votre tenant Copilot.

Dans cet article, nous reprendrons brièvement quelques concepts et nous testerons nous-même de créer un connecteur Microsoft Graph personnalisé afin d’enrichir les résultats Copilot dans Microsoft 365.

Voici encore un rappel des articles écrits autour des solutions Copilot de Microsoft :

Qu’est-ce qu’un connecteur Microsoft Graph ?

Les connecteurs Microsoft Graph vous permettent d’ingérer vos données métier non structurées dans Microsoft Graph, afin que Copilot pour Microsoft 365 puissent raisonner sur l’intégralité du contenu de votre entreprise. Le contenu ingéré via les connecteurs Graph est ajouté à Microsoft Graph ; cela déverrouille la compréhension sémantique des invites de vos utilisateurs dans Copilot pour Microsoft 365.

Microsoft Learn

Quel est l’impact d’un connecteur dans Copilot pour 365 ?

L’impact de connecteur dans les résultats Copilot peut changer la donne dans les résultats de recherche documentaire car il va fouiner en dehors de Microsoft 365.

Voici un exemple montrant des résultats avec des références externes à Microsoft 365, améliorant donc l’expérience de recherche de l’utilisateur Copilot :

Voici également une courte vidéo montrant un peu plus à ce sujet :

Peut-on gérer les droits d’accès aux données remontées via un connecteur ?

Oui, ce qui est stocké en dehors de Microsoft 365 reste accessible selon une configuration ACL de votre choix. Les documents pourraient alors être visibles par :

  • Tous les membres de votre organisation
  • Un ou des groupes 365
  • Un ou des utilisateurs 365

Important : Les autorisations d’accès au contenu externe sont directement stockées dans le système externe.

Existe-t-il des connecteurs déjà disponibles sur étagères ?

Oui, Microsoft propose déjà un site web référençant des connecteurs de plusieurs grands éditeurs :

Quelles sont les sources de données possibles via un Connecteur ?

Microsoft a déjà créé plusieurs connecteurs dont voici certains exemples de source de données :

Azure Data Lake Storage Gen2, Azure DevOps Work Items, Azure DevOps Wiki, Azure SQL and Microsoft SQL Server, Confluence Cloud, Confluence On-premises, CSV, Custom connector, Enterprise websites, Jira Cloud, MediaWiki, File share, Oracle SQL, Salesforce, ServiceNow Knowledge, ServiceNow Catalog, ServiceNow Tickets

Peut-on créer un connecteur personnalisé ?

La réponse est encore oui. Dans l’objectif de vous aider à tester Copilot avec un connecteur Microsoft Graph personnalisé, Microsoft a mis à disposition la documentation suivante.

Grâce à celle-ci, vous pouvez facilement tester intégration du contenu externe à Copilot for Microsoft 365 à l’aide de connecteurs Microsoft Graph construits avec .NET.

Dans cet exercice Microsoft, les tâches que nous allons réaliser seront donc les suivantes :

Commençons par un bref rappel des prérequis.

Etape 0 – Rappel des prérequis :

Pour réaliser cet exercice sur un connecteur Microsoft Graph, il vous faudra disposer des éléments suivants :

  • Un tenant Microsoft
  • Une licence Copilot pour Microsoft 365
  • Une des licences 365 suivantes :
    • Microsoft 365 E5
    • Microsoft 365 E3
    • Office 365 E3
    • Office 365 E5
    • Microsoft 365 A5
    • Microsoft 365 A3
    • Office 365 A5
    • Office 365 A3
    • Microsoft 365 Business Standard
    • Microsoft 365 Business Premium

Avant de créer le connecteur Microsoft Graph personnalisé, faisons un premier de test de prompt à Copilot pour évaluer les réponses obtenues.

Etape I – Premier test Copilot sans connecteur :

Pour cela, ouvrez votre navigateur internet sur la page web de Copilot en mode Work :

Saisissez le prompt suivant :

please find a doc how to install a Microsoft Graph SDK

Copilot vous informe qu’il ne trouve aucun document stocké dans les données d’entreprise, ou qu’aucun document ne vous est accessible.

Notez que le Plugin Web n’est pas activé, ce qui aurait pu donner un résultat également différent :

Nous allons maintenant mettre en place un connecteur Microsoft Graph personnalisé afin d’en mesurer le changement des réponses de Copilot.

Etape II – Préparation du poste local :

Pour plus de facilité, commencez par télécharger Visual Studio Code via la page officielle de téléchargement :

Une fois l’installeur téléchargé, exécutez celui-ci

Acceptez les conditions d’utilisation, puis cliquez sur Suivant :

Définissez le répertoire d’installation, puis cliquez sur Suivant :

Cliquez sur Suivant :

Cliquez sur Suivant :

Cliquez sur Installer :

Attendez 1 minute que l’installation de Visual Studio Code se termine :

Cliquez sur Terminer :

Une fois dans Visual Studio Code, allez dans le menu Extensions, puis installez l’extension simplement nommée C# :

Retournez sur votre navigateur internet afin de télécharger la version 8.0.1 du SDK .NET :

Une fois l’installation téléchargée, exécutez celle-ci :

Cliquez sur Installer :

Confirmez l’action de sécurité Windows en cliquant sur Oui :

Attendez 1 minute que l’installation de .NET se termine :

Cliquez sur Fermer :

Redémarrer votre poste Windows afin de prendre en compte la nouvelle version .NET :

Notre poste est maintenant prêt pour la création d’un connecteur Microsoft Graph personnalisé.

Nous allons commencer par la préparation de notre tenant à gérer les authentification de notre connecteur à Microsoft 365 à l’API de Microsoft Graph.

Etape III – Création d’une Inscription d’application Entra :

Rendez-vous sur la page du portail Azure disponible juste ici, puis ouvrez le service Microsoft Entra ID :

Dans le menu Inscriptions d’applications, cliquez-ici pour créer une nouvelle Inscription :

Nommez votre application, puis cliquez sur Inscrire :

Attendez quelques secondes la notification suivante :

Cliquez sur le menu Certificats et secrets, puis ajoutez un nouveau secret client comme ceci :

Nommez-le, puis cliquez sur Ajouter :

Copiez la valeur de votre secret. Ce dernier sera utilisé par votre connecteur Microsoft Graph afin qu’il s’authentifie automatiquement :

Dans le menu des Permissions API, cliquez-ici pour ajouter des permissions supplémentaires :

Choisissez l’API Microsoft Graph :

Cliquez sur Permissions d’application :

Recherchez et cochez les 2 permissions suivantes en utilisant la barre de recherche, puis cliquez sur Ajouter les permissions :

  • ExternalConnection 
    • ExternalConnection.ReadWrite.OwnedBy
  • ExternalItem 
    • ExternalItem.ReadWrite.OwnedBy

Enfin, cliquez sur le bouton suivant afin d’appliquer ces permissions au niveau du tenant :

Confirmez votre choix en cliquant sur Oui :

Leur statut s’en retrouve alors changé comme ceci :

La configuration du côté du tenant est en partie terminée. Nous allons maintenant nous intéresser l’écriture du code en .NET de notre connecteur Microsoft Graph.

Etape IV – Création du connecteur Microsoft Graph personnalisé :

Dans l’explorateur Windows, créez un dossier pour y stocker le codes et les données de votre futur connecteur Microsoft Graph :

Retournez dans Visual Studio Code, puis cliquez ici pour vous positionnez sur ce nouveau répertoire :

Cliquez sur Oui :

Dans la console située en bas de votre écran, vérifiez le bon positionnement de votre dossier, puis lancez la commande suivante pour créer une nouvelle console dédiée à votre application .NET :

dotnet new console

Notez l’apparition de fichiers suivants dans l’explorateur Windows :

Ajoutez la bibliothèque suivante pour s’authentifier auprès des services Microsoft 365 :

dotnet add package Azure.Identity

Ajoutez la bibliothèque cliente suivante pour communiquer à l’API Microsoft Graph :

dotnet add package Microsoft.Graph

Ajoutez la bibliothèque suivante pour gérer les secrets :

dotnet add package Microsoft.Extensions.Configuration.UserSecrets

Ajoutez la bibliothèque suivante pour intégrer des commandes dans l’application :

dotnet add package System.CommandLine --prerelease

Afin de stocker les secrets de notre application, lancez la commande suivante :

dotnet user-secrets init

Conservez les 3 informations de votre Inscription d’application pour vous authentifier automatiquement auprès de Microsoft 365 :

  • ID de l’application
  • Valeur du secret
  • ID du tenant

Saisissez les commandes suivantes pour les stocker de manière sécurisée en remplaçant les 3 valeurs en gras par celles récupérées juste avant :

dotnet user-secrets set "EntraId:ClientId" "[application id]"
dotnet user-secrets set "EntraId:ClientSecret" "[secret value]"
dotnet user-secrets set "EntraId:TenantId" "[tenant id]"

Continuons la configuration par la connexion entre le connecteur personnalisé et l’API Microsoft API.

Etape V – Configuration de la connexion avec l’API Microsoft Graph :

Le premier fichier va être utile à gérer les informations de la connexion entre le connecteur personnalisé et l’API Microsoft Graph.

Dans Visual Studio Code, créez un premier fichier texte en cliquant juste ici :

Choisissez le type de fichier texte :

Collez le code suivant dans votre fichier, puis sauvegardez-le via la commande clavier Ctrl Shift+S avec le nom GraphService.cs :

using Azure.Identity;
using Microsoft.Graph;
using Microsoft.Extensions.Configuration;

class GraphService
{
  static GraphServiceClient? _client;

  public static GraphServiceClient Client
  {
    get
    {
      if (_client is null)
      {
        var builder = new ConfigurationBuilder().   AddUserSecrets<GraphService>();
        var config = builder.Build();

        var clientId = config["EntraId:ClientId"];
        var clientSecret = config["EntraId:ClientSecret"];
        var tenantId = config["EntraId:TenantId"];

        var credential = new ClientSecretCredential(tenantId, clientId,    clientSecret);
        _client = new GraphServiceClient(credential);
      }

      return _client;
    }
  }
}

Le second fichier contient la connexion externe elle-même avec Microsoft 365 et les schémas de données envoyées à Microsoft 365.

Créer à nouveau un fichier texte, collez le code suivant dans votre fichier, puis sauvegardez-le via la commande clavier Ctrl Shift+S avec le nom ConnectionConfiguration.cs :

using Microsoft.Graph.Models.ExternalConnectors;
static class ConnectionConfiguration
{
  public static ExternalConnection ExternalConnection
  {
    get
    {
      return new ExternalConnection
      {
        Id = "msgraphdocs",
        Name = "Microsoft Graph documentation",
        Description = "Documentation for Microsoft Graph API which    explains what Microsoft Graph is and how to use it."
      };
    }
  }
  public static Schema Schema
  {
    get
    {
      return new Schema
      {
        BaseType = "microsoft.graph.externalItem",
        Properties = new()
        {
          new Property
          {
            Name = "title",
            Type = PropertyType.String,
            IsQueryable = true,
            IsSearchable = true,
            IsRetrievable = true,
            Labels = new() { Label.Title }
          },
          new Property
          {
            Name = "description",
            Type = PropertyType.String,
            IsQueryable = true,
            IsSearchable = true,
            IsRetrievable = true
          },
          new Property
          {
            Name = "iconUrl",
            Type = PropertyType.String,
            IsRetrievable = true,
            Labels = new() { Label.IconUrl }
          },
          new Property
          {
            Name = "url",
            Type = PropertyType.String,
            IsRetrievable = true,
            Labels = new() { Label.Url }
          }
        }
      };
    }
  }
}

Créer un troisième fichier texte contant les demandes d’établissement de connexion entre le connecteur personnalisé et l’API de Microsoft Graph.

Collez le code suivant dans votre fichier, puis sauvegardez-le via la commande clavier Ctrl Shift+S avec le nom ConnectionService.cs :

using Microsoft.Graph.Models.ExternalConnectors;

static class ConnectionService
{
  async static Task CreateConnection()
  {
    Console.Write("Creating connection...");

    await GraphService.Client.External.Connections
      .PostAsync(ConnectionConfiguration.ExternalConnection);

    Console.WriteLine("DONE");
  }

  async static Task CreateSchema()
  {
    Console.WriteLine("Creating schema...");

    await GraphService.Client.External
      .Connections[ConnectionConfiguration.ExternalConnection.Id]
      .Schema
      .PatchAsync(ConnectionConfiguration.Schema);

    do
    {
      var externalConnection = await GraphService.Client.External
        .Connections[ConnectionConfiguration.ExternalConnection.Id]
        .GetAsync();

      Console.Write($"State: {externalConnection?.State.ToString()}");

      if (externalConnection?.State != ConnectionState.Draft)
      {
        Console.WriteLine();
        break;
      }

      Console.WriteLine($". Waiting 60s...");

      await Task.Delay(60_000);
    }
    while (true);

    Console.WriteLine("DONE");
  }

  public static async Task ProvisionConnection()
  {
    try
    {
      await CreateConnection();
      await CreateSchema();
    }
    catch (Exception ex)
    {
      Console.WriteLine(ex.Message);
    }
  }
}

Enfin, ouvrez le fichier Program.cs créé automatiquement dans votre dossier afin de signaler à notre l’application .NET de créer la connexion et son schéma.

Pour ce faire, remplacez le code de départ par celui-ci, puis sauvegardez-le via la commande clavier Ctrl Shift+S :

using System.CommandLine;

var provisionConnectionCommand = new Command("provision-connection",    "Provisions external connection");
provisionConnectionCommand.SetHandler(ConnectionService.   ProvisionConnection);

var rootCommand = new RootCommand();
rootCommand.AddCommand(provisionConnectionCommand);
Environment.Exit(await rootCommand.InvokeAsync(args));

Un premier test de création de connexion vers Microsoft 365 via l’API Microsoft Graph depuis notre connecteur personnalisé est déjà possible.

Etape VI – Test de connection :

Pour cela, utilisez la commande .NET suivante pour construire votre projet :

dotnet build

Démarrez l’application en exécutant la commande suivante, puis attendez :

dotnet run -- provision-connection

Ouvrez la page Search & intelligence suivante dédiée aux connecteurs de sources de données :

Continuez d’attendre la construction complète de la connexion :

Retournez sur cette même page afin de constater le changement du status de la connexion :

Nous venons de créer une connexion externe afin d’indexer nos futurs documents à venir dans Microsoft 365.

La prochaine étape consiste justement à importer de la donnée afin d’alimenter les index de Microsoft 365.

Etape VII – Configuration de l’import de contenu externe :

Un connecteur Microsoft Graph se connecte à un système externe, exporte son contenu et l’importe dans Microsoft 365. Au cours de ce processus, un connecteur graphique transforme le contenu exporté en éléments externes mettant en correspondance le contenu avec le schéma configuré sur la connexion externe.

Le contenu définit l’essentiel de l’élément qui est indexé pour la recherche en texte intégral. Pour un document ou une page wiki, il s’agit du corps du document. Pour un produit, il peut s’agir de sa description. Les connecteurs graphiques vous permettent d’importer du contenu au format texte ou HTML. Si vous importez du contenu binaire, comme des vidéos ou des images, vous devez obtenir leur représentation textuelle avant de les importer dans Microsoft 365.

Microsoft Learn

Afin de simuler facilement du contenu, Microsoft met à disposition sur GitHub des fichiers de contenu pour notre connecteur Microsoft Graph personnalisé.

Téléchargez ce contenu via ce lien GitHub, puis débloquez la protection sur l’archive ZIP :

Décompressez le contenu de l’archive dans l’arborescence de votre projet comme ceci :

Depuis l’explorateur Windows, vérifiez que le contenu de votre projet se présente sous cette forme :

Vérifiez la présence de cette nouvelle arborescence dans Visual Studio Code :

Dans Visual Studio Code, ouvrez le seul fichier .csproj présent dans votre projet :

Ajoutez le code suivant dans le fichier .csproj avant la balise </Project> pour copier le contenu, puis sauvegardez-le via la commande clavier Ctrl Shift+S :

<ItemGroup>
  <ContentFiles Include="content\**"    CopyToOutputDirectory="PreserveNewest" />
</ItemGroup>

<Target Name="CopyContentFolder" AfterTargets="Build">
  <Copy SourceFiles="@(ContentFiles)" DestinationFiles="@   (ContentFiles->'$(OutputPath)\content\%(RecursiveDir)%(Filename)%   (Extension)')" />
</Target>

Afin d’importer les fichiers de contenu au format Markdown vers Microsoft 365, nous devons extraire les métadonnées et convertir les contenus au format texte :

Pour y arriver, nous avons besoin d’autres bibliothèques :

dotnet add package Markdig
dotnet add package YamlDotNet

Créez un quatrième fichier texte consacré à la gestion du contenu à importer. Celui-ci va réaliser les actions suivantes :

  • Configuration du traitement du format markdown
  • Extraction des contenus markdown et YAML
  • Transformation du contenu en éléments externes
  • Chargement des éléments externes dans Microsoft 365

Collez le code suivant dans votre fichier, puis sauvegardez-le via la commande clavier Ctrl Shift+S avec le nom ContentService.cs :

using YamlDotNet.Serialization;
using Microsoft.Graph.Models.ExternalConnectors;
using Markdig;
public interface IMarkdown
{
  string? Markdown { get; set; }
}

class DocsArticle : IMarkdown
{
  [YamlMember(Alias = "title")]
  public string? Title { get; set; }
  [YamlMember(Alias = "description")]
  public string? Description { get; set; }
  public string? Markdown { get; set; }
  public string? Content { get; set; }
  public string? RelativePath { get; set; }
}

static class ContentService
{
static IEnumerable<DocsArticle> Extract()
{
  var docs = new List<DocsArticle>();

  var contentFolder = "content";
  var contentFolderPath = Path.Combine(Directory.GetCurrentDirectory(),    contentFolder);
  var files = Directory.GetFiles(contentFolder, "*.md", SearchOption.   AllDirectories);

  foreach (var file in files)
  {
    try
    {
      var contents = File.ReadAllText(file);
      var doc = contents.GetContents<DocsArticle>();
      doc.Content = Markdown.ToHtml(doc.Markdown ?? "");
      doc.RelativePath = Path.GetRelativePath(contentFolderPath, file);
      docs.Add(doc);
    }
    catch (Exception ex)
    {
      Console.WriteLine(ex.Message);
    }
  }

  return docs;
}

  static IEnumerable<ExternalItem> Transform(IEnumerable<DocsArticle> content)
{
  var baseUrl = new Uri("https://learn.microsoft.com/graph/");

  return content.Select(a =>
  {
    var docId = GetDocId(a.RelativePath ?? "");
    return new ExternalItem
    {
      Id = docId,
      Properties = new()
      {
        AdditionalData = new Dictionary<string, object> {
            { "title", a.Title ?? "" },
            { "description", a.Description ?? "" },
            { "url", new Uri(baseUrl, a.RelativePath!.Replace(".md",    "")).ToString() }
        }
      },
      Content = new()
      {
        Value = a.Content ?? "",
        Type = ExternalItemContentType.Html
      },
      Acl = new()
      {
          new()
          {
            Type = AclType.Everyone,
            Value = "everyone",
            AccessType = AccessType.Grant
          }
      }
    };
  });
}

static async Task Load(IEnumerable<ExternalItem> items)
{
  foreach (var item in items)
  {
    Console.Write(string.Format("Loading item {0}...", item.Id));

    try
    {
      await GraphService.Client.External
        .Connections[Uri.EscapeDataString(ConnectionConfiguration.   ExternalConnection.Id!)]
        .Items[item.Id]
        .PutAsync(item);

      Console.WriteLine("DONE");
    }
    catch (Exception ex)
    {
      Console.WriteLine("ERROR");
      Console.WriteLine(ex.Message);
    }
  }
}

  public static async Task LoadContent()
  {
    var content = Extract();
    var transformed = Transform(content);
    await Load(transformed);
  }

  static string GetDocId(string relativePath)
{
  var id = relativePath.Replace(Path.DirectorySeparatorChar.ToString(),    "__").Replace(".md", "");
  return id;
}
}

Créez un cinquième fichier texte consacré à l’extraction de contenu fichiers de contenu.

Collez le code suivant dans votre fichier, puis sauvegardez-le via la commande clavier Ctrl Shift+S avec le nom MarkdownExtensions.cs :

// from: https://khalidabuhakmeh.com/parse-markdown-front-matter-with-csharp
using Markdig;
using Markdig.Extensions.Yaml;
using Markdig.Syntax;
using YamlDotNet.Serialization;

public static class MarkdownExtensions
{
  private static readonly IDeserializer YamlDeserializer =
      new DeserializerBuilder()
      .IgnoreUnmatchedProperties()
      .Build();

  private static readonly MarkdownPipeline Pipeline
      = new MarkdownPipelineBuilder()
      .UseYamlFrontMatter()
      .Build();
      public static T GetContents<T>(this string markdown) where T :    IMarkdown, new()
{
  var document = Markdown.Parse(markdown, Pipeline);
  var block = document
      .Descendants<YamlFrontMatterBlock>()
      .FirstOrDefault();

  if (block == null)
    return new T { Markdown = markdown };

  var yaml =
      block
      // this is not a mistake
      // we have to call .Lines 2x
      .Lines // StringLineGroup[]
      .Lines // StringLine[]
      .OrderByDescending(x => x.Line)
      .Select(x => $"{x}\n")
      .ToList()
      .Select(x => x.Replace("---", string.Empty))
      .Where(x => !string.IsNullOrWhiteSpace(x))
      .Aggregate((s, agg) => agg + s);

  var t = YamlDeserializer.Deserialize<T>(yaml);
  t.Markdown = markdown.Substring(block.Span.End + 1);
  return t;
}
}

Enfin, rouvrez à nouveau le fichier Program.cs modifié précédemment pour y ajouter la commande de chargement du contenu, puis sauvegardez-le via la commande clavier Ctrl Shift+S :

var loadContentCommand = new Command("load-content", "Loads content   into the external connection");
loadContentCommand.SetHandler(ContentService.LoadContent);
rootCommand.AddCommand(loadContentCommand);

Etape VIII – Test d’importation :

Pour cela, utilisez la commande .NET suivante pour reconstruire à nouveau votre projet :

dotnet build

Commencez à charger le contenu vers Microsoft 365 en exécutant la commande suivante :

dotnet run -- load-content

Retournez sur la page Search & intelligence afin de constater l’ajout d’objets indexés en haut à droite :

Notre environnement 365 contient maintenant l’accès à ces nouveaux documents. Il nous faut maintenant activer cette source dans 365 pour que Copilot puisse les ressortir en résultat.

Etape IX – Activation de la connexion externe dans Copilot :

Toujours sur cette même page d’administration 365, rendez-vous sur l’onglet Personnalisations, puis cliquez-ici pour activer votre connecteur dans les résultats :

Cochez les cases suivantes pour activer votre connecteur dans les résultats Copilot :

Etape X – Second test Copilot avec connecteur :

Sur votre utilisateur ayant la licence Copilot pour Microsoft 365, retournez sur la page de Copilot en mode Work en ayant toujours aucun plugin d’actif :

Saisissez à nouveau le prompt suivant :

please find a doc how to install a Microsoft Graph SDK

Constatez l’apparition d’un résultat avec une ou plusieurs références de type Externe :

Refaite la même opération en promptant sur le même sujet, puis cliquez sur la source externe :

Constatez l’ouverture d’un nouvel onglet pointant vers la documentation Microsoft Learn car le document dispose d’une URL pointant vers celle-ci :

Conclusion

Par les extensions, Microsoft nous montre que l’IA n’en est qu’à ses débuts dans les différents systèmes de données. Les entreprises ont tout y gagner à connecter une IA sur un ensemble de plusieurs systèmes d’informations.

Savoir que je peux interroger mes stocks de marchandises, et les modifier au besoin dans mes autres systèmes au moyen d’une IA connectée me fait espérer beaucoup d’innovations pour les années à venir :

Je souhaite donc continuer à écrire d’autres articles sur l’IA. Par exemple, en testant les Quickstarts proposés par Microsoft, comme Build your first custom Microsoft Graph connector.

Votre Copilot a faim ! 🍔

Copilot pour Microsoft 365 fait maintenant partie de votre quotidien depuis plusieurs semaines ? Vous êtes donc un utilisateur régulier de Copilot dans plusieurs applications 365 ? En ressentez-vous déjà les premiers impacts sur votre productivité ?

Copilot pourrait-il en faire plus ?

Il est possible que vous soyez prêts à élargir le périmètre de votre Copilot ! Pour cela, prenez le temps de savoir comment Copilot pourrait exploiter d’autres données, et surtout comment il s’y prendrait.

Voici déjà quelques articles écrits sur ce blog autour des solutions Copilot de Microsoft :

Comme le rappelle Microsoft, Copilot est en soit l’IA générative actuellement la plus adaptée aux applications et données présentes dans Microsoft 365 :

En soi, Copilot pour Microsoft 365 est un outil de productivité puissant pour maintenir les utilisateurs dans le flux de leur travail dans les applications Microsoft 365. Il fournit aux utilisateurs des compétences générales telles que la compréhension, la synthèse, la prédiction, le rappel, la traduction et la génération de contenu.

Il s’appuie sur une base de référence de vos connaissances organisationnelles en indexant du contenu dans Microsoft Graph, tel que les e-mails, les conversations et les documents auxquels les utilisateurs ont l’autorisation d’accéder.

Microsoft Learn

Copilot pour Microsoft 365 a été annoncé il y a longtemps, mais les choses évoluant très rapidement, prenez-le temps de regarder cette vidéo en français pour comprendre un peu mieux Copilot pour Microsoft 365 :

Je pense que ce schéma a déjà dû passer sous vos yeux à plusieurs reprises, mais il est facile à comprendre car il montre les avantages natifs d’un Copilot déjà connecté aux données de votre tenant.

De ce fait, et sans rien faire d’autres qu’acheter des licences Copilot pour Microsoft 365, le schéma technique de votre IA Copilot ressemble déjà à ça :

Alors, pourquoi en faire plus ?

Car l’IT d’une entreprise a de nombreuses vies et ne se limite pas aux outils 365 et aux données stockées dans SharePoint, OneDrive et autres.

Bien souvent, d’autres outils proviennent d’éditeurs tiers ou sont créés en internes pour des besoins métiers. La donnée peut donc se trouver en dehors de l’environnement 365 et possiblement sous des formats spécifiques.

Techniquement, Copilot pour Microsoft 365 ne peut donc pas s’inspirer de cette donnée inconnue ou même la proposer si un utilisateur lui en fait la demande via un prompt.

Mais une fois en place, votre Copilot pour Microsoft 365 dispose de plusieurs possibilités pour étendre son périmètre pour coller toujours plus aux besoins :

Pour vous faire une meilleure idée, voici un exemple assez parlant donné par Microsoft :

  • Suivi des problèmes pour l’équipe d’ingénierie : Supposons que votre équipe d’ingénierie s’appuie sur un logiciel de gestion de projet. Vous pouvez créer un outil personnalisé qui permet aux utilisateurs de surveiller les tickets ouverts. Un utilisateur peut demander des informations sur tous les problèmes qui lui sont attribués, et Copilot pour Microsoft 365 peut récupérer et présenter ces données en toute transparence à partir de votre plugin.

Imaginez alors d’autres données relatives aux ressources humaines, à la comptabilité, aux outils de productions industrielles ou encore à la finance ? Tout cela à la portée d’un simple prompt à Copilot ?

Oui mais, comment s’y prend-on ?

Rien n’est automatique, mais Microsoft vous propose déjà 2 approches pour y parvenir :

  • Plugin : Ideal pour les données structurées. Développez des plugins qui utilisent le schéma OpenAI pour ajouter des fonctionnalités personnalisées aux expériences Microsoft Copilot, en connectant les données de votre propre application à Microsoft Copilot. Les plugins permettent à une expérience Copilot d’interagir avec vos propres API, améliorant ainsi l’expérience pour effectuer un plus grand nombre d’actions. (Source : Microsoft)
  • Connecteur : Ideal pour les données non structurées. Le connecteur vous permet d’ingérer vos données métier non structurées dans Microsoft Graph, afin que Copilot pour Microsoft 365 puissent raisonner sur l’intégralité du contenu de votre entreprise. Le contenu ingéré via les connecteurs Graph est ajouté à Microsoft Graph ; cela déverrouille la compréhension sémantique des invites de vos utilisateurs dans Copilot pour Microsoft 365. (Source : Microsoft)

Mais alors, lequel choisir ?

Pour vous aider au mieux à comprendre, cette vidéo de Microsoft vous montre justement les impacts en situation réelle :

Pour vous aider à faire votre choix, Microsoft a également mis à disposition cet arbre de décision :

Attention, la structure de la donnée pourrait avoir elle aussi un impact sur votre choix :

ConnecteursPlugins
StructureDonnées non structurées ou aplatisDonnées structurées
Volume de donnéesJusqu’à 5 millions d’éléments par connexionConvient pour les données à volume élevé (plus de 5 M)
Activité des donnéesJusqu’à 20 demandes par secondeAdapté à une activité élevée (plus de 20 req/s.)
Lecture/ÉcritureLecture seuleInscriptible

Enfin, Microsoft liste ici les avantages techniques des 2 solutions :

ConnecteursPlugins
AvantagesPertinence basée sur les activités de l’utilisateur. Détection sémantique du contenu sans activation d’un plugin. Activités (telles que l’affichage, la modification et le partage) avec aide sur le classement et la pertinence des résultats de recherche. Les données restent dans les limites de conformitéDétectabilité dans le Windows Store. Activation de l’expérience de marque. Meilleure expérience utilisateur avec les cartes adaptatives
Fonctionnalités de l’expérience développeurConnexion rapide, schéma d’inscription et éléments d’indexKit de ressources Teams pour Visual Studio & VS Code. Chargement de version test pour le développement & test
Fonctionnez également avecIQ de contexte, Viva Topics, Recherche d’entreprise dans M365.com, SharePoint et Bing @ work. Recommandations de contenu dans les applications M365Conversation Teams, Outlook

Existe-t-il des limitations techniques ?

En effet, les 2 options présentent des limitations techniques qui peuvent influer sur votre choix :

ConnecteursPlugins
Limites30 connecteurs maximum dans le locataire.

Volume de données et activité relativement faibles.

Visibilité de l’application pour les utilisateurs.
Maximum d’un million de plugins activés par utilisateur. Les plugins doivent être activés manuellement. Les données peuvent quitter la limite de conformité. Orchestrator ne peut raisonner qu’avec 10 plugins par invite. Les performances dépendent des développeurs & l’hébergement.
Limitations de l’expérience des développeursAucun outil pour Visual Studio & VS Code. Aucun chargement indépendant. Vous devez rester synchronisé avec la liste de contrôle d’accès (ACL) manuellement si vous êtes dans des groupes externes en dehors du groupe Id Entra (Azure AD)Courbe d’apprentissage abrupte.
Plus de temps pour développer.
Vous devez gérer les invites à paramètres multiples.
Plus d’informationsLimites de l’API connecteurs GraphConditions techniques requises pour les plugins d’extension de message

Important : il n’est pour l’instant pas possible d’acheter et de provisionner des licences acheter Copilot for Microsoft 365 sur un tenant créé à partir du Microsoft 365 Developer Program.

Et Copilot Studio dans tout ça ?

Pas de secret, Microsoft Copilot Studio s’appuie déjà sur du connu et reconnu ! 😎🙏

Un grand merci à Elliott Pierret pour cette vidéo très explicative sur comment jouer avec Copilot Studio pour créer son propre Copilot ou enrichir un Copilot existant grâce aux outils suivants :

  • Copilot Builder
  • Plugin Builder
  • Prompt Builder

Conclusion

Quelle que soit votre stratégie Copilot, l’objectif de cette IA générative est avant tout de simplifier la vie à vos utilisateurs. Beaucoup de tâches sans grande valeur ajoutée peuvent et ont également intérêt à être traitées par l’intelligence artificielle.

Je vous invite à regarder cette interview très intéressante de Jean-François Bérenguer faite par Seyfallah Tagrerout sur le potentiel de Copilot et les services IT possibles avec une valeur ajoutée pour les entreprises dans leur transition vers l’IA :

  • Accompagnement au prompt
  • Mise en place du gouvernance de la donnée (protection)
  • Personnalisation de Copilot (Connecteurs, plugins)

Attendez-vous très prochainement à voir plusieurs articles sur des essais pratiques de Copilot 😎

Windows Server 2025 🪟

Depuis seulement quelques jours, La nouvelle release de Windows Server s’appelle maintenant Windows Server 2025 ! Seulement disponible via le programme Windows Server Insider, la version Build v26040 de Windows Server 2025 promet de nouvelles fonctionnalités comme le Hotpatching pour tous ou encore Active Directory et SMB en version Next Gen, et sûrement encore plein d’autres à découvrir.

Cette annonce de Windows Server 2025 a été faite sur le site TechCommunity juste ici.

De précédentes annonces concernant Windows Server avaient été annoncées durant le dernier Ignite juste :

Je ne vais pas rentrer tout de suite dans les détails de Windows Server 2025, que je ne connais pas encore car je ne l’ai pas testé. Mais je trouvais intéressant de partager avec vous une méthode de déploiement facile et rapide du dernier OS de Microsoft sur Azure.

En effet, et comme vous pouvez vous en doutez, ce dernier n’est pas encore directement accessible via le portail Azure lors de la création d’une machine virtuelle.

D’où mon petit exercice très rapide sur le sujet :

Commençons par un bref rappel des prérequis.

Etape 0 – Rappel des prérequis :

Pour réaliser cet exercice sur Windows Server 2025, il vous faudra disposer de :

  • Un tenant Microsoft
  • Une souscription Azure valide

La suite se passera par l’inscription au programme Windows Insider.

Etape I – Programme Windows Insider :

Afin de récupérer l’image de la dernière version disponible de Windows Server 2025, il est donc nécessaire de s’inscrire au programme Windows Insider (de Windows Server).

La documentation officielle de Microsoft l’explique bien et est accessible via ce lien :

Vous pouvez vous inscrire directement Programme Windows Insider via cette page, en utilisant un compte Microsoft Entra ou même un compte personnel Microsoft :

Lisez les informations du programme, puis acceptez ses termes si vous êtes d’accord :

Cliquez-ici pour rejoindre la page dédiée à Windows Server :

Choisissez la version suivante de Windows Server afin de pouvoir l’installer sous Azure :

Sélectionnez la seule langue disponible actuellement, puis cliquez sur Confirmer :

Cliquez-ici pour commencer le téléchargement du fichier au format VHDX :

Attendez quelques minutes la fin du téléchargement sur votre poste :

Une fois téléchargé, le fichier VHDX doit être converti en VHD pour être exploité sous Azure.

Etape II – Préparation du fichier image VHD :

En effet Azure ne support que le format VHD. Nous allons donc devoir effectuer une conversion de format. Cela est possible facilement en PowerShell.

Note : Pour utiliser la commande Convert-VHD, les outils Hyper-V sont nécessaires.

Ouvrez PowerShell, puis lancez la commande suivante pour convertir le fichier téléchargé au format VHDX en fichier au format VHD :

Convert-VHD –Path c:\2025\Windows_InsiderPreview_ServerDatacenter_Azure_Edition_en-us_VHDX_26040.vhdx –DestinationPath c:\2025\Windows_InsiderPreview_ServerDatacenter_Azure_Edition_en-us_VHDX_26040.vhd -VHDType Fixed

Attendez environ 5 minutes que le traitement de conversion se termine :

Une fois le fichier image converti au format VHD, ouvrez le portail Azure, puis recherchez le Service de stockage :

Créez un nouveau compte de stockage Azure en cliquant ici :

Nommez votre compte de stockage, puis lancez la validation Azure :

Une fois la validation Azure réussie, démarrez la création de la ressource :

Environ 1 minute plus tard, cliquez-ici pour vous connecter au nouveau compte de stockage :

Créez un nouveau contenaire blob :

Nommez-le puis lancez sa création :

Dans ce contenaire blob, cliquez sur Téléverser :

Sélectionnez votre fichier VHD, choisissez le format Page Blob, puis cliquez sur Téléverser :

La notification Azure suivante doit apparaitre :

Suivez l’évolution de l’envoi vers Azure en bas à droite de l’écran :

Attendez environ 15 minutes que l’envoi vers Azure se termine :

Une fois l’envoi vers Azure terminé, cliquez sur votre blob pour en copier l’URL :

Votre source est enfin prête. Nous allons maintenant créer une galerie d’images de VM en faisant appel à notre fichier blob.

Etape III – Création de la galerie d’images :

Pour cela, commencez par rechercher le service Azure suivant :

Créez une nouvelle galerie d’images VM en cliquant ici :

Nommez votre galerie d’images VM, puis lancez la validation Azure :

Une fois la validation Azure réussie, cliquez-ici pour démarrer la création de la ressource :

Environ 1 minute plus tard, la galerie d’images VM est créée, puis cliquez ici :

Cliquez-ici pour créer une nouvelle définition d’image VM :

Renseignez tous les champs nécessaires, puis lancez la validation Azure :

Une fois la validation Azure réussie, lancez la création de la ressource :

Environ 2 minutes plus tard, cliquez-ici pour ajouter une nouvelle version :

Cliquez-ici pour ajouter une nouvelle version à votre définition d’images VM :

Renseignez les champs et reprenez pour le disque OS l’URL du blob copiée précédemment :

Lancez la validation Azure :

Une fois la validation Azure réussie, lancez la création de la ressource :

Environ 10 minutes plus tard, cliquez-ici pour retourner sur votre version :

Notre environnement est enfin prêt, nous allons maintenant créer notre première machine virtuelle sous Windows Server 2025.

Etape IV – Création de la machine virtuelle :

Cliquez-ici pour créer une nouvelle machine virtuelle à partir de cette image :

Renseignez tous les champs de base :

Définissez un compte administrateur local, puis cliquez sur Suivant :

Aucune modification n’est à faire sur cet onglet, cliquez sur Suivant :

Retirez l’IP publique de votre VM, puis cliquez sur Suivant :

Retirez l’extinction automatique, puis lancez la validation Azure :

Une fois la validation Azure réussie, cliquez-ici pour lancer la création de la ressource :

Environ 5 minutes plus tard, cliquez-ici pour consulter la machine virtuelle créée :

Dans la foulée, déployez le service Azure Bastion afin de pouvoir ouvrir une connexion RDP :

Attendez 5 minutes la création du service Azure Bastion :

Etape V – Test et connexion :

Une fois le service Azure Bastion déployé, ouvrez une session RDP par ce dernier :

Définissez la politique d’envoi de données à Microsoft :

Depuis Server Manager, vérifiez la bonne version de votre Windows Server :

Depuis Paramètres, vérifiez la bonne version de votre Windows Server :

De retour sur Azure, profitez-en pour installer Windows Admin Center :

Attendez environ 1 minute que l’extension Windows Admin Center soit installée :

Vérifiez sa bonne installation par cet écran :

Ajoutez votre utilisateur Entra ID le rôle RBAC suivant :

Ajoutez une IP publique et une règle entrante NSG pour pouvoir vous connecter à Windows Admin Center depuis le portail Azure :

Ouvrez une connexion à Windows Admin Center :

Vérifiez la bonne disponibilité des informations via Windows Admin Center :

Redémarrez par le portail Azure votre VM si Windows Admin Center reste trop longtemps sur cette page :

Conclusion

Microsoft continue de faire avancer Windows Server dans sa gamme de produit OS, et promet à coup sûr de belles choses à venir 😎. Quand j’aurais pris le temps de faire mes tests dessus🤣, comptez sur moi pour d’autres articles à suivre !

Microsoft 365 Backup

Une des grandes annonces du dernier Ignite portait sur l’introduction d’une solution native de sauvegarde 365, appelée Microsoft 365 Backup. Attendue depuis de nombreuses années et faisant la part belle aux solutions tierces, voyons ce que ce nouveau venu propose puisque la préversion publique est ouverte depuis maintenant une semaine.

Oui, Microsoft 365 Backup est en préversion depuis une semaine et son déploiement se fait progressivement sur l’ensemble des tenants du Cloud Public de Microsoft. Cette approche est d’ailleurs similaire à celle utilisée lors du déploiement de Microsoft 365 Archive, dont je vous invite à lire l’article ici. Aucune date de GA n’a encore été annoncée si ce n’est pour 2024.

Quelles sont les termes et conditions de Microsoft 365 Backup ?

Le lien officiel Microsoft est disponible juste ici. On peut résumer les points suivants :

  • Fonctionnalités en préversion
  • Microsoft 365 Backup permet de sauvegarder des objets des services suivants :
    • des comptes OneDrive
    • des sites SharePoint
    • des boîtes mails Exchange Online
  • Nécessite une souscription Azure
  • Tarif à la consommation (PAYG) actuel de 0,15 $/Go/Mois

Microsoft a déjà à disposition une première FAQ.

Quelles sont les limites de la préversion de Microsoft 365 Backup ?

Le lien officiel Microsoft est disponible juste . On peut résumer les points suivants :

  • Performances potentiellement dégradées
  • Une seule police de sauvegarde par service :
    • OneDrive
    • SharePoint
    • Exchange Online
  • Limitations renforcées pour éviter l’engorgement des ressources Microsoft

Combien coûte Microsoft 365 Backup ?

Une sauvegarde IT est rarement gratuite, elle peut même vite représenter des coûts très importants. Pour Microsoft 365 Backup, le seul prix actuel connu est celui de la préversion, à savoir $0.15/Go de données sauvegardées.

Le volume total de données sauvegardées est la somme des boîtes Outlook protégées, des sites SharePoint protégés et des comptes OneDrive protégés.

Pour vous aider à estimer vos coûts, Microsoft a mis un disposition un Calculateur dédié à Microsoft 365 Backup sous format Excel. Vous pouvez alimenter cette feuille Excel en lisant cette notice et en vous basant sur les usages de votre tenant :

Il est à noter que la volume total dépendra également de la rétention de données anciennes sauvegardées. Autrement dit, une grosse boite mail supprimée continuera d’impacter les sauvegardes et donc les coûts sur plusieurs mois.

Existe-t-il des limitations à la sauvegarde / restauration ?

Actuellement, chacun des 3 services dispose des limites suivantes :

  • SharePoint :
    • Fréquences des sauvegardes (< 14 jours) : toutes les 15 minutes
    • Fréquences des sauvegardes (> 14 jours) : toutes les semaines
    • Durée de rétention : 1 année
    • Tâches de restauration actives (max) : 25
    • Sites en cours de restauration dans le cadre de tâches de restauration actives (max) : 1000
    • Nombre total de sites restaurés (actifs et achevés) aujourd’hui (max) : 10000
  • Exchange :
    • Fréquences des sauvegardes : toutes les 10 minutes
    • Durée de rétention : 1 année
    • Tâches de restauration actives (max) : 25
    • Boîtes aux lettres d’utilisateurs restaurées dans le cadre de tâches de restauration actives (max) : 1000
    • Nombre total de boîtes aux lettres restaurées (actives et terminées) aujourd’hui (max) : 10000
  • OneDrive :
    • Fréquences des sauvegardes (< 14 jours) : toutes les 15 minutes
    • Fréquences des sauvegardes (> 14 jours) : toutes les semaines
    • Durée de rétention : 1 année
    • Tâches de restauration actives (max) : 25
    • Comptes en cours de restauration dans les tâches de restauration actives (max) : 1000
    • Nombre total de comptes restaurés (actifs et terminés) (max) : 10000

Pourrons-nous suivre les coûts de Microsoft 365 Backup ?

Mon hypothèse est que les coûts seront visibles de la même manière que les autres ressources Azure, via le Cost Management :

Comme toujours je vous propose de réaliser un petit exercice sur le sujet :

Commençons par un bref rappel des prérequis.

Etape 0 – Rappel des prérequis :

Pour réaliser cet exercice sur Microsoft 365 Backup, il vous faudra disposer de :

  • Un tenant Microsoft
  • Une souscription Azure valide

Dans mon cas, j’ai utilisé un tenant Microsoft 365 disposant de licences Microsoft 365 E5 issues de la plate-forme CDX. J’y ai ensuite rajouté une souscription Azure MSDN.

Etape I – Préparation de l’environnement Azure :

Avant de pouvoir tester cette fonctionnalité, il est nécessaire de créer un groupe de ressources sur votre souscription Azure pour y stocker les sauvegardes 365.

Une fois la validation Azure réussie, lancez la création, puis attendez environ 1 minute :

Et c’est tout, rien de plus n’est nécessaire du côté d’Azure ! La suite va se passer du côté de Microsoft 365.

Etape II – Activation de la fonction de sauvegarde :

Recherchez la rubrique suivante, puis cliquez dessus :

Commencez par cliquez ici pour configurer Syntex, alias SharePoint Premium :

Sélectionnez la souscription Azure de votre choix :

Reprenez le groupe de ressources Azure créé précédemment, puis choisissez la localisation des sauvegardes :

Cochez la case des conditions d’utilisation et de facturation, puis cliquez sur Sauvegardez :

Attendez environ 1 minute que Microsoft finalise la configuration de votre tenant :

La notification suivante apparaît alors sur ce même onglet :

Cliquez ensuite sur ce lien pour visualiser la liste des services disponibles :

Vérifiez que la fonction de sauvegarde est bien présente, puis cliquez dessus :

Activez la fonction de sauvegarde comme ceci :

Confirmez votre choix après avoir lu au besoin les termes et conditions du service :

La mise en route est maintenant terminée, il ne nous reste plus qu’à configurer les polices de sauvegarde en cliquant ici :

Commençons par le service Exchange.

Etape III – Police de sauvegarde Exchange :

Retrouvez toutes les polices de sauvegarde 365 depuis cette page disponible sur la console d’administration :

Cliquez-ici pour configurer la police de sauvegarde d’Exchange :

Cliquez sur Suivant :

Intégrés les comptes Outlook à protéger, puis cliquez sur Suivant :

Prenez en compte la politique de sauvegarde non modifiable, puis cliquez ici pour créer la police :

Attendez quelques secondes pour finaliser la création de la police :

La police est maintenant créée, attendez quelques minutes la mise en application de celle-ci sur votre tenant :

Quelques minutes plus tard, le statut est passé sur actif, cliquez-ici pour voir les options :

Il est possible de mettre en pause la police, cliquez-ici pour rajouter un compte Exchange :

Constatez le nouveau traitement une fois un autre compte exchange rajouté :

Continuons avec la police de sauvegarde SharePoint.

Etape IV – Police de sauvegarde SharePoint :

Cliquez-ici pour configurer la police de sauvegarde SharePoint :

Cliquez sur Suivant :

Intégrés les sites SharePoint à protéger, puis cliquez sur Suivant :

Prenez en compte la politique de sauvegarde non modifiable, puis cliquez ici pour créer la police :

Attendez quelques secondes pour finaliser la création de la police :

La police est maintenant créée, cliquez-ici pour revenir sur la page précédente :

Attendez quelques minutes la mise en application de celle-ci sur votre tenant :

Terminons par la police de sauvegarde OneDrive.

Etape V – Police de sauvegarde OneDrive :

Cliquez-ici pour configurer la police de sauvegarde OneDrive :

Cliquez sur Suivant :

Intégrés les comptes OneDrive à protéger, puis cliquez sur Suivant :

Prenez en compte la politique de sauvegarde non modifiable, puis cliquez ici pour créer la police :

Attendez quelques secondes pour finaliser la création de la police :

La police est maintenant créée, cliquez-ici pour revenir sur la page précédente :

La police est maintenant créée, attendez quelques minutes la mise en application de celle-ci sur votre tenant :

Commençons les tests de restauration.

Etape VI – Restauration de mails Outlook :

Commençons par supprimer quelques mails depuis Outlook stockés dans la boite de réception :

Supprimez ces mêmes mails Outlook depuis la corbeille :

Supprimez enfin ces mêmes mails Outlook depuis la seconde corbeille :

Attendez au minimum 10 minutes

Retournez sur la page Microsoft 365 Backup du portail d’administration 365, puis cliquez-ici pour entamer la restauration :

Conservez le choix du service à restaurer, puis cliquez sur Suivant :

Choisissez les objets à restaurer parmi la liste disponible, puis cliquez sur Suivant :

Définissez le fuseau horaire et la sauvegarde la plus proche, puis cliquez sur Suivant :

Affinez votre sauvegarde en cliquant ici :

Choisissez un point de restauration antérieur à l’évènement, puis cliquez sur Sauvegarder :

Cliquez sur Suivant :

Choisissez la méthode de restauration, puis cliquez sur Suivant :

Cliquez-ici pour démarrer le travail de restauration :

La tâche de restauration est prise en compte, cliquez-ici pour revenir sur la page précédente :

Il ne reste plus qu’à patienter :

Quelques minutes plus tard, le statut de la restauration a changé :

Le dossier est bien visible côté utilisateur et ce dernier contient bien les mails précédemment supprimés :

Continuons avec la restauration SharePoint.

Etape VII – Restauration de sites SharePoint :

Retournez sur la page Microsoft 365 Backup du portail d’administration 365, puis cliquez-ici pour entamer la restauration :

Conservez le choix du service à restaurer, puis cliquez sur Suivant :

Choisissez les objets à restaurer parmi la liste disponible, puis cliquez sur Suivant :

Définissez le fuseau horaire et la sauvegarde la plus proche, puis cliquez sur Suivant :

Affinez si besoin votre sauvegarde en cliquant ici :

Choisissez la méthode de restauration, puis cliquez sur Suivant :

Cliquez-ici pour démarrer le travail de restauration :

La tâche de restauration est prise en compte, cliquez-ici pour revenir sur la page précédente :

Il ne reste plus qu’à patienter :

Quelques minutes plus tard, le statut de la restauration a changé :

Un tour dans la console d’administration SharePoint nous affiche le nouveau site restauré :

Le site SharePoint est bien accessible depuis son URL en mode lecture seule :

Dans cette méthode, il ne restera qu’aux utilisateurs de récupérer le contenu voulu.

Terminons avec la restauration OneDrive.

Etape VIII – Restauration de comptes OneDrive :

Retournez sur la page Microsoft 365 Backup du portail d’administration 365, puis cliquez-ici pour entamer la restauration :

Conservez le choix du service à restaurer, puis cliquez sur Suivant :

Choisissez les objets à restaurer parmi la liste disponible, puis cliquez sur Suivant :

Définissez le fuseau horaire et la sauvegarde la plus proche, puis cliquez sur Suivant :

Affinez si besoin votre sauvegarde en cliquant ici :

Choisissez la méthode de restauration, puis cliquez sur Suivant :

Cliquez-ici pour démarrer le travail de restauration :

La tâche de restauration est prise en compte, cliquez-ici pour revenir sur la page précédente :

Il ne reste plus qu’à patienter :

Quelques minutes plus tard, le statut de la restauration a changé :

Un clic sur cette ligne ne semble pas encore afficher l’URL du site OneDrive recréé :

Je suis passé par le script PowerShell suivant pour obtenir l’URL du site restauré :

$TenantUrl = Read-Host "Enter the SharePoint admin center URL"
$LogFile = [Environment]::GetFolderPath("Desktop") + "\OneDriveSites.log"
Connect-SPOService -Url $TenantUrl
Get-SPOSite -IncludePersonalSite $true -Limit all -Filter "Url -like '-my.sharepoint.com/personal/'" | Select -ExpandProperty Url | Out-File $LogFile -Force
Write-Host "Done! File saved as $($LogFile)."

L’URL du nouveau site était donc écrite comme ceci :

https://XXXX.sharepoint.com/personal/YYYYYYYR0

Le nouveau site OneDrive était bien accessible et présentant le même contenu :

Cette seconde commande PowerShell permet de supprimer le site restauré :

Remove-SPOSite -Identity "https://XXXXX-my.sharepoint.com/personal/YYYYYYYR0" -NoWait

Conclusion

Cette nouvelle approche simplifiée de la sauvegarde de données 365 devraient faciliter la vie à pas mal de monde, que ce soient les utilisateurs ou les équipes IT. Même si les options sont encore assez limitées dans cette préversion, nul doute que d’autres vont être proposées afin d’être aussi compétitif que les leaders du marché 😎

Démarrez Copilot pour Microsoft 365 sur votre tenant

Microsoft vient de faire une grande annonce il y a seulement quelques heures : Copilot pour Microsoft 365 est maintenant accessible au grand public et à toutes les organisations. Quelles sont les contraintes ? Comment cela se passe au niveau du tenant ? Nous essaierons de répondre à plusieurs questions et testerons la mise en place d’une licence Copilot pour Microsoft 365.

Copilot pour Microsoft 365 n’est-il pas déjà accessible depuis le dernier Ignite en 2023 ?

C’est en partie vrai. L’une des grandes annonces du dernier Ignite portait sur la GA de Copilot pour Microsoft 365, uniquement pour les grandes entreprises. La commande minimale de Copilot pour Microsoft 365 était alors 300 sièges et nécessitait également des licences 365 Enterprise E3 ou E5.

A 30$ par utilisateur, la facture de Copilot pour Microsoft 365 pouvait paraitre assez salée.

Annoncé mi-décembre pour début janvier, Copilot pour Microsoft 365 était alors aussi accessible aux écoles disposants de licences Microsoft 365 A3 ou A5. Avec toujours la même règle : 30 dollars par utilisateur et par mois, et avec un minimum de 300 places par tenant.

Qu’est-ce que Microsoft a changé sur le modèle de licence ces dernières heures ?

Comme indiqué en début d’article, Copilot pour Microsoft 365 est maintenant accessible au grand public et à toutes les organisations.

Autrement dit, il est possible de :

  • N’acheter qu’une seule licence Copilot pour Microsoft 365 et non plus 300
  • Ne pas disposer obligatoirement de licences Microsoft 365 E3 ou E5
  • D’acheter des licences Copilot pour Microsoft 365 via le CSP

Mais il reste encore quelques exigences pour que les utilisateurs puissent profiter de Copilot pour Microsoft 365 :

  • Si < 299 utilisateurs (Business) : Disposer de licences Microsoft 365 Business Standard ou Premium pour les utilisateurs ayant Copilot pour Microsoft 365
  • Si >= 300 utilisateurs (Enterprise) : Disposer de licences Microsoft 365 Enterprise E3 ou E5 pour les utilisateurs ayant Copilot pour Microsoft 365
  • Le prix reste de 30$ par utilisateur et par mois
  • L’engagement minimum est d’une année pour les licences Copilot pour Microsoft 365

Qu’est-ce que Copilot pour Microsoft 365 ?

Afin de vous faire une meilleure idée, voici une très courte vidéo expliquant l’audacieux mélange entre une IA, les données provenant de 365 (ou d’ailleurs) et les outils que composent la suite 365 :

Un article parlant des multiples Copilots a d’ailleurs écrit sur ce blog juste ici. Enfin voici quelques liens utiles à propos de Microsoft Copilot for Microsoft 365 :

Comment démarre-t-on Copilot pour Microsoft 365 ?

La mise en place de Copilot pour Microsoft 365 est assez facile, mais la préparation demande un peu plus de temps. En effet, Copilot pour Microsoft 365 est mesure de « piocher » dans les données de votre entreprise. Ces dernières doivent donc être accessibles, protégées et structurées.

La préparation du tenant va donc principalement porter sur les points suivants :

Préparez vos données et vérifiez que tous les contrôles de sécurité, de confidentialité et de conformité sont en place. Copilot hérite de vos autorisations et de vos politiques existantes, et le fait de s’assurer que celles-ci sont en place contribue à un déploiement transparent. Effectuez des vérifications d’accès … utilisez des étiquettes de sensibilité pour protéger les données importantes et validez les politiques de prévention des pertes de données, de conservation et de conformité.

Examinez les conditions préalables pour Copilot en examinant la vue d’ensemble et les exigences pour Microsoft 365 Copilot afin de positionner votre tenant pour déployer Copilot de manière transparente. (Guide de configuration)

Familiarisez-vous avec les contrôles administratifs disponibles pour gérer Copilot dans la page Copilot du centre d’administration Microsoft 365.

Développez votre stratégie d’adoption en exploitant les ressources disponibles sur notre site d’adoption, y compris ce kit d’adoption et ce kit d’outils d’accueil des utilisateurs.

Vérifiez l’état de préparation, mesurez l’adoption et l’impact grâce au tableau de bord Microsoft Copilot (préversion) dans Viva Insights ou PowerBi qui aide les organisations à maximiser la valeur de Copilot pour Microsoft 365.

Microsoft Tech Community

Afin d’aller plus loin dans la démonstration, j’ai la possibilité d’acheter une licence Copilot pour Microsoft 365 sur un tenant de test afin de visualiser sa mise en place.

J’ai souhaité uniquement suivre les conditions requises dictées par Microsoft, accessibles depuis cette page.

Les tâches que nous allons réaliser seront donc les suivantes :

Etape 0 – Rappel des prérequis :

Pour réaliser cet exercice sur Copilot pour Microsoft 365, il vous faudra disposer des éléments suivants :

  • Un tenant Microsoft
  • Une des licences suivantes :
    • Microsoft 365 E5
    • Microsoft 365 E3
    • Office 365 E3
    • Office 365 E5
    • Microsoft 365 A5
    • Microsoft 365 A3
    • Office 365 A5
    • Office 365 A3
    • Microsoft 365 Business Standard
    • Microsoft 365 Business Premium

Dans mon environnement, je disposerai des licences suivantes sur mon utilisateur de test :

  • 1x Microsoft 365 E5
  • 1x Windows 365 Enterprise
  • 1x Copilot pour Microsoft 365

J’ai donc choisi de tester Copilot pour Microsoft 365 sur un poste Windows 365 afin de disposer d’un poste de test entièrement consacré à ce dernier.

Etape I – Gestion des licences :

L’étape d’achat de Copilot n’est décrite ici. J’ai acheté une licence Copilot pour Microsoft 365 via le distributeur CSP TD SYNNEX. Pour rappel, cette licence est disponible en NCE et existe seulement en engagement annuel.

Quelques minutes après l’achat, la licence Copilot pour Microsoft 365 est bien visible sur mon tenant depuis cette page :

Avant d’assigner la licence Copilot pour Microsoft 365 à mon utilisateur de test, voici les licences déjà en place sur son compte 365 :

Continuons avec la mise en place du poste utilisateur de test via Windows 365.

Etape II – Machine de test Windows 365 :

Afin de créer un environnement dédié à Copilot pour Microsoft 365, j’ai provisionné un poste via Windows 365. Le provisionnement se fait via cette page de la console Intune.

Plusieurs articles ont déjà été écrits sur Windows 365 :

Une fois le provisionnement du poste Windows 365 terminé, son accès est alors possible via :

L’environnement de l’utilisateur est maintenant opérationnel, il ne nous reste plus qu’à suivre la documentation Microsoft détaillant les conditions requises Copilot pour Microsoft 365.

Points importants :

  • Microsoft propose de satisfaire ces exigences via l’utilisation de guides disponibles sur le portail d’administration de 365.
  • Ce n’est pas une obligation de les utiliser pour parvenir à la mise en place de Copilot pour Microsoft 365.
  • Les étapes concernant les exigences suivantes sont présentées à titre informatif.

Etape III – Exigence Microsoft 365 Apps :

Microsoft 365 Apps doivent être déployés. Utilisez le guide de configuration Microsoft 365 Apps dans le Centre d’administration Microsoft 365 pour effectuer un déploiement sur vos utilisateurs.

Microsoft Learn

Ce guide est accessible via ce lien direct ou via le menu suivant du portail d’administration 365 :

Recherchez le guide concerné via la barre de recherche, puis cliquez dessus pour le démarrer :

Choisissez la version des applications 365 et la méthode sécuritaire prévues, puis cliquez sur Suivant :

Lisez si besoin les documentations disponibles, puis cliquez sur Suivant :

Parcourez les différentes méthodes possibles de déploiement, puis cliquez sur Suivant :

Validez ou non le besoin d’activer Microsoft 365, puis cliquez sur Suivant :

Préparez la communication à vos utilisateurs, puis cliquer sur Suivant :

Finalisez le guide concerné en cliquant ici :

Constatez le changement de statut du guide précédemment validé :

Etape IV – Exigence de version et canal de mise à jour :

À partir de décembre 2023, les utilisateurs doivent utiliser le canal actuel (Current) ou le canal Entreprise mensuel. Pour en savoir plus, voir Vue d’ensemble des canaux de mise à jour pour les applications Microsoft 365.

Pour cela, définissez la méthode de mise à jour appropriée :

Dans mon cas, j’ai choisi la Mise à jour cloud. Connectez-vous à la console Microsoft 365 Apps admin center via cette page, puis activez la fonction Cloud comme ceci :

Attendez quelques minutes afin de voir apparaitre les menus suivants :

Accédez à la page d’inventaire, puis cliquez-ici :

Sélectionnez les appareils à déplacer et le canal de mise à jour ciblé :

Rappel Microsoft : Jusqu’à 24 heures peuvent être nécessaires pour que le changement de canal soit effectué par l’appareil, en supposant que les appareils sont en ligne et peuvent se connecter au service.

Nous retournerons sur cette page dans 24 heures pour y constater d’éventuels changements.

Avant :

Après :

Etape V – Exigence d’identifiant Microsoft Entra :

Les utilisateurs doivent avoir des comptes d’ID Microsoft Entra (anciennement Azure Active Directory). Vous pouvez ajouter ou synchroniser des utilisateurs à l’aide de l’Assistant Intégration dans le Centre d’administration Microsoft 365.

Microsoft Learn

Dans mon cas, mon utilisateur est déjà un utilisateur Cloud, et non synchronisé via Entra ID Connect :

Etape VI – Exigence Microsoft OneDrive :

Certaines fonctionnalités de Microsoft Copilot pour Microsoft 365, telles que la restauration de fichiers et la gestion OneDrive, nécessitent que les utilisateurs disposent d’un compte OneDrive. Vous pouvez utiliser le guide de configuration de OneDrive dans la Centre d’administration Microsoft 365 pour activer OneDrive pour vos utilisateurs.

Microsoft Learn

Ce guide est accessible via ce lien direct ou via le menu suivant du portail d’administration 365 :

Recherchez le guide concerné via la barre de recherche, puis cliquez dessus pour le démarrer :

Lisez les informations disponibles sur la protection OneDrive, puis cliquez sur Suivant :

Définissez la politique de partage externe à l’entreprise, puis cliquez sur Suivant :

Définissez l’OS cible, puis cliquez sur Suivant :

Choisissez si besoin une méthode de transfert des données, puis cliquez sur Suivant :

Modifiez si besoin les paramètres avancés, puis cliquez sur Suivant :

Préparez la communication à vos utilisateurs, puis cliquer sur Suivant :

Finalisez le guide concerné en cliquant ici :

Constatez le changement de statut du guide précédemment validé :

Par la suite, il sera important que le compte OneDrive des utilisateurs de Copilot pour Microsoft 365 soit déployé. Pour cela, aucune autre solution que de leur laisser ouvrir une première fois leur compte OneDrive :

Etape VII – Exigence Microsoft Outlook :

Microsoft Copilot pour Microsoft 365 fonctionne avec le nouvel Outlook (pour Windows et Mac), actuellement en préversion. Les utilisateurs peuvent basculer vers le nouvel Outlook en sélectionnant Essayer le nouvel Outlook dans leur client Outlook existant.

Microsoft Learn

Etape VIII – Exigence Microsoft Teams :

Vous pouvez utiliser le guide d’installation de Microsoft Teams dans le Centre d’administration Microsoft 365 pour configurer les paramètres populaires de Teams, notamment l’accès externe, l’accès invité, les autorisations de création d’équipe, etc. Copilot dans Teams est disponible sur Windows, Mac, web, Android et iOS.

Microsoft Learn

Ce guide est accessible via ce lien direct ou via le menu suivant du portail d’administration 365 :

Recherchez le guide concerné via la barre de recherche, puis cliquez dessus pour le démarrer :

Lisez les informations disponibles sur la configuration Teams, puis cliquez sur Suivant :

Lisez les informations disponibles sur la préparation de Teams, puis cliquez sur Suivant :

Modifiez si besoin la gouvernance et les polices Teams puis cliquez sur Suivant :

Ne pas oubliez d’activer la transcription Teams via cette page afin que Copilot puisse fonctionner en réunion :

Définissez les options Teams, comme par exemple l’accès invité, puis cliquez sur Suivant :

Personnalisez les créations d’équipes Teams, puis cliquez sur Suivant :

Créez si besoin des équipes Teams, puis cliquez sur Suivant :

Définissez les méthodes d’installation des clients Teams, puis cliquez sur Suivant :

Ajoutez si besoin des polices de protection d’application gérées sous Intune, puis cliquez sur Suivant :

Parcourez si besoin les méthodes de résolution de problèmes, puis cliquez sur Suivant :

Préparez la communication à vos utilisateurs, puis cliquer sur Suivant :

Lisez les documentations sur les fonctions annexes de Teams, puis cliquez sur Suivant :

Finalisez le guide concerné en cliquant ici :

Constatez le changement de statut du guide précédemment validé :

Note : Un test dans Teams nous montrera l’activation possible de Copilot via l’exploitation de la Transcription :

Etape IX – Exigence Microsoft Loop :

Pour utiliser Microsoft Copilot pour Microsoft 365 avec Microsoft Loop, la boucle doit être activée sur votre tenant. Microsoft détaille la procédure dans cet article.

Rendez-vous sur Microsoft 365 Apps admin center via la page suivante, puis cliquez sur Créer :

Définissez un nom à votre nouvelle police de configuration, puis cliquez sur Suivant :

Appliquez cette police à tous les utilisateurs du tenant, puis cliquez sur Suivant :

Configurez les 3 polices Loop suivantes, puis cliquez sur Suivant :

Vérifiez la configuration, puis cliquez sur Créer :

Attendez la fin de la création de la police de configuration :

Note : Un test dans Loop nous montrera la bonne activation du service pour notre utilisateur de test :

Etape X – Exigence Microsoft Whiteboard :

Pour utiliser Microsoft Copilot pour Microsoft 365 avec Microsoft Whiteboard, vous devez activer le tableau blanc pour votre tenant. Pour en savoir plus sur le Tableau blanc Microsoft, consultez Gérer l’accès à Microsoft Whiteboard pour votre organization.

Microsoft Learn

Utilisez la barre de recherche de la page d’accueil du centre d’administration 365 :

Activez Whiteboard pour l’ensemble de votre organization, puis Sauvegardez :

Connectez-vous à SharePoint Online PowerShell :

Connect-SPOService -Url https://contoso-admin.sharepoint.com

Utilisez un compte administrateur SharePoint :

Activez Fluid à l’aide de l’applet de commande suivante Set-SPOTenant :

Set-SPOTenant -IsWBFluidEnabled $true

Etape XI – Configuration Copilot pour Microsoft 365 :

Un guide spécial est accessible via ce lien direct ou via le menu suivant du portail d’administration 365 :

Recherchez le guide concerné via la barre de recherche, puis cliquez dessus pour le démarrer :

Cliquez ici pour le démarrer le guide Copilot pour Microsoft 365 :

Cliquez sur Suivant :

Vérifiez que les exigences précédemment abordées soient appliquées, puis cliquez sur Suivant :

Assignez la licence Copilot pour Microsoft 365 à votre utilisateur de test, puis cliquez sur Suivant :

Préparez la communication à vos utilisateurs, puis cliquer sur Suivant :

Finalisez le guide concerné en cliquant ici :

Constatez le changement de statut du guide précédemment validé :

Parcourez si besoin les options possibles de Copilot via cette page :

Consultez les rapports de préparation et d’usage de Copilot via cette page :

Etape XII – Test de recherche d’un document 365 :

Téléversez un document Word local vers le compte OneDrive de votre utilisateur de test :

Copiez ce fichier depuis la zone tampon vers OneDrive, puis attendez que ce dernier soit synchronisé sur le Cloud :

Attendez quelques minutes, puis depuis le client Teams, effectuez une recherche via Copilot afin de retrouver le document :

Etape XIII – Test de rédaction d’un mail sur Outlook :

Ouvrez le client Outlook, puis activez la nouvelle version d’Outlook comme Microsoft le demande pour Copilot :

Attendez que la nouvelle version soit entièrement téléchargée :

Confirmez la bascule en cliquant ici :

Cliquez sur Continuer :

Cliquez sur Passer :

Utilisez la fonction Copilot pour lui demander de générer un mail :

Observez le résultat, puis cliquez-ici pour l’affiner davantage :

Choisissez le ton et la longueur du mail que vous attendez de la part de Copilot, puis recliquez sur Générer :

Constatez les changements par rapport à la version précédente, puis cliquez sur Conserver :

Après une déconnexion reconnexion de l’utilisateur sur une application Microsoft 365 et un redémarrage de session Windows, le bouton Copilot a fait son apparition dans les différentes applications :

La génération de contenus via Copilot peut alors commencer :

Conclusion

La mise en place du service de Copilot pour Microsoft 365 est assez rapide en soit. Mais une grande importante doit être accordée à deux grands sujets :

J’essaierai de vous faire assez rapidement un second article sur la sécurité des données avec Copilot pour Microsoft 365.

Enfin, nul doute que l’arrivée de Copilot pour Microsoft 365 pour toutes les entreprises, petites ou grandes, va bouleverser le marché 😎

Connectez votre réseau local à Global Secure Access

Restons encore un peu dans la lignée des articles dédiés au Global Secure Access de Microsoft. Abordons cette fois-ci une fonction appelée Remote Network : la connexion d’un réseau local (distant) tout entier à un point Edge du réseau Microsoft. Cette approche est complémentaire aux Clients Global Secure Access installés sur les postes en situation de mobilité.

Si le sujet Global Secure Access vous passionne tout comme moi, je vous invite à lire mes précédents articles sur le sujet :

J’y détaille l’intérêt du service Global Secure Access et la démarche sécuritaire mise en avant par Microsoft.

Qu’est-ce qu’un réseau distant ?

A l’inverse de postes en mobilité, il faut voir ces réseaux comme des réseaux fixes d’une entreprise dont le nombre et la répartition est possiblement mondiale :

Les réseaux distants sont des emplacements distants 🤣 ou des réseaux qui nécessitent une connectivité Internet. Par exemple, de nombreuses organisations ont un siège social central et des filiales dans différentes zones géographiques. Ces filiales ont besoin d’accéder aux données et services d’entreprise. Elles ont besoin d’un moyen sécurisé de communiquer avec le centre de données, le siège social et les travailleurs à distance. La sécurité des réseaux distants est cruciale pour de nombreux types d’organisations.

Les réseaux distants, tels qu’un emplacement de branche, sont généralement connectés au réseau d’entreprise via un réseau étendu dédié (WAN) ou une connexion de réseau privé virtuel (VPN). Les employés de l’emplacement de branche se connectent au réseau à l’aide de l’équipement local du client (CPE).

Microsoft Learn

Comment fonctionne la connectivité réseau à distance Global Secure Access ?

Comme pour une connexion VPN classique, une connexion sécurisée via le service Global Secure Access s’appuie sur un tunnel IP Sec :

Pour connecter un réseau distant à Global Secure Access, configurez un tunnel IPSec (Internet Protocol Security) entre votre équipement local et le point de terminaison Global Secure Access. Le trafic que vous spécifiez est acheminé via le tunnel IPSec vers le point de terminaison Global Secure Access le plus proche. 

Microsoft Learn

Pourquoi utiliser Global Secure Access pour nos réseaux ?

Global Secure Access propose une approche plus adaptée que les méthodes traditionnelle (WAN / MPLS) en faisant transiter la donnée via le backbone de Microsoft avec une tarification bien plus abordable que ces concurrents :

Il est de plus en plus difficile de maintenir la sécurité d’un réseau d’entreprise dans un monde de travail à distance et d’équipes distribuées. Security Service Edge (SSE) promet un monde de sécurité où les clients peuvent accéder à leurs ressources d’entreprise n’importe où dans le monde sans avoir à renvoyer leur trafic au siège social.

Microsoft Learn

Qu’est-ce que le Zéro Trust Network Access (ZTNA) ?

L’accès au réseau sans confiance (ZTNA), également connu sous le nom de périmètre défini par logiciel (SDP), est un ensemble de technologies et de fonctionnalités qui permettent un accès sécurisé aux applications internes pour les utilisateurs distants. Il fonctionne sur la base d’un modèle de confiance adaptatif, où la confiance n’est jamais implicite et où l’accès est accordé en fonction du besoin de savoir, sur la base du moindre privilège défini.

Zscaler

De manière plus simple, ZTNA reprend l’approche de ZT en y intégrant en tant que signal d’entrée la couche réseau, afin de rendre les décisions d’accès ou d’interdiction encore plus précises et donc plus sécurisantes :

Afin de se faire une meilleure idée sur le Global Secure Access encore en préversion, je vous propose de réaliser un nouvel exercice. Voici quelques liens vers la documentation Microsoft :

J’ai été assez surpris de voir que Microsoft a même écrit un mode opératoire en simulant comme moi le réseau distant sous Azure 😎

Comme Microsoft, mon but est donc de mesurer l’impact dans l’accès aux services 365 en simulant un réseau distant sous Azure et directement connecté Global Secure Access. Les tâches que nous allons réaliser seront donc les suivantes :

Etape 0 – Rappel des prérequis :

Pour réaliser cet exercice, il vous faudra disposer des éléments suivants :

  • Un tenant Microsoft
  • Une souscription Azure valide

Afin de pouvoir tester cette fonctionnalité toujours en préversion, il est nécessaire de créer une machine virtuelle pour simuler un accès aux services 365 depuis notre réseau distant.

Etape I – Préparation de la VM de test :

Pour cela, rechercher le service Machines virtuelles sur le portail Azure :

Cliquez-ici pour commencer la création de la première machine virtuelle :

Renseignez les informations de base relatives à votre VM en choisissant une image sous Windows Server 2022 :

Choisissez la taille de votre VM, puis définissez un compte administrateur local :

Bloquez les ports entrants, puis cliquez sur Suivant :

Aucune modification n’est à faire sur cet onglet, cliquez sur Suivant :

Retirez l’IP publique, puis cliquez sur Suivant :

Décochez l’extinction automatique de la machine virtuelle, puis lancez la validation Azure :

Une fois la validation Azure réussie, lancez la création de la première VM, puis attendez environ 2 minutes :

Une fois le déploiement terminé, cliquez-ici pour consulter votre première machine virtuelle :

Cliquez-ici pour déclencher le déploiement du service Azure Bastion :

Attendez environ 3 minutes que la notification Azure suivante apparaisse :

Notre machine virtuelle est maintenant opérationnelle. La prochaine étape consiste à préparer la connexion VPN côté Azure.

Etape II – Création de la passerelle VPN Azure :

Pour cela, nous allons avoir besoin d’une passerelle VPN Azure. Un ancien article parlait déjà de ce service Azure juste ici.

Recherchez le réseau virtuel créé avec la VM, puis notez sa plage d’adresses réseaux pour la suite :

Profitez-en pour lui ajouter un sous-réseau dédié à la future passerelle VPN :

Cliquez sur Sauvegarder :

Attendez environ 15 secondes que la notification suivante apparaisse :

Recherchez dans le menu Azure le service suivant pour créer la passerelle VPN :

Cliquez-ici pour créer votre passerelle VPN Azure :

Renseignez les informations de base, choisissez le SPU VpnGw1, puis le même réseau virtuel que précédemment :

Désactivez mode actif-actif, activez la fonction BGP, renseignez un numéro ASN valide, puis lancez la validation Azure :

Une fois la validation Azure réussie, lancez la création de la passerelle VPN, puis attendez environ 30 minutes :

Une fois le déploiement terminé, cliquez-ici afin de récupérer quelques informations sur la passerelle VPN :

Allez dans l’onglet Configuration afin de copier ces informations :

Notre passerelle VPN côté Azure est maintenant en place. Nous devons maintenant configurer Global Secure Access d’Entra ID pour reconnaître les demandes de connexion depuis cette passerelle VPN.

Etape III – Configuration du réseau distant sur GSA :

Rendez-vous sur la page suivante du portail Entra, puis cliquez-ici pour mettre en place la connexion réseau côté Microsoft Entra :

Nommez votre connexion, choisissez la région Azure la plus proche de votre réseau distant, puis cliquez sur Suivant :

Ajoutez un lien réseau à votre connexion :

Renseignez les informations de base en reprenant les informations récupérées de la passerelle VPN, puis cliquez sur Suivant :

Conservez les options suivantes, puis cliquez sur Suivant :

Définissez une clef PSK et conservez-là, puis cliquez sur Suivant :

Cliquez sur suivant :

Cochez la seule case possible à ce jour : seul le traffic vers les services Microsoft 365 sera actuellement routé via cette connexion, puis lancez la validation Entra ID :

Une fois la validation Entra ID réussie, lancez la connexion réseau, puis attendez environ 1 minute :

Une notification Entra ID apparaît alors :

Consultez le menu suivant afin de constater la présence d’un réseau distant uniquement sur le profil Microsoft 365 :

Retournez sur le menu des connexions réseaux afin de récupérer des informations :

Récupérez les 3 informations suivantes pour continuer la configuration de la connexion à la passerelle VPN côté Azure :

La configuration réseau côté Global Secure Access est maintenant terminée. Avançons maintenant côté Azure afin que ce dernier reconnaisse également le réseau GSA.

Etape IV – Configuration du réseau GSA sur Azure :

Retournez sur le portail Azure afin de créer passerelle de réseau local correspondant à la connexion configurée sur Global Secure Access.

Pour cela, recherchez le service suivant sur le portail Azure :

Cliquez-ici pour commencer la création :

Renseignez les informations de base, reprenez l’IP publique récupérée sur Global Secure Access, puis cliquez sur Suivant :

Renseignez les autres informations suivantes provenant de Global Secure Access, puis lancez la validation Azure :

Une fois la validation Azure réussie, lancez la création de la passerelle de réseau local, puis attendez environ 2 minutes :

Attendez que le déploiement de la passerelle de réseau local soit terminé :

Avant de finaliser la configuration VPN, il serait intéressant de tester une connexion vers les services 365 en y incluant une police d’accès conditionnel potentiellement bloquante.

Etape V – Global Secure Access + Accès Conditionnel :

La signalisation de Global Secure Access fournit des informations sur l’emplacement du réseau à l’accès conditionnel, ce qui permet aux administrateurs de créer des politiques qui limitent l’accès des utilisateurs à des applications spécifiques en fonction de leur utilisation du client Global Secure Access ou d’un réseau distant.

Microsoft Entra

La combinaison de Global Secure Access et de l’Accès Conditionnel va donc permettre de restreindre l’accès à certains services si la connexion via Global Secure Access n’est pas établie.

Pour cela, créez une nouvelle police d’accès conditionnel par le menu suivant :

Spécifiez le groupe d’utilisateurs de test concerné :

Définissez la ou les applications à protéger :

Excluez de cette police les connexions faites via Global Secure Access :

Bloquez l’accès pour toutes les autres tentatives de connexion, activez la police puis sauvegardez-là :

Attendez quelques minutes, puis retournez sur votre VM de test via une session Azure Bastion :

Lancez un ping sur le site outlook.office.com afin de constater l’IP actuelle du service de messagerie de Microsoft :

Ouvrez Edge sur la page office.com afin de vous authentifiez avec un compte 365 de test :

Connectez-vous-y en utilisant l’identité Entra ID de votre compte de test :

Constatez le blocage de l’accès conditionnel mis en place précédemment :

Ce test nous confirme que la connexion GSA via un réseau distant ou le client est maintenant obligatoire pour accéder aux services 365.

Finalisons maintenant la connexion entre notre environnement Azure de test et GSA.

Etape VI – Connexion entre le réseau distant et GSA :

De retour sur le portail Azure, cliquez-ici pour mettre en place la connexion entre la passerelle VPN et Global Secure Access :

Définissez la connexion en IP Sec, puis cliquez sur Suivant :

Renseignez les informations de base dont la clef PSK, cochez la case BGP, puis lancez la validation Azure :

Une fois la validation Azure réussie, lancez la création de la connexion, puis attendez environ 1 minute :

Attendez que le déploiement de la connexion soit terminé, puis cliquez-ici :

Constatez le statut inconnu de celle-ci :

Retournez sur la page suivante de la passerelle VPN, puis rafraichissez périodiquement afin de constater une changement de status de la connexion :

Le statut devrait changer sous environ 3 minutes :

Consultez la page suivante pour voir les impacts de routage via les communications BGP :

L’environnement est maintenant opérationnel. Il ne reste plus qu’à refaire des tests sur notre machine virtuelle.

Etape VII – Global Secure Access + Accès Conditionnel v2 :

Lancez un ping sur le site outlook.office.com afin de constater la nouvelle IP du service de messagerie Microsoft :

Ouvrez Edge en navigation privée sur la page office.com afin de vous authentifiez avec un compte 365 de test :

Connectez-vous-y en utilisant l’identité Entra ID de votre compte de test :

Cliquez sur Non :

Constatez la bonne connexion au service de Microsoft 365 :

Afin de confirmer nos tests, retirez la connexion entre Azure et GSA pour retrouver le blocage initialement constaté à cause de la police d’accès conditionnelle.

Etape VIII – Retrait de la connexion VPN :

De retour sur le portail Azure, supprimez la connexion VPN Azure précédemment établie :

Confirmez votre choix en cliquant sur Oui :

Attendez que la notification Azure suivante apparaisse :

Lancez un ping sur le site outlook.office.com afin de constater la nouvelle IP du service de messagerie de Microsoft :

Constatez le retour du blocage de l’accès conditionnel mis en place précédemment :

Consultez l’évolution du status de la connexion Global Secure Access via le menu suivant :

Constatez le log de connexion vers les services Microsoft 365 ayant transité par le Global Secure Access via le menu suivant :

Conclusion

Ce nouveau test montre encore une fois la grande simplicité de la connexion entre l’on-premise et les services 365 de Microsoft. Aucun doute que ce service devrait connaître un grand succès une fois sorti de sa préversion et quand sa grille tarifaire sera dévoilée 🤣🙏

Le prochain article devrait parler de l’Accès Privé de Global Secure Access. John a déjà pris de l’avance sur moi 🤣

Global Secure Access = Internet🔐

Le Global Secure Access continue de nous livrer tous ses secrets en ce début d’année 2024. Après la découverte de la sécurisation des accès aux services 365 déjà décrite dans cet article, je propose maintenant de nous intéresser à la sécurisation de l’accès internet.

Voici un petit rappel de quelques points intéressant sur le sujet :

Qu’est-ce que le Zéro Trust Network Access (ZTNA) ?

L’accès au réseau sans confiance (ZTNA), également connu sous le nom de périmètre défini par logiciel (SDP), est un ensemble de technologies et de fonctionnalités qui permettent un accès sécurisé aux applications internes pour les utilisateurs distants. Il fonctionne sur la base d’un modèle de confiance adaptatif, où la confiance n’est jamais implicite et où l’accès est accordé en fonction du besoin de savoir, sur la base du moindre privilège défini.

Zscaler

De manière plus simple, ZTNA reprend l’approche de ZT en y intégrant en tant que signal d’entrée la couche réseau, afin de rendre les décisions d’accès ou d’interdiction encore plus précises et donc plus sécurisantes :

Qu’est-ce que le Global Secure Access proposé par Microsoft ?

Voyant l’évolution des besoins de sécurité réseaux et la demande grandissante du Cloud, Microsoft a souhaité apporter sa propre solution SSE basée sur ZTNA :

Global Secure Access est l’emplacement unifié du centre d’administration Microsoft Entra et repose sur les principes fondamentaux de confiance zéro, d’utiliser le moindre privilège, de vérifier explicitement et de supposer une violation.

Microsoft Learn

Comme le montre le schéma ci-dessous, Global Secure Access regroupe 2 principaux services :

Pourquoi utiliser Global Secure Access pour le trafic Internet ?

Comme Global Secure Access est capable de sécuriser les accès Internet d’un poste sur un réseau d’entreprise ou en mobilité, le filtrage web devient une tâche plus facile de par son approche hybride :

La fonctionnalité d’introduction clé pour Microsoft Entra Internet Access pour toutes les applications est le filtrage de contenu web.

Cette fonctionnalité fournit un contrôle d’accès granulaire pour les catégories web et les noms de domaine complets. En bloquant explicitement les sites inappropriés, malveillants ou dangereux connus, vous protégez vos utilisateurs et leurs appareils contre toute connexion Internet, qu’ils se connectent à distance ou au sein du réseau d’entreprise.

Microsoft Learn

Qu’est-ce qu’un Profil de sécurité sur Global Secure Access ?

Quelques éléments sur le profil de sécurité de Global Secure Access :

  • Dispose d’une priorité (ordonnancement) entre profils de sécurité
  • Agit comme un conteneur de stratégies de filtrage web avec priorité (ordonnancement)
  • Et associé à une ou plusieurs polices d’accès conditionnel Entra ID

Autrement dit, les profils de sécurité vont vous aider à organiser le filtrage au sein de votre entreprise et seront facilement adaptables selon les utilisateurs du tenant.

Qu’est-ce qu’une stratégie de filtrage de contenu web sur Global Secure Access ?

Le filtrage de contenu web vous permet d’implémenter des contrôles d’accès Internet granulaires pour votre organisation en fonction de la catégorisation du site web.

La fonctionnalité de filtrage web est actuellement limitée au filtrage de catégorie web basé sur le nom de domaine complet (FQDN) et au filtrage de noms de domaine complets qui prennent en compte les utilisateurs et le contexte.

Microsoft Learn

Autrement dit, une stratégie de filtrage autorise ou interdit un trafic vers une ou plusieurs cibles web :

  • Nom de domaine complet (FQDN)
  • Catégories web

Pourquoi associer Global Secure Access à l’Accès Conditionnel d’Entra ID ?

L’intégration du filtrage Internet à l’accès conditionnel d’Entra ID va permettre de gérer différentes configurations selon les utilisateurs. Cette approche est souvent déjà utilisée pour gérer les accès aux applications 365.

Voici d’ailleurs un schéma créé par John Savill expliquant (à droite) la jonction de :

  • 2 x Police d’accès conditionnel
  • 3 x Profils de sécurités
  • X x Stratégies de filtrage de contenu

Enfin prenez le temps de parcourir les limitations connues actuellement sur le service.

Voici d’ailleurs un excellent webinar animé par Seyfallah Tagrerout sur la sécurisation internet via Global Secure Access :

Et voici une autre vidéo sur le même sujet du très apprécié John Savill :

Comme précédemment, je vous propose de tester Global Secure Access, encore en préversion, par la réalisation d’un second exercice. Notre but sera de mesurer l’impact dans l’accès à des sites internet en simulant des postes utilisateurs ayant le client Windows Global Secure Access d’installé.

Les tâches que nous allons réaliser sont les suivantes :

Etape 0 – Rappel des prérequis :

Pour réaliser cet exercice, il vous faudra disposer des éléments suivants :

  • Un tenant Microsoft
  • Une souscription Azure valide
  • Une licence Microsoft Entra ID P1 licence (obligatoire)

Note : Les étapes I, II et IV de cet article sont exactement les mêmes que celles déjà décrites dans l’article précédent.

Etape I – Configuration du tenant :

Global Service Access est un service intégré à Microsoft Entra. Vous le trouverez donc uniquement dans ce portail.

Rendez-vous sur la page du portail d’Entra, puis cliquez-ici :

Certains prérequis sont vérifiés automatiquement. Une fois tous ces derniers en vert, cliquez sur le bouton Activer :

Attendez quelques secondes l’apparition de cette notification :

Cliquez-ici afin de continuer :

Cette page vous remontre les 2 principaux services de Global Secure Access :

Cliquez sur le service de votre choix pour en savoir un peu plus :

La documentation Microsoft correspondante s’ouvre alors dans un nouvel onglet :

De retour sur le portail d’Entra, continuer la configuration du Global Secure Access en cliquant sur Journalisation. Cette page nous informe que la Journalisation n’est pas encore activée sur Entra ID :

Activez la sauvegarde en passant par le menu suivant :

Configurez les Paramètres de diagnostic selon vos souhaits en cochant bien les logs nommées EnrichedOffice365AuditLogs :

Retournez sur la page de Journalisation de Global Secure Access afin de contrôler le bon changement :

La configuration de base de Global Secure Access est maintenant terminée.

Avant d’activer le service de Profil d’accès à Microsoft 365, nous allons créer 2 VMs dans Azure pour simuler des postes utilisateurs.

Etape II – Préparation de postes utilisateurs :

Depuis le portail Azure, créez 2 machines virtuelles sous Windows 11 sous un même réseau virtuel :

Sur ce réseau virtuel, déployer le service Azure Bastion afin de vous connecter à ces 2 VMs dépourvues d’IP publiques :

Joignez les deux machines virtuelles créées précédemment à Entra ID selon cet article, puis vérifiez leur présence sur cette page d’Entra ID :

Vérifiez également la présence de ces 2 VMs sur cette page de la console Intune :

Nos machines virtuelles de test sont prêtes.

Créez une premier groupe Entra ID contenant vos 2 utilisateurs de test :

Créez une second groupe Entra ID contenant vos 2 machines Azure de test :

L’environnement Azure est maintenant opérationnel. Retournons sur la configuration de Global Secure Access pour activer le profil dédié au trafic internet.

Etape III – Configuration du Profil d’accès à Internet :

Retournez sur cette page d’Entra ID, puis cochez la case suivante pour activer ce profil sur votre tenant :

Confirmez votre action en cliquant sur OK :

Attendez quelques secondes l’apparition de cette notification :

Vérifiez le changement de statut pour le Profil d’accès à Internet :

Continuons maintenant par l’installation du client Global Secure Access.

Etape IV – Déploiement du client Global Secure Access :

Ce client est nécessaire pour acheminer le trafic réseau vers le service Global Secure Access quand on souhaite s’y connecter en dehors d’un réseau d’entreprise.

Les différents clients de Global Secure Access sont disponibles sur cette page. Cliquez-ici pour télécharger la version Windows 10/11 :

Attendez que le téléchargement se termine :

Si vous le souhaitez, utilisez comme moi l’application Intunewin (Microsoft Win32 Content Prep Tool) afin de packager votre client Global Secure Access et de le déployer via Intune.

Créez votre application sur la console Intune comme Microsoft le préconise :

Attendez environ 30 minutes que l’application se déploie automatiquement sur les 2 machines virtuelles précédemment créées :

L’environnement est enfin prêt pour tester la connexion aux services 365 via Global Secure Access.

Etape V – Test de Global Secure Access :

Ouvrez 2 sessions RDP via Azure Bastion sur les 2 VMs en utilisant respectivement vos 2 utilisateurs Entra ID de test :

Constatez l’ouverture d’une page d’authentification de Global Secure Access, puis connectez-vous-y en utilisant l’identité Entra ID proposée par Windows :

Vérifiez la bonne connexion grâce à l’icône présent dans la barre de tâches :

Afin de comparer les 2 environnements, activez le mode Pause sur l’une des 2 VMs de test :

Cliquez sur le menu suivant du client Global Secure Access afin d’obtenir plus d’informations sur le statut de la connexion :

Comparez les deux checklist et leurs différences :

Vérifiez la présence de la règle concernant le profil Internet sur les 2 VMs :

Sur les 2 machines virtuelles de test :

  • Ouvrez une page web sur Edge afin de constater la connexion au service
  • Lancez une requête PING afin de constater les variations d’adresses IP

Retournez sur la page de log suivante du service Global Secure Access d’Entra ID afin de constater l’apparition de plusieurs lignes de log :

En quelques clics, nous avons mis en place un client Global Secure Access. Continuons un autre test en combinant le Global Secure Access avec un premier profil de sécurité général.

Etape VI – Global Secure Access + Profil de Sécurité 65000 :

Pour rappel, le profil de sécurité (unique) ayant la priorité 65000 sera pris en charge par l’ensemble des trafics internet transitant par la solution Global Secure Access.

Avant de créer le profil de sécurité 65000 du tenant, commencez par créer une première stratégie de filtrage via ce lien :

Nommez votre stratégie de filtrage de contenu internet, définissez sa nature, puis cliquez sur Suivant :

  • Block : bloque le trafic internet en direction des sites définis par la stratégie de filtrage
  • Allow : autorise le trafic internet en direction des sites définis par la stratégie de filtrage

Ajoutez une ou plusieurs règles de filtrage selon deux options possibles pour les cibles :

  • Catégorie de site : permet de choisir une catégorie de web prédéfinie
  • FQDN : domaine ou sous-domaine

Vérifiez et valider votre stratégie de filtrage :

Attendez quelques secondes l’apparition de cette notification :

Nous pouvons maintenant créer le profil de sécurité général.

Pour créer ce profil de sécurité à priorité 65000, cliquez-ici sur le menu suivant disponible sur cette page :

Nommez votre profil de sécurité, définissez sa priorité à 65000, puis cliquez sur Suivant :

Associez la stratégie de filtrage créée précédemment :

Vérifiez et valider votre profil de sécurité :

Attendez quelques secondes l’apparition de cette notification :

Vérifiez la bonne configuration et l’absence de police d’accès conditionnel sur le profil 65000 :

Attendez quelques minutes, puis effectuer un test avec le navigateur Edge sur les 2 VMs de test afin d’en mesurer les impacts :

Continuons avec un autre test de restriction internet pour Global Secure Access combiné à une police d’accès conditionnel.

Etape VII – Global Secure Access + Accès Conditionnel :

A l’inverse du profil de sécurité à priorité 65000, tous les autres auront besoin d’avoir un accès conditionnel pour s’appliquer.

Avant de créer ce second profil de sécurité, commencez par créer une autre stratégie de filtrage de contenu internet via ce lien :

Nommez votre stratégie de filtrage, définissez sa nature, puis cliquez sur Suivant :

Ajoutez une ou plusieurs règles de filtrage selon les deux options possibles :

Vérifiez et valider votre stratégie de filtrage :

Attendez quelques secondes l’apparition de cette notification :

2 stratégies de filtrage sont alors présentes sur votre environnement :

Cliquez-ici sur le menu suivant pour créer le second profil de sécurité :

Nommez votre profil de sécurité, définissez sa priorité à 150, puis cliquez sur Suivant :

Associez la stratégie de filtrage créée juste avant avec une priorité de 150 :

Vérifiez et valider votre profil de sécurité :

Attendez quelques secondes l’apparition de cette notification :

Vérifiez la bonne configuration et l’absence de police d’accès conditionnel sur le nouveau profil de sécurité :

Attendez quelques minutes, puis effectuer un test avec le navigateur Edge sur les 2 VMs de test afin d’en mesurer les impacts :

Comme on peut le constater, l’ajout d’une police d’accès conditionnel est nécessaire pour tous les profils de sécurité autre que celui à la priorité 65000.

Pour cela, rendez-vous sur la page suivante afin de créer la police d’accès conditionnel :

Spécifiez les utilisateurs concernés par cette police d’accès conditionnel :

Sélectionnez le trafic Internet dans les ressources cibles :

Indiquez le profil de sécurité créé au début de cette étape afin que s’appliquent les stratégie de filtrage associées :

Retournez sur la page des profils de sécurité afin de constater la bonne relation avec la police d’accès conditionnel :

Note : Pour des raisons de durée de vie de token, la mise en place d’un nouveau profil de sécurité sur des connexions Global Secure Access déjà actives peut prendre du temps avant de s’appliquer.

Attendez quelques minutes, puis effectuer un test avec le navigateur Edge sur les 2 VMs de test afin d’en mesurer les impacts :

Effectuez si besoin un second test sur un site faisant partie d’une des catégorie web bloquée dans votre stratégie de filtrage :

Continuons maintenant avec un test basé sur les priorités des stratégies de filtrage dans un même profil de sécurité Global Secure Access.

Etape VIII – Global Secure Access + Priorisation des stratégies de filtrage :

Afin de mesurer et comprendre la gestion des priorité des stratégie de filtrage de filtrage, nous allons réaliser la configuration suivante :

  • Stratégie de filtrage à priorité 140 autorisant un premier site azurewebsites
  • Stratégie de filtrage à priorité 150 interdisant tous les sites azurewebsites (déjà créée)
  • Stratégie de filtrage à priorité 160 autorisant un second site azurewebsites

Commencez par créer une première stratégie de filtrage de contenu internet via ce lien :

Nommez votre stratégie de filtrage, définissez sa nature, puis cliquez sur Suivant :

Ajoutez une ou plusieurs règles de filtrage :

Vérifiez et valider votre stratégie de filtrage :

Attendez quelques secondes l’apparition de cette notification :

Créez une seconde stratégie de filtrage :

Nommez votre seconde stratégie de filtrage, définissez sa nature, puis cliquez sur Suivant :

Ajoutez une ou plusieurs règles de filtrage :

Vérifiez et valider votre stratégie de filtrage :

Attendez quelques secondes l’apparition de cette notification :

Retournez sur la page des profils de sécurité afin de modifier le profil de sécurité déjà actif :

Cliquez ici pour ajouter les stratégies de filtrage créées :

Ajoutez ces 2 stratégies de filtrage en respectant les priorités suivantes :

Retournez sur la page des profils de sécurité afin de constater l’ajout des 2 nouvelles stratégies de filtrage :

Attendez quelques minutes, puis effectuer un test avec le navigateur Edge sur les 2 VMs de test afin d’en mesurer les impacts :

Effectuez un second test sur le site azurewebsites renseigné dans la stratégie de filtrage à priorité 160 :

Continuons avec un autre test basé sur les priorités quand 2 profils de sécurité Global Secure Access sont assignés à un utilisateur.

Etape IX – Global Secure Access + Priorisation des profil de sécurité :

Afin de mesurer et comprendre la gestion des priorité des profil de sécurité, nous allons réaliser la configuration suivante :

  • Profil de de sécurité à priorité 130 interdisant le premier site azurewebsites et autorisant le second site azurewebsites
  • Profil de de sécurité à priorité 150 autorisant les 2 sites azurewebsites et interdisant tous les autres sites azurewebsites (déjà créé)

Créez un nouveau profil de sécurité ayant une priorité à 130 :

Associez à ce profil une première stratégie de filtrage avec une priorité à 131 bloquant le site azurewebsites précédemment accessible :

Associez à ce profil une seconde stratégie de filtrage avec une priorité à 132 autorisant le site azurewebsites précédemment bloqué :

Créez une nouvelle police d’accès conditionnel associée à ce nouveau profil de sécurité :

Vérifiez la bonne configuration de l’ensemble :

Afin d’accélérer le déploiement de ce nouveau profil de sécurité sur les machines de test, vous pouvez vous déconnecter / reconnecter au Global Secure Access :

Réauthentifiez-vous en utilisant le compte Entra ID utilisé pour ouvrir la session Windows :

Ouvrez Edge vers le premier site azurewebsites afin de constater les impacts :

Ouvrez Edge vers le second site azurewebsites afin de constater les impacts :

Continuons avec un autre test reprenant l’accès conditionnel précédent, et en y ajoutant un contrôle MFA obligatoire.

Etape X – Global Secure Access + Contrôle MFA

Retournez sur la page d’accès conditionnel pour cocher la case MFA sur la dernière police d’accès conditionnel créée :

Attendez quelques minutes, puis cliquez-ici pour réouvrir une connexion sur Global Secure Access :

Réauthentifiez-vous en utilisant le compte Entra ID utilisé pour ouvrir la session Windows :

Constatez l’apparition d’un prompt consacré à la MFA :

Confirmez la connexion en réussissant le challenge MFA selon la méthode voulue :

Vérifiez le changement de statut de connexion des profils de configuration actifs :

Ouvrez Edge vers le premier site azurewebsites afin de la bonne connexion :

Terminons par un dernier test en bloquant l’accès sur la police d’accès conditionnel modifiée durant ce test.

Etape XI – Global Secure Access + Blocage Internet :

Pour cela, retournez sur la police d’accès conditionnel en modifiant l’accès par un blocage systématique :

Cliquez-ici pour fermer et réouvrir une connexion sur Global Secure Access :

Réauthentifiez-vous en utilisant le compte Entra ID utilisé pour ouvrir la session Windows :

Constatez l’apparition d’un prompt expliquant un blocage complet d’internet :

Conclusion

Par la mise à disposition du Global Secure Access, Microsoft apporte une brique manquante et attendue depuis longtemps dans son approche Zéro Trust. D’autres fonctionnalités comme Remote network vont s’avérer très utile pour sécuriser les connexions depuis et vers le Cloud sans obligatoirement investir dans des solutions de type MPLS.

Un dernier article devrait bientôt suivre sur la gestion de trafic pour le profil Private access 😎

Microsoft 365 via Global Secure Access

2024 est à peine là, mais certaines choses ne changent pas. La sécurité IT reste encore au cœur des préoccupations pour cette nouvelle année. Les façons de consommer la donnée au travers des outils informatiques ont été bouleversées depuis l’arrivée des Cloud publics. Mais ces usages doivent s’accompagner de mesures de sécurité toujours plus performantes.

Microsoft veut changer la partie avec son Global Secure Access. Parcourons ensemble quelques notions sur ce sujet.

Pourquoi Microsoft s’intéresse aux réseaux ?

L’émergence des outils 365, les nombreuses applications disponibles sous format SaaS, les ressources hébergées sur Azure, ou encore les effets du COVID ont fait voler en éclat les approches réseaux traditionnelles.

Partant de ce constat, la sécurité des réseaux, pensée de manière centralisée, a dû elle aussi s’adapter face à au nouveaux usages et fait face à de nouvelles menaces potentielles.

Microsoft est un acteur majeur du Cloud public, et la nouvelle approche sécuritaire des réseaux au-delà de leurs centre de données est donc une évidence pour eux.

Secure Access Service Edge (SASE) vs Security Service Edge (SSE) ?

Il s’agit avant tout de structurer les produits et les services de manière plus cohérentes selon les besoins :

Le SSE définit un cadre limité de la sécurité réseau convergente, qui allie des fonctions SWG, CASB/DLP et ZTNA dans un service cloud natif. Il permet un accès sécurisé aux applications Web, SaaS et métier internes, sans prise en charge directe des ressources WAN. Ce dernier aspect relève toujours d’une solution technologique distincte, englobant des fonctions comme le SD-WAN, les pare-feux nouvelle génération et les backbones réseau globaux.

Cato Networks

Voici d’ailleurs une vidéo pour vous en faire une meilleure idée :

On dit merci qui ? Merci Gartner🤣 !

On peut donc voir le SSE comme un pan clé du pilier sécurité du SASE :

Qu’est-ce que le Zéro Trust (ZT) ?

Le concept Zéro Trust vous dit peut-être déjà quelque chose (ou pas encore) ? Une règle simple et appliquée tout le temps : Ne jamais faire confiance, toujours vérifier.

Considérez simplement chaque demande d’accès comme suspecte :

Qu’est-ce que le Zéro Trust Network Access (ZTNA) ?

L’accès au réseau sans confiance (ZTNA), également connu sous le nom de périmètre défini par logiciel (SDP), est un ensemble de technologies et de fonctionnalités qui permettent un accès sécurisé aux applications internes pour les utilisateurs distants. Il fonctionne sur la base d’un modèle de confiance adaptatif, où la confiance n’est jamais implicite et où l’accès est accordé en fonction du besoin de savoir, sur la base du moindre privilège défini.

Zscaler

De manière plus simple, ZTNA reprend l’approche de ZT en y intégrant en tant que signal d’entrée la couche réseau, afin de rendre les décisions d’accès ou d’interdiction encore plus précises et donc plus sécurisantes :

Qu’est-ce que le Global Secure Access proposé par Microsoft ?

Voyant l’évolution des besoins de sécurité réseaux et la demande grandissante du Cloud, Microsoft a souhaité apporter sa propre solution SSE basée sur ZTNA :

Global Secure Access est l’emplacement unifié du centre d’administration Microsoft Entra et repose sur les principes fondamentaux de confiance zéro, d’utiliser le moindre privilège, de vérifier explicitement et de supposer une violation.

Microsoft Learn

Comme le montre le schéma ci-dessous, Global Secure Access regroupe 2 principaux services :

Voici d’ailleurs un excellent webinar animé par Seyfallah Tagrerout sur le Global Secure Access :

Afin de se faire une meilleure idée sur le Global Secure Access encore en préversion, je vous propose de réaliser un petit exercice. Mon premier but étant de mesurer son impact dans l’accès aux services 365 en simulant des postes utilisateurs ayant le client Windows Global Secure Access d’installé.

Les tâches que nous allons réaliser sont donc les suivantes :

Etape 0 – Rappel des prérequis :

Pour réaliser cet exercice, il vous faudra disposer des éléments suivants :

  • Un tenant Microsoft
  • Une souscription Azure valide
  • Une licence Microsoft Entra ID P1 licence (obligatoire)
  • Une licence Microsoft 365 E3 (recommandée)

Etape I – Configuration du tenant :

Global Service Access est un service intégré à Microsoft Entra. Vous le trouverez donc uniquement dans ce portail.

Rendez-vous sur la page du portail d’Entra, puis cliquez-ici :

Certains prérequis sont vérifiés automatiquement. Une fois tous ces derniers en vert, cliquez sur le bouton Activer :

Attendez quelques secondes l’apparition de cette notification :

Cliquez-ici afin de continuer :

Cette page vous remontre les 2 principaux services de Global Secure Access :

Cliquez sur le service de votre choix pour en savoir un peu plus :

La documentation Microsoft correspondante s’ouvre alors dans un nouvel onglet :

De retour sur le portail d’Entra, continuer la configuration du Global Secure Access en cliquant sur Journalisation. Cette page nous informe que la Journalisation n’est pas encore activée sur Entra ID :

Activez la sauvegarde en passant par le menu suivant :

Configurez les Paramètres de diagnostic selon vos souhaits en cochant bien les logs nommées EnrichedOffice365AuditLogs :

Retournez sur la page de Journalisation de Global Secure Access afin de contrôler le bon changement :

La configuration de base de Global Secure Access est maintenant terminée.

Avant d’activer le service de Profil d’accès à Microsoft 365, nous allons créer 2 VMs dans Azure pour simuler des postes utilisateurs.

Etape II – Préparation de postes utilisateurs :

Depuis le portail Azure, créez 2 machines virtuelles sous Windows 11 sous un même réseau virtuel :

Sur ce réseau virtuel, déployer le service Azure Bastion afin de vous connecter à ces 2 VMs dépourvues d’IP publiques :

Joignez les deux machines virtuelles créées précédemment à Entra ID selon cet article, puis vérifiez leur présence sur cette page d’Entra ID :

Vérifiez également la présence de ces 2 VMs sur cette page de la console Intune :

Nos machines virtuelles de test sont prêtes.

Créez une premier groupe Entra ID contenant vos 2 utilisateurs de test :

Créez une second groupe Entra ID contenant vos 2 machines Azure de test :

L’environnement Azure est maintenant opérationnel. Retournons sur la configuration de Global Secure Access pour activer le profil dédié aux services Microsoft 365.

Etape III – Configuration du Profil d’accès à Microsoft 365 :

Retournez sur cette page d’Entra ID, puis cochez la case suivante pour activer ce profil sur votre tenant :

Confirmez votre action en cliquant sur OK :

Attendez quelques secondes l’apparition de cette notification :

Vérifiez le changement de statut pour le Profil d’accès à Microsoft 365 :

Pour gérer les détails de la politique de transfert de trafic Microsoft 365, sélectionnez le lien suivant :

Continuons maintenant par l’installation du client Global Secure Access.

Etape IV – Déploiement du client Global Secure Access :

Ce client est nécessaire pour acheminer le trafic réseau vers le service Global Secure Access quand on souhaite s’y connecter en dehors d’un réseau d’entreprise.

Les différents clients de Global Secure Access sont disponibles sur cette page. Cliquez-ici pour télécharger la version Windows 10/11 :

Attendez que le téléchargement se termine :

Si vous le souhaitez, utilisez comme moi l’application Intunewin (Microsoft Win32 Content Prep Tool) afin de packager votre client Global Secure Access et de le déployer via Intune.

Créez votre application sur la console Intune comme Microsoft le préconise :

Attendez environ 30 minutes que l’application se déploie automatiquement sur les 2 machines virtuelles précédemment créées :

L’environnement est enfin prêt pour tester la connexion aux services 365 via Global Secure Access.

Etape V – Test de Global Secure Access :

Ouvrez 2 sessions RDP via Azure Bastion sur les 2 VMs en utilisant respectivement vos 2 utilisateurs Entra ID de test :

Constatez l’ouverture d’une page d’authentification de Global Secure Access, puis connectez-vous-y en utilisant l’identité Entra ID proposée par Windows :

Vérifiez la bonne connexion grâce à l’icône présent dans la barre de tâches :

Afin de comparer les 2 environnements, activez le mode Pause sur l’une des 2 VMs de test :

Cliquez sur le menu suivant du client Global Secure Access afin d’obtenir plus d’informations sur le statut de la connexion :

Comparez les deux checklist et leurs différences :

Vérifiez la présence de la règle concernant le profil Microsoft 365 sur les 2 VMs :

Sur les 2 machines virtuelles de test :

  • Ouvrez la page d’Outlook sur Edge afin de constater la connexion au service
  • Lancez une requête PING afin de constater les variations d’adresses IP

Retournez sur la page de log suivante du service Global Secure Access d’Entra ID afin de constater l’apparition de plusieurs lignes de log :

En quelques clics, nous avons mis en place un client Global Secure Access. Continuons un autre test en combinant le Global Secure Access avec l’Accès Conditionnel d’Entra ID.

Etape VI – Global Secure Access + Accès Conditionnel :

La signalisation de Global Secure Access fournit des informations sur l’emplacement du réseau à l’accès conditionnel, ce qui permet aux administrateurs de créer des politiques qui limitent l’accès des utilisateurs à des applications spécifiques en fonction de leur utilisation du client Global Secure Access ou d’un réseau distant.

Microsoft Entra

La combinaison de Global Secure Access et de l’Accès Conditionnel va donc permettre de restreindre l’accès à certains services si la connexion via Global Secure Access n’est pas établie.

Pour cela, rendez-vous sur la page suivante d’Entra afin de constater la situation avant activation :

Activez l’option nommée Accès adaptatif sur cette page, puis sauvegardez :

Attendez quelques secondes l’apparition de cette notification :

Retournez sur page suivante d’Entra afin de constater la situation après activation :

Créez une nouvelle police d’accès conditionnel par le menu suivant :

Spécifiez le groupe d’utilisateurs de test concerné :

Définissez la ou les applications à protéger :

Excluez de cette police les connexions faites depuis Global Secure Access :

Bloquez l’accès pour les autres tentatives de connexion, activez la police puis sauvegardez-là :

Attendez quelques minutes, puis ouvrez Edge en navigation privée vers la page d’Outlook afin de constater les impacts :

Continuons avec un dernier test de restriction de tenant pour Global Secure Access.

Etape VII – Global Secure Access + Restriction au tenant :

Les restrictions imposées aux locataires permettent aux administrateurs de contrôler si leurs utilisateurs peuvent accéder aux ressources d’une organisation externe avec des comptes émis par cette dernière, tout en utilisant le réseau ou l’appareil de votre organisation.

Microsoft Entra

En d’autres termes, une fois connecté au Global Secure Access, plus moyen de s’authentifier sur un tenant tiers si cette option est activée et sans y ajouter le second tenant comme exception.

Pour cela, rendez-vous sur cette même page d’Entra ID, activez l’option suivante puis sauvegardez :

Attendez quelques minutes, puis réouvrez Edge en navigation privée vers la page d’Outlook afin de constater les impacts :

Conclusion

Par la mise à disposition du Global Secure Access, Microsoft apporte une brique manquante et attendue depuis longtemps dans son approche Zéro Trust. D’autres fonctionnalités comme Remote network vont s’avérer très utile pour sécuriser les connexions depuis et vers le Cloud sans obligatoirement investir dans des solutions de type MPLS.

Enfin, d’autres articles vont bientôt suivre sur la gestion de trafic des autres profils (Private access profile, Internet access profile) 😎

Déplacez votre VM dans une Zone Azure

Il y a quelques jours, Microsoft vient d’annoncer une nouvelle fonctionnalité de migration très intéressante pour les machines virtuelles déjà en place : la possibilité de déplacer une machine virtuelle, actuellement non zonée, vers une zone précise de la région Azure.

Pourquoi faire ? Pour accroitre la résilience de l’infrastructure 🙏

Annoncé le 12 décembre dernier sur blog Azure, cette fonctionnalité dédié aux machines virtuelles vient compléter la récente annonce datée d’octobre sur l’Expansion zonale des Azure VMSS.

Voici d’ailleurs un schéma montrant l’intégration de 3 zones au sein d’une seule région Azure :

Microsoft a déjà mis à disposition la documentation sur ce nouveau type de migration :

En revanche, la possibilité d’utiliser ce type de migration dépendra de votre scénario actuel :

ScénarioAssistance techniqueDétails
Machine virtuelle à instance uniquePrise en chargeLe déplacement régional vers zonal de machines virtuelles à instance unique est pris en charge.
Machines virtuelles au sein d’un groupe à haute disponibilitéNon pris en charge
Machines virtuelles à l’intérieur de groupes de machines virtuelles identiques avec orchestration uniformeNon pris en charge
Machines virtuelles à l’intérieur de groupes de machines virtuelles identiques avec orchestration flexibleNon pris en charge
Régions prises en chargePrise en chargeSeules les régions prises en charge par la zone de disponibilité sont prises en charge. En savoir plus sur les détails de la région.
Machines virtuelles déjà situées dans une zone de disponibilitéNon pris en chargeLe déplacement interzone n’est pas pris en charge. Seules les machines virtuelles qui se trouvent dans la même région peuvent être déplacées vers une autre zone de disponibilité.
Extensions de machine virtuelleNon pris en chargeLe déplacement de machine virtuelle est pris en charge, mais les extensions ne sont pas copiées sur une machine virtuelle zonale cible.
Machines virtuelles avec lancement fiablePrise en chargeRéactivez l’option Analyse de l’intégrité dans le portail et enregistrez la configuration après le déplacement.
Machines virtuelles confidentiellesPrise en chargeRéactivez l’option Analyse de l’intégrité dans le portail et enregistrez la configuration après le déplacement.
Machines virtuelles de 2e génération (démarrage UEFI)Prise en charge
Machines virtuelles dans des groupes de placement de proximitéPrise en chargeLe groupe de placement de proximité source (PPG) n’est pas conservé dans la configuration zonale.
VM spot (machines virtuelles de basse priorité)Prise en charge
Machines virtuelles avec hôtes dédiésPrise en chargeL’hôte dédié de machine virtuelle source ne sera pas conservé.
Machines virtuelles avec mise en cache de l’hôte activéePrise en charge
Machines virtuelles créées à partir d’images de la Place de marchéPrise en charge
Machines virtuelles créées à partir d’images personnaliséesPrise en charge
Machine virtuelle avec licence HUB (Hybrid Use Benefit)Prise en charge
Stratégies RBAC de machine virtuelleNon pris en chargeLe déplacement de machine virtuelle est pris en charge, mais les RBAC ne sont pas copiés sur une machine virtuelle zonale cible.
Machines virtuelles utilisant l’accélération réseauPrise en charge

Pourquoi migrer dans une Zone de disponibilité Azure ?

Les avantages à utiliser les zones de disponibilité Azure sont les suivants:

  • Pour des raisons de besoins de fiabilité et de performance.
  • Pour une reprise après sinistre sans compromettre la résidence des données.

Pour rappel, la SLA sera différente si la VM est toute seule, ou si elle est accouplée à une autre VM dans une Availability Set ou Availability Zone :

Afin de se faire une meilleure idée sur cette migration, je vous propose de réaliser un petit exercice, dont les tâches seront les suivantes :

Etape 0 – Rappel des prérequis :

Pour réaliser cet exercice sur la bascule d’une VM dans une zone d’Azure, il vous faudra disposer des éléments suivants :

  • Un tenant Microsoft
  • Une souscription Azure valide

Afin de pouvoir tester cette fonctionnalité toujours en préversion, il est nécessaire de créer une machine virtuelle non Zonée (ou Régionale).

Etape I – Préparation de la VM Régionale :

Pour cela, rechercher le service Machines virtuelles sur le portail Azure :

Cliquez-ici pour commencer la création de la première machine virtuelle :

Renseignez les informations de base relatives à votre VM en choisissant aucune redondance :

Choisissez la taille de votre VM, définissez un compte administrateur local, bloquer les ports entrants, puis cliquez sur Suivant :

Aucune modification n’est à faire sur cet onglet, cliquez sur Suivant :

Aucune modification n’est à faire sur cet onglet, cliquez sur Suivant :

Décochez l’extinction automatique de la machine virtuelle, puis lancez la validation Azure :

Une fois la validation Azure réussie, lancez la création de la première VM, puis attendez environ 2 minutes :

Une fois le déploiement terminé, cliquez-ici pour consulter votre première machine virtuelle :

Cliquez-ici pour déclencher le déploiement du service Azure Bastion :

Ouvrez une session de bureau à distance via Azure Bastion en utilisant les identifiants administrateurs renseignés lors de la création de la VM :

Ouvrez une ou plusieurs applications en enregistrant le travail effectué :

Notre première machine virtuelle non-zonée ou régionale est maintenant opérationnelle. Nous pouvons dès à présent lancer le processus de migration vers la zone souhaitée.

Etape II – Déplacement de la VM Régionale dans une Zone :

Pour commencer ce processus, rendez-vous dans l’un des 2 menus suivants :

  • Cliquez sur le menu à gauche appelé Disponibilité + dimensionnement.
  • Cliquez sur le bouton d’édition à droite pour modifier la Zone de disponibilité.

Cliquez-ici pour démarrer le processus de migration :

Choisissez la zone cible pour la migration :

Attendez environ 2-3 minutes afin qu’Azure mette en place les droits RBAC nécessaires pour procéder à la migration :

Une notification Azure apparaît également :

Un nouveau groupe de ressources est créé par cette même occasion :

Des droits RBAC sont également générés au niveau de la souscription Azure concernée :

Une fois le traitement terminé, l’écran suivant apparait, modifiez les champs au besoin :

Dans mon cas, j’ai modifié les valeurs suivantes, puis j’ai cliqué sur Valider :

  • Création d’un nouveau groupe de ressources
  • Création de nouvelles ressources pour tous les objets existants
  • Modification des noms des ressources

La validation entraine une seconde vérification des paramètres modifiés :

Une nouvelle notification Azure apparait indiquant que le traitement est en cours :

Environ 30 secondes plus tard, le traitement de validation se termine :

Lancez le déplacement des ressources en cochant la case ci-dessous, puis en cliquant sur Déplacer :

Le traitement démarre et vous informe que celui-ci durera plusieurs minutes :

Le nouveau groupe de ressources Azure se créé avec les ressources commencent également à y apparaître :

La session de bureau à distance ouverte via Azure Bastion sur la première machine virtuelle se ferme, comme attendu :

Un rapide contrôle du statut de la première machine virtuelle nous montre que cette dernière s’est bien arrêtée :

Le groupe de ressource créé par le service de déplacement nous montre la présence d’une collection de points de restauration :

Celle-ci contient bien un point de restauration lié au traitement de migration de la VM :

Environ 5 minutes plus tard, l’écran nous indique que le traitement est terminé. On y apprend également plusieurs choses :

  • La première machine virtuelle a bien été arrêtée, mais n’a pas été supprimée
  • La seconde machine virtuelle est bien démarrée et est localisée dans la zone 3

Des consignes post-déploiement sont même affichées afin de vous guider sur la suite :

Le nouveau groupe de ressources créé par la migration montre bien toutes les ressources configurées selon les options renseignées :

De retour dans le groupe de ressources précédent, la collection des points de restauration a disparu après la migration :

Etape III – Contrôle de la VM zonée :

Les deux machines virtuelles sont bien présentes et visibles, cliquez sur la nouvelle VM :

Vérifiez la présence de la zone 3, puis cliquez sur le Editer :

Microsoft vous indique qu’il n’est pas encore possible de déplacer des ressources entre les zones dans une région Azure :

Cette information de zone de notre machine virtuelle est aussi disponible ici :

Comme un nouveau réseau virtuel a été recréé dans mon exemple, pour me connecter en RDP, je dois effectuer une des actions suivantes :

  • Redéployer un service Azure Bastion
  • Utiliser l’adresse IP publique
  • Appairer les 2 réseaux virtuels entre eux

Ouvrez une session de bureau à distance via Azure Bastion en utilisant les identifiants administrateurs renseignés lors de la création de la première VM :

Vérifiez la présence du travail effectué précédemment :

Etape IV – Nettoyage des ressources non zonées :

Important : l’infrastructure existante telle que les VNET, les sous-réseaux, les NSG, les LB, … tirent déjà parti d’une configuration zonale, nous aurions pu les garder au lieu d’en recréer.

Si tout est OK pour vous, il ne vous restera qu’à supprimer les deux groupes de ressources suivants :

  • Groupe de ressources contenant l’ancienne machine virtuelle
  • Groupe de ressource contenant les composants liés à la migration

La suppression d’un groupe de ressources Azure s’effectue très simplement :

Confirmez l’ordre de suppression :

Conclusion

Microsoft automatise tous les jours un peu plus certaines tâches manuelle au fil des améliorations faites à Azure. Tous les gains d’efficacité doivent également profiter aux ressources déjà déployées.

On pourra peut-être bientôt voir le même type de processus automatisé intégrer des machines virtuelles existantes dans des Availability Sets ou des Proximity placement groups 😎

Copilot for Azure 💙

Comme pour Microsoft 365, Azure a lui aussi droit à son propre Copilot, appelé Copilot for Azure. Par contre, aucune GA n’a pour l’instant encore été annoncée pour ce dernier, seule la préversion est actuellement disponible sur demande et sur approbation de Microsoft. Copilot for Azure est bien une IA fonctionnant sous forme d’assistant, tout en ayant un accès direct aux ressources Azure selon vos droits RBAC.

Un premier article sur ce blog parlant déjà de plusieurs Copilot est disponible juste ici, tandis qu’un autre consacré à l’IA de façon généraliste est accessible juste .

L’annonce de l’ouverture de la préversion de Copilot for Azure s’est faite durant l’Ignite, la procédure pour la rejoindre avait été détaillée sur le blog Azure :

Microsoft Copilot for Azure est déjà utilisé en interne par les employés de Microsoft et par un petit groupe de clients.

Aujourd’hui, nous sommes ravis de passer à l’étape suivante en annonçant et en lançant l’avant-première pour vous ! Cliquez ici pour vous inscrire.

Nous intégrerons les clients à l’avant-première sur une base hebdomadaire. Dans les semaines à venir, nous ajouterons continuellement de nouvelles fonctionnalités et apporterons des améliorations en fonction de vos commentaires.

Azure Blog

Comme l’indique encore le blog Azure, Copilot for Azure va vous aider principalement à :

  • Conception : créer et configurer les services nécessaires tout en s’alignant sur les politiques de l’organisation
  • Exploitation : répondre aux questions, créer des commandes complexes et gérer les ressources
  • Dépannage : orchestrer les services Azure pour obtenir des informations permettant de résumer les problèmes, d’identifier les causes et de suggérer des solutions
  • Optimisation : améliorer les coûts, l’évolutivité et la fiabilité par le biais de recommandations pour votre environnement

Que peut-on rêver de mieux? Voici d’ailleurs ce que son grand frère en dit de lui quand on lui pose la question 🤣 :

Voici également une vidéo sur Copilot for Azure déjà réalisée par John Savill :

Tout comme John, je souhaitais partager avec vous mes premières expériences de Copilot for Azure, depuis la demande d’accès jusqu’aux premiers tests sur le portail Azure. Voici quelques prompts réalisés sur mon environnement Azure autorisé :

Avant de pouvoir jouer à Copilot for Azure, il est nécessaire de le mettre en place sur Copilot for Azure sur votre environnment.

Etape 0 – Mise en place de Copilot for Azure :

Comme pour tout produit en préversion chez Microsoft, des contraintes sont présentes :

  • L’autorisation pour Copilot for Azure portera sur toutes les souscriptions Azure.
  • Uniquement disponible certains partenaires agréés par Microsoft.
  • Uniquement disponible sur le Cloud publique d’Azure (Pas de Gov ou China).
  • Seulement l’anglais est disponible durant la préversion publique.
  • La préversion publique est gratuite.

Tout commence par le formulaire officiel à accessible par ce lien :

Des informations personnelles et professionnelles sont nécessaires, et il vous faudra également donner votre Tenant ID :

Après avoir rempli votre formulaire, il ne vous reste qu’à l’envoyer :

Voici le message email que vous devriez immédiatement recevoir après l’envoi du formulaire :

Exactement 15 jours plus tard, j’ai reçu avec un immense plaisir le second email suivant :

J’ai donc immédiatement vérifié un éventuel changement sur le portail Azure, rien à ce moment-là :

Par contre, le lendemain, les choses ont bougé et le bouton Copilot y a fait son apparition :

En cliquant dessus, on remarque que Copilot est toujours en préversion, c’est important de le rappeler :

Quelques explications apparaissent, cliquez sur Suivant :

On y apprend les 3 principales limitations à la préversion :

  • 5 ressources impactées max par une action Copilot
  • 10 requêtes max par session de chat avec Copilot
  • 5 chats max par tranche de 24 heures avec Copilot

Enfin l’avertissement sur le besoin actuel et indispensable de vérifier toutes les réponses d’une IA :

Le prompt est maintenant à nous, nous allons pouvoir effectuer quelques tests :

Commençons par une chose simple sur des ressources Azure déjà en place.

Test I – Prompt Analyse (nombre de VMs) :

Demandons à Copilot le calculer nombre de VMs Azure présentes sur mon environnement Azure :

Copilot for Azure nous montre qu’il tient compte des souscriptions filtrées dans ma console et la requête qu’il compte faire sous forme de requête :

La réponse affichée dans le prompt par Copilot for Azure est bien correct :

Je n’ai bien qu’une seule machine virtuelle actuellement visible sur mon tenant de test :

Continuons maintenant avec un prompt de type action sur une ressource Azure.

Test II – Prompt Action (démarrage VM) :

Demandons à Copilot de nous démarrer cette machine virtuelle précédemment listée :

Copilot for Azure comprend la demande et nous demande juste de confirmer l’ordre d’allumage :

Copilot démarre la machine virtuelle et nous invite à suivre l’évolution via la notification Azure :

Une notification Azure apparaît bien suite à la confirmation à Copilot de l’ordre de démarrage :

Environ 1 minute plus tard, la notification Azure confirme bien le démarrage de la VM :

Le statut de la machine virtuelle a bien changé dans la liste des VMs Azure :

Continuons avec un second ordre sur une ressource Azure.

Test III – Prompt Contre-Action (arrêt VM) :

Admettons que la commande précédente ne soit pas celle finalement voulue. Voici ce qui passe avec Copilot si l’on souhaite faire modifier cette action par une autre.

Ma machine virtuelle ci-dessous supporte le mode hibernation décrit sur ce blog ici et :

Je souhaite que Copilot change son statut, actuellement démarrée, en mode hibernation :

Visiblement, la fonction d’hibernation, encore en préversion, n’est pas encore reconnue par Copilot for Azure :

Copilot me propose malgré tout une autre action proche de celle demandée :

Je confirme mon choix en cliquant sur Oui :

Une nouvelle notification Azure apparait alors :

Le message suivant de Copilot apparaît dans le prompt au même moment :

Environ 30 secondes plus tard, la notification Azure de succès de l’action apparaît :

Le statut de la machine virtuelle a bien changé comme attendu :

Continuons nos tests avec des questions financières relative au Cost Management d’Azure.

Test IV – Prompt Analyse (Coûts Azure) :

Cette machine virtuelle est opérationnelle depuis déjà plusieurs semaines. Posons la question suivante à Copilot afin d’obtenir les coûts depuis le 1er novembre 2023 :

Le résultat n’est selon moi pas correct comme le montre les coûts présents :

Posons la même question afin d’obtenir les coûts depuis le 1er décembre 2023 :

Posons la question en ciblant la VM afin d’obtenir ses coûts depuis le 1er décembre 2023 :

Là encore, et malgré que cette VM est bien souvent en état d’hibernation, des coûts sont constamment présents sur la partie stockage, comme le montre le Cost Management suivant :

Afin d’approcher différemment cette requête financière, j’ajoute un tag sur toutes les ressources Azure concernées :

Et je repose la question à Copilot en ciblant uniquement le tag :

La requête est bien comprise par Copilot for Azure puisque seules des ressources taggées me sont affichées en réponse dans le prompt :

Mais la même réponse d’absence de coûts m’est retournée quand je cherche à savoir combien me coûte les ressources Azure ayant ce même tag :

Continuons nos tests avec d’autres exemples de prompt.

Test V – Prompt Analyse (Infos VM) :

Posons une question simple à Copilot concernant le statut de votre VM :

Les informations retournées sont précises et informatives :

Continuons nos tests avec d’autres exemples de prompt.

Test VI – Prompt Action (création VM) :

Une autre demande à Copilot sur la création de ressource Azure vous donnera toutes les étapes nécessaires, sous forme de commandes CLI, sans pour autant les réaliser pour vous pour l’instannt :

En ouvrant soi-même une fenêtre Azure Cloud Shell et en y copiant les 2 commandes proposées par Copilot, la création de la VM démarre bien :

Voici un second test de création de VM avec plus de paramètres :

Continuons nos tests dans le cas où l’on souhaiterait modifier une ressource Azure déjà en place.

Test VII – Prompt Action (Modification VM) :

Demandons à Copilot de changer la taille de la VM récemment créée :

Malheureseument, Copilot n’effectue pas directement l’action mais repropose une commande CLI.

Une fois la commande manuellement lancée dans Azure Cloud Shell, la taille de la VM est bien modifiée :

Continuons nos tests avec d’autres exemples de prompt.

Test VIII – Prompt Optimisation (Protection VM) :

Demandons à Copilot de l’aide dans la protection d’une machine virtuelle déjà en place :

L’ordre suivant apparaît alors :

Je sélectionne le premier compte de stockage de la liste :

Je confirme mon choix en cliquant sur Oui :

Le traitement d’analyse suivant ce lance alors :

Copilot for Azure m’affiche des conseils de sécurité concernant le compte de stockage sélectionné :

C’est une bonne chose, mais je voulais obtenir des conseils pour ma machine virtuelle😎

Continuons nos tests avec d’autres exemples de prompt.

Test IX – Prompt Analyse (Suppression VM) :

Continuons les tests Copilot par une demande de suppression d’une machine virtuelle Azure :

Copilot for Azure comprend bien la requête et me confirmer l’action de suppression :

La fenêtre habituelle de suppression de ressources apparaît alors :

Je confirme mon choix :

La notification Azure de suppression apparaît alors :

Celle-ci se confirme environ 1 minute plus tard :

La machine virtuelle est bien supprimée :

Continuons nos tests avec un dernier exemple de prompt.

Test X – Prompt Documentation (Azure Virtual Desktop) :

Terminons par une question documentaire sur le déploiement d’un environnement Azure Virtual Desktop :

Plusieurs documentations Microsoft me sont retournées. Peut-être qu’un jour ce blog y sera également en tant que réponse Copilot 🤣

Conclusion

Cette première préversion de Copilot for Azure montre déjà un certain potentiel dans la gestion, la création et l’optimisation des ressources du Cloud. J’ai eu aussi quelques petites erreurs de prompt ou de perte connexion avec les serveurs Copilot.

Nul doute que Copilot va très rapidement gagner en stabilité, apprendre plus de commandes et proposer d’interactions afin de faciliter la vie dans certaines actions basiques ou avancées sur le Cloud Azure.