Enregistrement des applications (App Registrations)

Enregistrement des Applications et des Add-ins dans SharePoint

Azure ACS (Azure Access Control Service) is used in SharePoint Online for providing auth for provider hosted SharePoint Add-Ins plus it’s used to grant applications access to SharePoint Online, optionally using application permissions and granular scopes.

Register SharePoint Add-ins | Microsoft Learn

Granting access using SharePoint App-Only | Microsoft Learn

How to provide add-in app only tenant administrative permissions in SharePoint Online | Microsoft Learn

_layouts/15/AppRegNew.aspx

<AppPermissionRequests AllowAppOnlyPolicy="true">
  <AppPermissionRequest Scope="http://sharepoint/content/sitecollection/web" Right="Write" />
</AppPermissionRequests>

_layouts/15/AppInv.aspx

_layouts/15/AppPrincipals.aspx

À partir du 2/04/2026, l’utilisation d’Azure Access Control Service (ACS) sera supprimée pour SharePoint dans Microsoft 365 et les utilisateurs ne pourront plus créer ou utiliser des principaux Azure ACS pour accéder à SharePoint. En savoir plus sur la mise hors service du contrôle d’accès

SharePoint site collection admins can’t register apps or update permissions – SharePoint | Microsoft Learn

Upgrading SharePoint applications from Azure Access Control Service to Azure Active Directory | Microsoft Learn

Enregistrement d’applications SharePoint dans Microsoft Entra

Upgrading SharePoint applications from Azure Access Control Service to Azure Active Directory | Microsoft Learn

Secret Connection with SharePoint (crmportalconnector.com)

Enregistrement d’applications dans Microsoft Entra

https://entra.microsoft.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade/quickStartType~/null/sourceType/Microsoft_AAD_IAM

App Registrations dans le Portail Azure

https://portal.azure.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade

Authentication

Certificates & secrets

API permissions

Dossier, ensemble de documents et étiquettes

Pour aller plus loin Étiquette de rétention appliquée par défaut | KTNN SharePoint (wordpress.com)

La logique de tout le cycle de vie des données et des enregistrements de Microsoft repose sur l’application des étiquettes de rétention sur des fichiers. Cependant, les archivistes recommandent de créer des dossiers et d’appliquer une rétention par dossier (applicable sur tous les documents à l’intérieur).

Les dossiers réguliers ne sont pas tout à fait adéquats pour cette situation car:

  • Seulement l’étiquette de rétention appliquée sur le dossier se répercute sur tous ses fichiers.
  • La colonne ‘Asset ID’ ne peut pas être utilisée sur le dossier puisqu’elle ne se transmet pas à tous ses fichiers.
  • Une métadonnée personnalisée ne peut pas être appliquée sur un dossier sauf en utilisant le contournement du mode ‘Grille’.

Les ensembles de documents comportent quelques avantages par rapport aux dossiers réguliers:

  • Il est possible de créer des métadonnées personnalisées qui sont partagées avec tous les fichiers. Une des métadonnées personnaliées peut être utilisée en tant que ‘Asset ID’.
  • Comme pour les dossiers réguliers, l’étiquette de rétention appliquée sur un ensemble de documents est répliquée sur tous ces fichiers.

Malheureusement, les ensembles de documents ne répondent pas à tous les besoins. Voici ce qui manque:

  • La date de dernière modfication de l’ensemble de document (ni un dossier régulier) ne se met pas à jour lorsqu’un document à l’intérieur est modifié. Par conséquent, il est impossible d’utiliser la rétention basée sur ‘Date de dernière modification’.
  • Aussi, les colonnes ‘Asset ID’ et ‘Retention Label’ ne peuvent pas être ajoutées comme colonne de sites d’un ensemble de documents, c’est dommage.

Étiquettes de sensibilité

Elles ne peuvent pas être appliquée sur les dossiers réguliers ni les ensembles de documents, seulement sur les fichiers.

