Gérer les autorisations sur les entités OneNote
**S'applique aux **: Blocs-notes d'entreprise sur Office 365
Vous pouvez utiliser le point de terminaison des autorisations pour gérer les autorisations de lecture ou d'écriture des blocs-notes, groupes de sections et sections.
POST ../permissions
GET ../permissions
GET ../permissions/{permission-id}
DELETE ../permissions/{permission-id}
Notes
La gestion des autorisations est prise en charge pour les blocs-notes Office, personnels et de groupe unifiés Office 365, mais pas pour les ordinateurs portables grand public sur OneDrive.
Construire l’URI de la requête
Pour construire l'URI de requête, commencez par l'URL racine du service pour votre plateforme :
Blocs-notes sur OneDrive Entreprise
https://www.onenote.com/api/v1.0/me/notes/
https://www.onenote.com/api/v1.0/users/{id}/notes/
Blocs-notes de site SharePoint
https://www.onenote.com/api/v1.0/myOrganization/siteCollections/{id}/sites/{id}/notes/
Blocs-notes de groupe unifié
https://www.onenote.com/api/v1.0/myOrganization/groups/{id}/notes/
Ajoutez ensuite le chemin d'accès au bloc-notes, groupe de sections ou entité de section cible, suivi des autorisations ou du point de terminaison des autorisations / {id}.
Votre requête URI complète ressemblera à ces exemples :
https://www.onenote.com/api/v1.0/me/notes/notebooks/{id}/permissions/{id}
https://www.onenote.com/api/v1.0/users/{id}/notes/sectiongroups/{id}/permissions
https://www.onenote.com/api/v1.0/myOrganization/siteCollections/{id}/sites/{id}/notes/notebooks/{id}/permissions
https://www.onenote.com/api/v1.0/myOrganization/groups/{id}/notes/sections/{id}/permissions/{id}
Notes
En savoir plus sur l’URL racine du service.
Créer ou mettre à jour les autorisations
Pour créer ou mettre à jour les autorisations d'un bloc-notes, d'un groupe de sections ou d'une section, envoyez une requête POST au point de terminaison approprié. Vous pouvez créer ou mettre à jour une seule autorisation par requête.
Les autorisations sont appliquées à toutes les entités OneNote le long de la chaîne d'héritage.
Vous pouvez mettre à jour les autorisations pour accorder un accès plus permissif. Pour restreindre l'accès, vous devez cependant supprimer l'autorisation existante et créer une nouvelle autorisation. Voir Héritage d'autorisation et précédence.
Créer ou mettre à jour les autorisations pour un bloc-notes
POST ../notebooks/{notebook-id}/permissions
Créer ou mettre à jour les autorisations pour un groupe de sections
POST ../sectiongroups/{sectiongroup-id}/permissions
Créer ou mettre à jour les autorisations pour une section
POST ../sections/{section-id}/permissions
Dans le corps du message, envoyez un objet JSON avec les paramètres requis.
{
"userRole": "user-role",
"userId": "user-login-id"
}
Paramètre | Description |
---|---|
userRole | Le type d' autorisation : Owner , Contributor , ou Reader . |
userId | Le login de l'utilisateur ou du groupe auquel attribuer l'autorisation. L'API accepte le format de revendications qui inclut le nom du fournisseur d'appartenance (i:0#.f|membership|username@domainname.com ) ou le nom de connexion de l'utilisateur principal uniquement (username@domainname.com ). |
Exemple
La requête suivante crée une autorisation pour le bloc-notes spécifié.
Demande
POST ../v1.0/me/notes/notebooks/{notebook-id}/permissions
Authorization: Bearer {token}
Content-Type: application/json
Accept: application/json
{
"userRole": "Owner",
"userId": "i:0#.f|membership|alexd@domainname.com"
}
Réponse
HTTP/1.1 201 Created
{
"@odata.context":"https://www.onenote.com/api/v1.0/$metadata#me/notes/notebooks('1-313dc828-dd55-4c71-82c3-f9c30a40e7c5')/permissions/$entity",
"userRole":"Owner",
"userId":"i:0#.f|membership|alexd@domainname.com",
"name":"Alex Darrow",
"id":"1-23",
"self":"https://www.onenote.com/api/v1.0/me/notes/notebooks/1-313dc828-dd55-4c71-82c3-f9c30a40e7c5/permissions/1-23",
}
Informations sur les requêtes et les réponses
Les informations suivantes s'appliquent uniquement aux POST /permissions
requêtes.
Demande de données | Description |
---|---|
Protocole | Toutes les demandes utilisent le protocole HTTPS SSL/TLS. |
En-tête Authorization |
S'il est manquant ou non valide, la demande échoue avec un code d'état 401. Voir Authentification avec Azure AD (applications d'entreprise). |
Champ d'application | Notes.ReadWrite.CreatedByApp, Notes.ReadWrite ou Notes.ReadWrite.All |
Données de réponse | Description |
---|---|
Code de succès | Code d’état HTTP 201 |
Corps de la réponse | Une représentation OData de l'autorisation au format JSON. Voir Obtenir des autorisations pour une description d'un objet d'autorisation. |
Erreurs | Si la requête échoue, l'API renvoie les erreurs dans le corps de la réponse. |
En-tête X-CorrelationId | GUID qui permet d’identifier la requête de manière unique. Vous pouvez utiliser cette valeur avec la valeur de l’en-tête Date lorsque vous faites appel au support Microsoft pour résoudre les problèmes. |
Obtenir des autorisations
Pour obtenir les autorisations d'un bloc-notes, d'un groupe de sections ou d'une section, envoyez une requête GET au point de terminaison approprié.
Obtenir des autorisations pour un bloc-notes
GET ../notebooks/{notebook-id}/permissions
Obtenir une autorisation spécifique pour un bloc-notes
GET ../notebooks/{notebook-id}/permissions/{permission-id}
Obtenir des autorisations pour un groupe de sections
GET ../sectiongroups/{sectiongroup-id}/permissions
Obtenir une autorisation spécifique pour un groupe de sections
GET ../sectiongroups/{sectiongroup-id}/permissions/{permission-id}
Obtenir des autorisations pour une section
GET ../sections/{section-id}/permissions
Obtenir une autorisation spécifique pour une section
GET ../sections/{section-id}/permissions/{permission-id}
Les requêtes GET renvoient l'autorisation la plus élevée pour un rôle d'utilisateur sur l'entité cible. Pour plus d'informations, voir Héritage d'autorisation et précédence.
GET /permissions
les requêtes prennent en charge les options de requête OData, comme suit :
GET ../permissions[?filter,orderby,select,top,skip,count]
GET ../permissions/{permission-id}[?select]
Notes
Le point de terminaison des autorisations ne prend pas en charge l'option de requête expand
.
Pour en savoir plus sur l'obtention d'entités OneNote, y compris les options de chaînes de requête prises en charge et des exemples, voir Obtenir le contenu et la structure OneNote.
Objet d'autorisation
Une autorisation contient les propriétés suivantes.
Propriété | Description |
---|---|
nom | Représente le nom d'affichage de l’utilisateur ou de l'entité de sécurité. Exemple : "name":"Everyone" |
id | L'identifiant unique de l'autorisation, dans le formulaire 1-{principal-member-id} . Exemple : "id":"1-4" |
self | L'URL de l'objet d'autorisation. |
userId | Le login de l'utilisateur ou du groupe auquel l'autorisation est attribuée. Cette valeur est toujours renvoyée dans le format des revendications, par exemple : i:0#.f|membership|username@domainname.com . |
userRole | Le type d' autorisation : Owner , Contributor , ou Reader . |
Exemple
La requête suivante obtient toutes les autorisations pour le bloc-notes spécifié.
Demande
GET ../v1.0/me/notes/notebooks/{notebook-id}/permissions
Authorization: Bearer {token}
Accept: application/json
Réponse
HTTP/1.1 200
{
"@odata.context":"https://www.onenote.com/api/v1.0/$metadata#me/notes/notebooks('1-313dc828-dd55-4c71-82c3-f9c30a40e7c5')/permissions",
"value":[
{
"userRole":"Owner",
"userId":"c:0(.s|true",
"name":"Everyone",
"id":"1-4",
"self":"https://www.onenote.com/api/v1.0/me/notes/notebooks/1-313dc828-dd55-4c71-82c3-f9c30a40e7c5/1-4"
},
{
"userRole":"Owner",
"userId":"c:0-.f|rolemanager|spo-grid-all-users/8461cbdd-15a6-45c8-b177-ac24f48a8bee",
"name":"Everyone except external users",
"id":"1-5",
"self":"https://www.onenote.com/api/v1.0/me/notes/notebooks/1-313dc828-dd55-4c71-82c3-f9c30a40e7c5/permissions/1-5"
},
{
"userRole":"Owner",
"userId":"i:0#.f|membership|alexd@domainname.com",
"name":"Alex Darrow",
"id":"1-23",
"self":"https://www.onenote.com/api/v1.0/me/notes/notebooks/1-313dc828-dd55-4c71-82c3-f9c30a40e7c5/permissions/1-23",
}]
}
Informations sur les requêtes et les réponses
Les informations suivantes s'appliquent uniquement aux GET /permissions
requêtes.
Demande de données | Description |
---|---|
Protocole | Toutes les demandes utilisent le protocole HTTPS SSL/TLS. |
En-tête Authorization |
S'il est manquant ou non valide, la demande échoue avec un code d'état 401. Voir Authentification avec Azure AD (applications d'entreprise). |
Champ d'application | Notes.ReadWrite.CreatedByApp, Notes.ReadWrite, ou Notes.ReadWrite.All |
Données de réponse | Description |
---|---|
Code de succès | Un code d'état HTTP 200 et les autorisations demandées. |
Corps de la réponse | Une représentation OData des autorisations au format JSON. |
Erreurs | Si la requête échoue, l'API renvoie les erreurs dans le corps de la réponse. |
En-tête X-CorrelationId | GUID qui permet d’identifier la requête de manière unique. Vous pouvez utiliser cette valeur avec la valeur de l’en-tête Date lorsque vous faites appel au support Microsoft pour résoudre les problèmes. |
Supprimer les autorisations
Pour supprimer une autorisation pour un bloc-notes, un groupe de sections ou une section, envoyez une requête DELETE au point de terminaison approprié. Vous pouvez supprimer une autorisation par requête.
Lorsque vous supprimez une autorisation, elle est supprimée de toutes les entités OneNote dans la chaîne d'héritage.
Supprimer une autorisation pour un bloc-notes
DELETE ../notebooks/{notebook-id}/permissions/{permission-id}
Supprimer une autorisation pour le groupe de sections
DELETE ../sectiongroups/{sectiongroup-id}/permissions/{permission-id}
Supprimer une autorisation pour une section
DELETE ../sections/{section-id}/permissions/{permission-id}
Exemple
La requête suivante supprime une autorisation pour le bloc-notes spécifié.
DELETE ../v1.0/me/notes/notebooks/1-313dc828-dd55-4c71-82c3-f9c30a40e7c5/permissions/1-23
Authorization: Bearer {token}
Accept: application/json
Informations sur les requêtes et les réponses
Les informations suivantes s'appliquent uniquement aux DELETE /permissions
requêtes.
Demande de données | Description |
---|---|
Protocole | Toutes les demandes utilisent le protocole HTTPS SSL/TLS. |
En-tête Authorization |
S'il est manquant ou non valide, la demande échoue avec un code d'état 401. Voir Authentification avec Azure AD (applications d'entreprise). |
Champ d'application | Notes.ReadWrite.CreatedByApp, Notes.ReadWrite ou Notes.ReadWrite.All |
Données de réponse | Description |
---|---|
Code de succès | Un code d'état HTTP 204. |
Erreurs | Si la requête échoue, l'API renvoie les erreurs dans le corps de la réponse. |
En-tête X-CorrelationId | GUID qui permet d’identifier la requête de manière unique. Vous pouvez utiliser cette valeur avec la valeur de l’en-tête Date lorsque vous faites appel au support Microsoft pour résoudre les problèmes. |
Autorisations, héritage et précédence
Vous pouvez définir les autorisations suivantes sur les blocs-notes, les groupes de sections et les sections.
Autorisation | Description |
---|---|
Lecteur | Accès en lecture seule aux blocs-notes, aux groupes de sections et aux sections. |
Donateur | Peut ajouter, modifier et supprimer des blocs-notes, des groupes de sections et des sections. |
Propriétaire | Dispose de toutes les autorisations ci-dessus, peut aussi gérer les autorisations (obtenir, créer et supprimer). |
Pour gérer les autorisations sur les entités OneNote, il faut comprendre l'héritage et la précédence des autorisations.
Héritage. Les entités héritent des autorisations de leur parent. Ainsi, les blocs-notes héritent des autorisations de la bibliothèque de documents qui contient le bloc-notes. Et à leur tour, ces autorisations sont héritées par les groupes de sections et les sections enfants dans le bloc-notes. Lorsque vous définissez des autorisations explicites sur un bloc-notes, un groupe de sections ou une section, les autorisations sont également propagées à ses objets enfants.
Précédence. Lorsque des autorisations conflictuelles sont définies sur une entité OneNote, la permission la plus élevée (la plus permissive) est honorée. Les utilisateurs et les groupes peuvent recevoir des niveaux d'accès conflictuels lorsque plusieurs autorisations sont appliquées à une entité (explicitement ou par héritage) ou lorsque l'utilisateur ou le groupe appartient à plusieurs rôles.
Ces principes déterminent comment l'API OneNote gère les autorisations. Par exemple :
Lorsque vous créez une autorisation pour un bloc-notes ou un groupe de sections, l'autorisation est transmise à tous les enfants.
Lorsque vous supprimez une autorisation pour un bloc-notes ou un groupe de sections, l'autorisation est supprimée de tous les enfants.
Lorsque vous obtenez des autorisations, l'API OneNote renvoie uniquement l'autorisation la plus élevée pour les rôles qui ont des autorisations conflictuelles.
Vous pouvez mettre à jour les autorisations pour accorder un accès plus permissif à un utilisateur ou un groupe. Mais si vous souhaitez restreindre l'accès, vous devez d'abord supprimer l'autorisation la plus permissive, puis créer une nouvelle autorisation avec l'accès restrictif.
En effet, une requête
POST /permissions
ajoute en fait un rôle d'utilisateur à la collection d'autorisations pour l'entité, et l'accès le plus permissif est honoré. En d'autres termes, vous pouvez mettre à jour une autorisation Lecteur pour avoir un accès Contributeur ou Propriétaire, mais vous ne pouvez pas mettre à jour une autorisation Contributeur pour autoriser uniquement l'accès Lecteur.
Construire l’URL racine du service OneNote
L’URL racine du service OneNote utilise le format suivant pour tous les appels à OneNote API.
https://www.onenote.com/api/{version}/{location}/notes/
Le segment version
dans l’URL représente la version de OneNote API que vous souhaitez utiliser.
Utiliser
v1.0
pour un code de production stable.Utilisez
beta
pour tester une fonctionnalité en cours de développement. Les fonctions et fonctionnalités en version bêta peuvent être sujettes à des modifications. Nous vous recommandons donc de ne pas les utiliser dans votre code de production.
Le segment location
dans l’URL représente la localisation des blocs-notes auxquels vous souhaitez accéder :
Blocs-notes sur OneDrive Entreprise
Utilisez
me
pour le contenu OneNote appartenant à l’utilisateur actuel.Utilisez
users/{id}
pour le contenu OneNote que l’utilisateur spécifié (dans l’URL) a partagé avec l’utilisateur actuel. Utilisez l’API de Azure AD Graph pour obtenir les ID utilisateurs.
Blocs-notes de sites SharePoint
Les sites d’équipe et d’autres sites SharePoint peuvent contenir des blocs-notes OneNote dans leurs bibliothèques de documents.
Utilisez
myOrganization/siteCollections/{id}/sites/{id}
pour le contenu OneNote dans un site du client hébergé auquel l'utilisateur actuel est connecté. Seul le client actuel est pris en charge, accessible à l'aide dumyOrganization
mot clé. En savoir plus sur l’obtention des ID de sites.
Blocs-notes de groupe unifié
Les groupes unifiés (également appelés groupes Office 365) font partie de l’expérience connectée Office 365. Les membres du groupe peuvent partager des blocs-notes, des fichiers et des e-mails.
Utilisez
myOrganization/groups/{id}
pour le contenu OneNote dans le groupe spécifié dont l’utilisateur actuel est membre. Les groupes unifiés sont le seul type de groupe pris en charge. Utilisez l’API de Azure AD Graph pour obtenir les ID de groupes.
Utilisez la méthode FromUrl pour obtenir la collection de sites et les ID de sites
Vous pouvez utiliser la méthode FromUrl pour obtenir la collection de sites et les ID de sites pour une URL de site absolue spécifiée. Vous devez effectuer cet appel uniquement lorsque cela est nécessaire, puis stocker les valeurs pour une utilisation ultérieure.
Le format de l’URL de site dépend de votre configuration, par exemple https://domain.sharepoint.com/site-a
ou https://domain.com/sites/site-a
.
Exemple de requête
GET https://www.onenote.com/api/v1.0/myOrganization/siteCollections/FromUrl(url='{full-path-to-SharePoint-site}')
Authorization: Bearer {token}
Accept: application/json
Exemple de réponse
{"@odata.context":"https://www.onenote.com/api/v1.0/$metadata#Microsoft.OneNote.Api.SiteMetadata", "siteCollectionId":"09d1a587-a84b-4264-3d15-669429be8cc5", "siteId":"d9e4d5c8-683f-4363-89ae-18c4e3da91e9"}
Conditions préalables à l’utilisation de FromUrl et pour travailler avec des blocs-notes de sites SharePoint :
Vous pouvez uniquement créer des blocs-notes, des groupes de sections, des sections et des pages OneNote sur des sites disposant d’une bibliothèque de documents par défaut. (Certains modèles de sites ne créent pas de bibliothèque de documents par défaut.) Toutefois, les demandes GET renvoient le contenu OneNote de toutes les bibliothèques de documents sur le site.
L’URL de base du service OneNote n’est pas modifiable, ce qui signifie que vous ne pouvez pas utiliser un chemin d’accès au site de l’API REST SharePoint et ensuite y coller le point de terminaison
notes
.L’utilisateur au nom duquel vous appelez doit être membre du site.
FromUrl fonctionne uniquement avec les sites qui ont été indexés. L’indexation d’un nouveau site peut prendre plusieurs heures.