En plus, les étiquettes de sensibilité n’ont pas été pensées pour être utilisées dans une politique d’application automatique (auto-apply). Il faut contourner en rédigeant une requête basée sur le ID de l’étiquette de sensibilité. How to combine retention with sensitivity – Information security and compliance (alberthoitingh.com)

Gestion documentaire | KTNN SharePoint (wordpress.com)

KQL et rétention

Le language KQL est utilisé dans ces situations lorsqu’on travaille avec les règles de rétention.

Keyword Query Language (KQL) syntax reference | Microsoft Learn

Keyword queries and search conditions for eDiscovery | Microsoft Learn

Use the KQL editor to build search queries | Microsoft Learn

Recherche de contenu (content search)

Permet de tester les requêtes.

Feature reference for Content search | Microsoft Learn

Étiquette avec rétention basée sur un événement (event based retention)

  • À la création de l’étiquette, il faut choisir le type d’événement.
  • À la création d’un événement, il faut inscrire une requête KQL.

Déclencher la rétention par un événement | KTNN SharePoint (wordpress.com)

Application automatique des étiquettes (auto-apply)

  • Il faut inscrire une requête KQL qui indique les critères utilisés pour appliquer une étiquette.

Appliquer automatiquement une étiquette (auto-apply) | KTNN SharePoint (wordpress.com)

Appliquer automatiquement une étiquette (auto-apply)

Automatically apply a retention label to Microsoft 365 items | Microsoft Learn

Auto Apply Retention Labels in Office 365 Using Content Types and Metadata | Microsoft Learn

For SharePoint, crawled properties and custom properties aren’t supported for these KQL queries and you must use only predefined managed properties for documents. However, you can use mappings at the tenant level with the predefined managed properties that are enabled as refiners by default (RefinableDate00-19, RefinableString00-99, RefinableInt00-49, RefinableDecimals00-09, and RefinableDouble00-09). For more information, see Overview of crawled and managed properties in SharePoint Server, and for instructions, see Create a new managed property.

  1. Création d’une propriété gérée ‘RefinableString10’ avec own_
  2. Création d’un auto-apply avec requete RefinableString10:test (scope de l’étiquette et du auto-apply doit être pareil?)

Cela peut prendre jusqu’à 7 jours pour que les étiquettes s’appliquent: Automatically apply a retention label to Microsoft 365 items | Microsoft Learn

You can apply retention labels to content automatically when that content doesn’t already have a retention label applied…

Exemple de event-based retention + auto-apply: Use retention labels to manage SharePoint document lifecycle | Microsoft Learn

Étiquette de rétention appliquée par défaut | KTNN SharePoint (wordpress.com)

Auto-Label Policies in Microsoft Purview Records Management Part 1: How to Use KQL — Gravity Union

Sélection des étiquettes pour l’application automatique

  • Onglet Label policies > Auto-apply a label > à l’étape ‘Choose a label to auto-apply’, seules les étiquettes qui ne sont pas publiées sont disponibles.
  • Onglet Labels > dans le menu d’une étiquette, il est possible de choisir ‘auto-apply’ pour n’importe quelle étiquette.

Remarque: les étiquettes ne s’appliquent que sur les fichiers et non sur les dossiers ou ensembles de documents.

Rôles d’administrateur afin de gérer le cycle de vie des données et les enregistrements

Members of your compliance team who will create and manage retention policies and retention labels need permissions to the Microsoft Purview portal or the Microsoft Purview compliance portal. By default, the tenant admin (global administrator) has access to this location and can give compliance officers and other people access without giving them all the permissions of a tenant admin. To grant permissions for this limited administration, we recommend that you add users to the Compliance Administrator admin role group.

Alternatively to using this default role, you can create a new role group and add the Retention Management role to this group. For a read-only role, use View-Only Retention Management.

1) Créer le groupe de rôles ‘Compliance Administrator’

https://compliance.microsoft.com/permissions

Microsoft Purview > Roles & scopes > Permissions > Microsoft Purview Solutions > Roles > Create role group

2) Puis associer un utilisateur à ce groupe de rôle.

https://learn.microsoft.com/en-us/microsoft-365/security/office-365-security/scc-permissions

https://learn.microsoft.com/en-us/purview/purview-compliance-portal-permissions

SharePoint Custom Metadata Event-Based Retention with MSGraph and PowerAutomate

Joanne C Klein has written the following article to explain how to activate a retention when a value of a metadata is changed.

SharePoint custom metadata and Event-based Retention – Joanne C Klein

All the steps work perfectly but step 8 because the Rest APIs are deprecated.

In the past, you could use REST APIs to automate the events. This method is now deprecated and no longer works. Instead, use Microsoft Graph API.

Here are the steps I followed to automate the creation of the event with Power Automate and MS Graph APIs.

Graph Explorer

First I used the Graph Explorer: https://developer.microsoft.com/en-us/graph/graph-explorer

To find the ID of the event type:

https://graph.microsoft.com/beta/security/triggerTypes/retentionEventTypes

Then to create the event:

https://graph.microsoft.com/beta/security/triggers/retentionEvents

{
"displayName":"EventTEST",
"eventQueries":[
{
"queryType": "files",
"query":"CaseNumber:999"
}
],
"eventTriggerDateTime":"2024-04-01T00:00:00Z",
"retentionEventType@odata.bind": "https://graph.microsoft.com/beta/security/triggerTypes/retentionEventTypes/27c7952c-6899-44e9-952a-ee9ec8ceefaa"
}

I can also grab the Acces token from the Graph Explorer since I had to approve the necessary permissions.

Power Automate

  • Note that the event trigger date should also be dynamic.
  • In this example, the event is triggered when the property ‘LitigationStatus’ is set to ‘closed’ by some user. However, what happens if the user makes a mistake and sets the property back to ‘opened’? The event is not deleted.
  • In this example, the same label is applied to all the files in the library. In another situation, the flow could be improved by using the retention label to search for the event type id first and then adding it as dynamic.

References

Use the Microsoft Graph records management API – Microsoft Graph v1.0 | Microsoft Learn

Automate Event-based Retention in Office 365 – Joanne C Klein

https://www.blimped.nl/working-with-purview-event-based-retention-using-code

Automate retention events through the RecordsManagement Graph API (sonnygillissen.nl)

CamTrix – CA – V38 (youtube.com)

Solved: Apply retention label with the action ‘Send_an_HTT… – Power Platform Community (microsoft.com)

Use Power Automate for event-based retention in Microsoft 365. — Gravity Union

Power Automate – Analyse (‘parse’) et HTTP utilisateurs d’Office 365

Ce flux permet de parcourir tous les fichiers d’une bibliothèque SharePoint. Il récupère le matricule d’employé indiqué dans le nom du fichier puis compare avec l’AAD afin d’obtenir le contenu de l’attribut ‘UserPrincipalName’ (courriel).

Parsing: l’étape ‘Définir une variable’ cherche les 5 caractères se trouvant après la parenthèse ouverte.

L’étape ‘Envoyer une requête HTTP’ cherche l’attribut ‘userPrincipalName’ lorsque l’attribut ’employeeId’ est égale au numéro de matricule trouvé précedemment.

L’étape ‘Message’ récupère la réponse obtenue à l’interrogation du Graph.

L’étape ‘Message 2’ analyse (parse) la réponse afin de récupérer dans un des élément du tableau le ‘userPrincipalName’.

Réf.

Solved: How to get HTTP GET output response from the flow … – Power Platform Community (microsoft.com)

How To Make Simple HTTP Requests in Power Automate (youtube.com)

Solved: Search for AAD user, only knowing their Employee I… – Power Platform Community (microsoft.com)

Déclencher la rétention par un événement

Event-based (event-driven) retention

Trigger = déclencheur

Event Based Retention – Preparing the Environment (youtube.com)

Implementing Event-Based Retention (youtube.com)

KQL Keyword Query Language (not CAML)

Propriété Asset ID

C’est possible de créer un type d’événement (event type) au moment de la création d’une étiquette (standard ou enregistrement). Un type d’événement est constitué d’un nom et de sa description.

Tous les types d’événement existants se trouvent dans la section Records management > Manage event type. Trois types d’événement sont proposés par défaut par Microsoft: Employee activity, Expiration or termination of contracts and agreements, Product lifetime.

Au moment où l’événement se produit, il faut aller dans Records management, pour créer un nouvel événement.

QUESTION: est-ce que ‘Records Management’ est nécessaire pour travailler avec des événements et des types d’événement?

À la création de l’événement, c’est lors de l’étape suivante que l’on associe l’événement à un type d’événement.

ATTENTION: il ne faut pas laisser les boîtes ci-dessus vides sans requête car la disposition de tous les fichiers associés aux étiquettes avec le type d’événement sera enclenchée.

Plusieurs étiquettes –> Type d’événement + Asset ID –> Événement (requête pour spécifier quel AssetID)

Étiquette de rétention basée sur un événement

Lorsqu’on applique une étiquette basée sur un événement sur un fichier, le champ ‘Asset ID’ est automatiquement ajouté. Cette colonne s’appelle ‘Compliance Asset ID’ dans l’affichage.

Étiquette basé sur un événement > déclenché par AssetID + Date

SharePoint custom metadata and Event-based Retention – Joanne C Klein

In the past, you could use REST APIs to automate the events. This method is now deprecated and no longer works. Instead, use Microsoft Graph API.

L’étape 8 de l’article de Joanne C Klein est mis à jour dans cet article SharePoint Custom Metadata Event-Based Retention with MSGraph and PowerAutomate | KTNN SharePoint (wordpress.com)

Use the Microsoft Graph records management API – Microsoft Graph v1.0 | Microsoft Learn

Graph Explorer

https://developer.microsoft.com/en-us/graph/graph-explorer

https://graph.microsoft.com/beta/security/labels/retentionLabels

Est-ce qu’on pourrait utiliser un seul type d’événement (event type) pour toutes les étiquettes? En fait, théoriquement oui à condition que tous les ‘Asset ID’ soient uniques par étiquette.

Exemple de event-based retention + auto-apply: Use retention labels to manage SharePoint document lifecycle | Microsoft Learn

Start retention when an event occurs | Microsoft Learn

Exemple à tester

1) Création de 200 politiques de rétention (event-based) P et S

  • Création de près de 200 types d’événement, à moins qu’un même déclencheur soit utilisé par plusieurs étiquettes

2) Création
une métadonnées gérée (banque de termes) avec toute la classification
100 colonnes de site avec la classification spécifique à un type de contenu (ens de docs)
une colonne de site AssetID
une colonne de site Date de déclenchement

3) Création de 100 P types de contenu (ens de docs) avec code de classification (rétention) + AssetID + Date de déclenchement / basé sur le type d’événement

  • Création de 100 S types de contenu (ens de docs) avec code de classification (rétention) + AssetID, sans date de déclenchement

4) Ajouter les types de contenu (ens de docs) sur les bibliothèques – effectué au besoin par les utilisateurs

5) Les utilisateurs créent les dossiers (ens docs) en y ajoutant les métadonnées (code de classification et AssetID)

6) Appliquer l’étiquette de rétention P et S selon le code de classification (auto apply). Il faut créer 200 mécanismes de auto-apply, un pour chaque étiquette.

7) Le propriétaire principal inscrit une date sur un dossier. Un flux Power Automate démarre pour créer un événement (date, AssetID, rétention).

Questions:

  • transformer un dossier en ens de docs
  • permet des dossiers uniquement et non des fichiers
  • est-ce qu’il pourrait y avoir plusieurs dossiers principaux dans des sites différents?

Variante
3) Pas de date
7) Tableau avec les colonnes: code de classification + asset ID + Date – le propriétaire principal remplit le tableau pour déclancher le flux qui démarre d’événement