Accès délégué et EWS dans ExchangeDelegate access and EWS in Exchange

Découvrez comment utiliser l’API managée EWS et EWS dans Exchange pour fournir un accès délégué aux boîtes aux lettres des utilisateurs.Find out how to use the EWS Managed API and EWS in Exchange to provide delegate access to users' mailboxes.

Vous pouvez permettre à des utilisateurs d'accéder aux boîtes aux lettres d'autres utilisateurs de trois façons :You can enable users to access other users' mailboxes in one of three ways:

  • En ajoutant des délégués et en spécifiant des autorisations pour chacun d’entre eux.By adding delegates and specifying permissions for each delegate.

  • En modifiant directement les autorisations du dossier.By modifying folder permissions directly.

  • En utilisant l’emprunt d’identité.By using impersonation.

La délégation et les autorisations de dossier conviennent mieux si vous souhaitez accorder l'accès uniquement à certains utilisateurs, car vous devez ajouter les autorisations individuellement pour chaque boîte aux lettres.Delegation and folder permissions are best when you're only granting access to a few users, because you have to add permissions individually to each mailbox. L’emprunt d’identité est le meilleur choix lorsque vous avez affaire à des quantités de boîtes aux lettres, car vous pouvez facilement activer un compte de service pour accéder à chaque boîte aux lettres dans une base de données.Impersonation is the best choice when you're dealing with quantities of mailboxes, because you can easily enable one service account to access every mailbox in a database. La Figure 1 présente quelques-unes des différences entre chaque type d'accès.Figure 1 shows some of the differences between each type of access.

Figure 1. Méthodes d'accès aux boîtes aux lettres des autres utilisateursFigure 1. Ways to access other users' mailboxes

Diagramme montrant les types d’accès à la boîte aux lettres, la relation entre les propriétaires de boîtes aux lettres et le délégué pour chaque type, ainsi que le type d’autorisation. Autorisations « Envoyer pour le compte de » pour les autorisations de dossier et/ou délégation. Autorisations « Envoyer en tant que » pour l’emprunt d’identité.

Lorsqu’il s’agit d’envoyer ou de planifier des réunions, les délégués peuvent recevoir des autorisations « Envoyer de la part de », de sorte que le destinataire d’un courrier électronique ou d’une demande de réunion envoyé par un délégué verra « délégué de la part du propriétaire de la boîte aux lettres » lorsqu’il recevra la demande de réunion ou de messagerie dans Outlook.When it comes to sending mail or scheduling meetings, delegates can be given "send on behalf of" permissions, so the recipient of an email or a meeting request that was sent by a delegate will see " delegate on behalf of mailbox owner " when they receive the email or meeting request in Outlook. Y compris le texte « envoyer de la part de » est un détail d’implémentation cliente qui peut être créé à l’aide des valeurs « de » et « expéditeur ».Including the "send on behalf of" text is a client implementation detail - and can be created by using the "from" and "sender" values. La valeur « de » indique le propriétaire de la boîte aux lettres, et la valeur « sender » indique le délégué qui a envoyé le message.The "from" value indicates the mailbox owner, and the "sender" value indicates the delegate that sent the mail. Si un compte de service qui emprunte l’identité d’un utilisateur envoie un message électronique ou planifie une réunion pour le propriétaire de la boîte aux lettres, le message est « envoyé en tant que » le propriétaire de la boîte aux lettres.If a service account impersonating a user sends an email or schedules a meeting for the mailbox owner, the message is "sent as" the mailbox owner. Il n'existe aucun moyen pour le destinataire de savoir que le message a été envoyé par le compte de service.There is no way for the recipient to know the mail was sent by the service account. Les utilisateurs disposant des autorisations de dossier et non de l’accès délégué ne sont pas en mesure de « envoyer en tant que » ou « envoyer de la part de » d’un propriétaire de boîte aux lettres.Users who are granted folder permissions and not delegate access are not able to "send as" or "send on behalf of" of a mailbox owner. Ils ont accès aux dossiers de boîte aux lettres et peuvent être en mesure de créer des éléments dans les dossiers, mais ils ne peuvent pas envoyer les éléments.They have access to the mailbox folders, and might be able to create items in the folders, but they cannot send the items.

Quand est-il approprié de modifier directement les autorisations de dossier ?When is it appropriate to modify folder permissions directly? En règle générale, lorsque vous souhaitez fournir à un utilisateur l’accès à un dossier, mais ne pas accorder à l’utilisateur les autorisations « Envoyer de la part de », lorsque vos autorisations requises ne correspondent pas aux valeurs d’énumération de l’API managée EWS DelegateFolderPermissionLevel ou aux valeurs de l’élément permissionLevel EWS, ou lorsque vous souhaitez fournir à un utilisateur l’accès à un seul dossier personnalisé.Generally, when you want to provide a user access to a folder, but do not want to grant the user "send on behalf of" permissions, when your permissions requirements do not map to the DelegateFolderPermissionLevel EWS Managed API enumeration values or the PermissionLevel EWS element values, or when you want to provide a user access to a single custom folder.

Si vous avez uniquement besoin de modifier les autorisations de dossier pour atteindre votre objectif, et que vous n’avez pas besoin d’ajouter un délégué (autrement dit, vous n’avez pas besoin des autorisations « Envoyer de la part de »), consultez la rubrique définir les autorisations de dossier pour un autre utilisateur à l’aide d’EWS dans Exchange.If you only need to modify folder permissions to achieve your goal, and do not need to add a delegate (that is, you don't need "send on behalf of" permissions), see Set folder permissions for another user by using EWS in Exchange.

Notez que vous pouvez également utiliser Outlook ou Exchange Server PowerShell (Exchange Management Shell) pour configurer l’accès délégué.Note that you can also use Outlook or the Exchange Server PowerShell (Exchange Management Shell) to set up delegate access.

Comment fonctionne l’accès délégué ?How does delegate access work?

L’accès délégué permet aux utilisateurs d’accéder à tout ou partie des dossiers du propriétaire de la boîte aux lettres et d’agir au nom du propriétaire de la boîte aux lettres.Delegate access enables users to access some or all of the mailbox owner's folders and act on behalf of the mailbox owner. Le propriétaire de la boîte aux lettres peut être un utilisateur ou une ressource, comme une salle de conférence.The mailbox owner can be a user, or a resource, like a conference room. Par exemple, un réceptionniste peut recevoir des autorisations déléguées pour le dossier calendrier d’une salle de conférence, afin de gérer les demandes de réservation.For example, a receptionist can be granted delegate permissions to a conference room's calendar folder, to handle booking requests. Vous pouvez utiliser l’API managée EWS ou EWS pour autoriser le propriétaire de la boîte aux lettres ou un administrateur à ajouter un délégué, à spécifier les dossiers auxquels le délégué peut accéder, puis à spécifier les autorisations pour ce dossier.You can use the EWS Managed API or EWS to enable the mailbox owner or an administrator to add a delegate, specify what folders the delegate can access, and then specify permissions for that folder. Les délégués peuvent être autorisés à accéder aux dossiers suivants :Delegates can be granted access to the following folders:

  • CalendrierCalendar

  • TâchesTasks

  • Boîte de réceptionInbox

  • ContactsContacts

  • NotesNotes

  • JournalJournal

Lorsqu’un utilisateur dispose d’un accès délégué à un ou plusieurs de ces dossiers, il peut créer, obtenir, mettre à jour, supprimer, copier et Rechercher des éléments de ce dossier et de tous les dossiers enfants, en fonction des autorisations définies sur le dossier.When a user has delegate access to one or more of these folders, they can create, get, update, delete, copy, and search for items in that folder and any child folders, depending on the permissions set on the folder. La manière dont l’application effectue ces actions varie selon que l’accès explicite ou implicite est requis.The way in which the application performs these actions depends on whether explicit or implicit access is required.

Déléguer des autorisationsDelegate permissions

Lorsqu’un administrateur ou un propriétaire de boîte aux lettres ajoute un délégué à une boîte aux lettres, il peut également définir le niveau d’autorisation pour un ou plusieurs dossiers.When an administrator or mailbox owner adds a delegate to a mailbox, they can also set the permission level for one or more folders. Si aucun niveau d’autorisation n’est défini pour un dossier, la valeur d’autorisation est définie par défaut sur aucun.If a permission level is not set for a folder, the permission value defaults to None. Plusieurs utilisateurs peuvent avoir le même niveau d’autorisation sur un dossier, et les utilisateurs peuvent avoir différents niveaux d’autorisation pour différents dossiers.Multiple users can have the same permission level on a folder, and users can have different permission levels for different folders. Si vous utilisez l’API managée EWS, vous utilisez la propriété DelegateUser. Permissions , qui contient l’une des valeurs d’énumération DelegateFolderPermissionLevel pour chaque dossier, pour définir des autorisations de délégué sur les dossiers.If you're using the EWS Managed API, you use the DelegateUser.Permissions property, which contains one of the DelegateFolderPermissionLevel enumeration values for each folder, to set delegate permissions on folders. Si vous utilisez EWS, vous utilisez l’élément DelegatePermissions pour définir des autorisations de délégué et l’élément permissionLevel pour définir le niveau d’autorisation.If you're using EWS, you use the DelegatePermissions element to set delegate permissions, and the PermissionLevel element to define the permission level.

Tableau 2. Niveaux d’autorisation de déléguéTable 2. Delegate permission levels

Niveau d’autorisationPermission level DescriptionDescription
AucuneNone
Il s’agit de la valeur par défaut de tous les dossiers.This is the default value for all folders.
AuteurAuthor
Un délégué peut lire et créer des éléments, et modifier et supprimer des éléments qu’ils créent.A delegate can read and create items, and modify and delete items they create. Par exemple, un délégué peut créer des demandes de tâches et des demandes de réunion directement dans le dossier de tâches ou de calendrier du propriétaire de la boîte aux lettres, puis envoyer l’un ou l’autre élément du nom du propriétaire de la boîte aux lettres.For example, a delegate can create task requests and meeting requests directly in the mailbox owner's Task or Calendar folder, and then send either item on the mailbox owner's behalf.
ÉditeurEditor
Un délégué peut effectuer tout ce qu’un auteur peut faire, et également modifier et supprimer les éléments créés par le propriétaire de la boîte aux lettres.A delegate can do everything an Author can do, and also modify and delete the items the mailbox owner created.
RelecteurReviewer
Un délégué peut lire des éléments ; par exemple, un délégué avec l’autorisation relecteur peut lire les messages de la boîte de réception d’une autre personne.A delegate can read items; for example a delegate with Reviewer permission can read messages in another person's Inbox.
PersonnaliséCustom
Le propriétaire de la boîte aux lettres a accordé un ensemble personnalisé d’autorisations au délégué.The mailbox owner has granted a custom set of permissions to the delegate.

La propriété de l’API managée EWS DelgateUser. ViewPrivateItems et l’élément ViewPrivateItems EWS sont un paramètre global qui affecte tous les dossiers du propriétaire de la boîte aux lettres, y compris tous les dossiers courrier, contacts, calendrier, tâches, notes et journal.The DelgateUser.ViewPrivateItems EWS Managed API property and the ViewPrivateItems EWS element is a global setting that affects all the mailbox owner's folders, including all Mail, Contacts, Calendar, Tasks, Notes, and Journal folders. Vous ne pouvez pas autoriser l’accès aux éléments privés dans un seul dossier.You cannot allow access to private items in only one folder.

Accès expliciteExplicit access

En d’autres termes, l’accès explicite est le moyen pour les délégués d’effectuer des actions sur les dossiers ou les éléments d’un propriétaire de boîte aux lettres.Simply put, explicit access is the entry way for delegates to perform actions on a mailbox owner's folders or items. L’accès explicite est accordé à un délégué lorsqu’il inclut le nom de dossier connu du dossier d’un propriétaire de boîte aux lettres, ainsi que l’adresse SMTP du propriétaire de la boîte aux lettres dans une demande adressée au serveur.Explicit access is granted to a delegate when they include the well-known folder name for a mailbox owner's folder along with the mailbox owner's SMTP address in a request to the server. L’accès est explicite car la demande du délégué indique explicitement que le contexte de la méthode ou de l’opération est la boîte aux lettres du propriétaire de la boîte aux lettres, et non la boîte aux lettres du délégué.The access is explicit because the delegate's request explicitly states that the context for the method or operation is the mailbox owner's mailbox, and not the delegate's mailbox.

L’accès explicite définit le contexte de toutes les méthodes ou opérations effectuées sur les dossiers ou les éléments qui déplacent vers l’avant.Explicit access defines the context for all methods or operations performed on the folders or items moving forward. Tous les ID d’élément et de dossier renvoyés lorsque l’accès explicite est défini de manière unique comme appartenant au propriétaire de la boîte aux lettres (mais pas au format lisible par l’utilisateur).All item and folder IDs returned when the explicit access is set uniquely identify themselves as belonging to the mailbox owner (although not in any human readable format). De cette manière, l’application n’a pas besoin de spécifier à nouveau l’adresse SMTP du propriétaire de la boîte aux lettres ; le contexte est masqué dans les identificateurs.This way, the application doesn't need to specify the mailbox owner's SMTP address again and again; the context is hidden in the identifiers. Une fois qu’un élément ou un dossier est identifié, un délégué utilise l' accès implicite pour modifier l’élément.After an item or folder is identified, a delegate actually uses implicit access to modify the item. La figure suivante illustre le processus d’accès explicite et implicite.The following figure shows the process of getting explicit and implicit access.

Figure 2. Demande d’accès explicite et implicite à un élément ou dossierFigure 2. Requesting explicit and implicit access to an item or folder

Diagramme qui illustre l’application envoyant une demande d’accès explicite, une réponse du serveur, puis d’une demande d’accès implicite et une réponse du serveur.

Vous pouvez définir un accès explicite dans de nombreux scénarios différents.You can set explicit access in many different scenarios. En gros, chaque fois que vous envoyez un ID de dossier dans une méthode ou une opération, vous pouvez définir un accès explicite.Essentially, any time you're sending a folder ID in a method or operation, you can set explicit access. Il peut s’agir notamment de trouver des dossiers, de trouver des rendez-vous, d’obtenir des éléments, de trouver des conversations, etc.This can include finding folders, finding appointments, getting items, finding conversations, and so on.

Accès explicite et API managée EWSExplicit access and the EWS Managed API

Vous pouvez lancer un accès délégué explicite à l’aide de l’une des méthodes surchargées suivantes qui prennent un paramètre d’entrée FolderId pour identifier le dossier cible :You can initiate explicit delegate access by using any of the following overloaded methods that take a FolderId input parameter to identify the target folder:

Vous pouvez utiliser le paramètre FolderId dans chacune de ces méthodes pour identifier le dossier cible du propriétaire de la boîte aux lettres, comme suit.You can use the FolderId parameter in each of these methods to identify the mailbox owner's target folder, as follows.

new FolderId(WellKnownFolderName.Calendar, "primary@contoso.com");

Par exemple, pour établir une liaison avec le dossier de calendrier, le FolderId dans cette méthode de liaison spécifie le nom de dossier connu et l’adresse SMTP du propriétaire de la boîte aux lettres.For example, to bind to the Calendar folder, the FolderId in this Bind method specifies the well-known folder name, and the mailbox owner's SMTP address.

CalendarFolder calendar = CalendarFolder.Bind(service, new FolderId(WellKnownFolderName.Calendar, "primary@contoso.com"), new PropertySet());

En spécifiant le nom de dossier connu et l’adresse SMTP, le délégué peut établir une liaison avec le dossier de calendrier du propriétaire de la boîte aux lettres, ce qui permet un accès explicite au dossier.By specifying the well-known folder name and the SMTP address, the delegate can bind to the mailbox owner's Calendar folder — thereby gaining explicit access to the folder. Toutes les demandes ultérieures d' accès implicite aux éléments du dossier dépendent du contexte renvoyé dans les ID d’élément et les ID de dossier.All subsequent requests for implicit access to items in the folder then rely on the context returned in the item IDs and folder IDs. Les identificateurs contiennent essentiellement le contexte pour les appels d’accès délégué implicite.Essentially, the identifiers contain the context for the implied delegate access calls. Pour récupérer l’ID d’un élément qui répond à des critères spécifiques, procédez comme suit.Or, to retrieve the item ID of an item that meets specific criteria, use the following.

FindItemsResults<Item> results = service.FindItems(new FolderId(WellKnownFolderName.Calendar, "primary@contoso.com"), filter, view);

Dans ce cas, l’ID d’élément est renvoyé, puis le délégué peut ensuite utiliser l’accès implicite pour modifier l’élément à l’aide de l’ID d’élément.In this case the item ID is returned, and then the delegate can then use implicit access to make changes to the item by using the item ID.

Il n’est pas nécessaire de lancer à nouveau un accès explicite tant que vous n’avez pas besoin d’un ID d’élément ou d’un ID de dossier que vous n’avez pas accessible via l’accès explicite existant.You don't have to initiate explicit access again until you require an item ID or a folder ID that you didn't access via the existing explicit access.

Accès explicite et EWSExplicit access and EWS

Vous pouvez lancer un accès explicite à l’aide des opérations GetFolder, FindItemou FindFolder .You can initiate explicit access by using the GetFolder, FindItem, or FindFolder operations. Ces opérations offrent la possibilité d’utiliser l’élément DistinguishedFolderId pour identifier le dossier cible.These operations provide the option to use the DistinguishedFolderId element to identify the target folder. L’élément DistinguishedFolderId possède un seul élément enfant facultatif, l’élément Mailbox .The DistinguishedFolderId element has a single optional child element, the Mailbox element. L’élément Mailbox , lorsqu’il est utilisé en tant qu’enfant de l’élément DistinguishedFolderId , spécifie la boîte aux lettres pour laquelle le délégué accède.The Mailbox element, when used as a child of the DistinguishedFolderId element, specifies the mailbox for the delegate to access. Si l’utilisateur appelant est autorisé à accéder au dossier du propriétaire de la boîte aux lettres, la réponse contiendra une collection d’identificateurs vers des éléments ou des dossiers de cette boîte aux lettres.If the calling user has permission to access the mailbox owner's folder, the response will contain a collection of identifiers to items or folders in that mailbox. Les identificateurs d’élément et de dossier qui sont renvoyés dans la réponse peuvent être utilisés pour l’accès délégué implicite.The item and folder identifiers that are returned in the response can be used for implicit delegate access.

Accès impliciteImplicit access

L’accès implicite est utilisé après qu’un délégué a récupéré l’ID d’un élément ou d’un dossier dans la boîte aux lettres du propriétaire de la boîte aux lettres et que le délégué souhaite mettre à jour, supprimer ou copier l’élément.Implicit access is used after a delegate has retrieved the ID for an item or folder in the mailbox owner's mailbox and the delegate wants to update, delete, or copy the item. Lorsque le délégué utilise cet ID d’élément ou de dossier dans une demande, les modifications sont apportées à l’élément dans la boîte aux lettres du propriétaire de la boîte aux lettres.When the delegate uses that item or folder ID in a request, the changes are made to the item in the mailbox owner's mailbox. Le délégué n’a pas besoin d’inclure l’adresse SMTP du propriétaire de la boîte aux lettres.The delegate does not have to include the mailbox owner's SMTP address.

Par exemple, lorsqu’un délégué a l’ID de l’un des dossiers du propriétaire de la boîte aux lettres, le délégué peut effectuer une opération FindItem sur ce dossier à l’aide de l’ID de dossier, sans identifier explicitement la boîte aux lettres du propriétaire de la boîte aux lettres.For example, when a delegate has the ID of one of the mailbox owner's folders, the delegate can perform a FindItem operation on that folder by using the folder ID, without explicitly identifying the mailbox owner's mailbox. À ce stade, le délégué peut effectuer des actions sur le dossier du propriétaire de la boîte aux lettres à l’aide des ID renvoyés dans les réponses.At that point, the delegate can perform actions on the mailbox owner's folder by using the IDs that are returned in the responses.

Accès implicite et API managée EWSImplicit access and the EWS Managed API

Si un ID d’élément a été récupéré par la méthode FindItems , cet ID d’élément peut être utilisé dans un appel de méthode suivant . bind pour établir une liaison avec l’élément.If an item ID was retrieved by the FindItems method, that item ID can be used in a subsequent Item.Bind method call to bind to the item. Vous pouvez ensuite appeler la méthode Item. Update, Item. Deleteou Item. Copy , ou un appel de méthode qui requiert un ID d’élément, si nécessaire pour effectuer votre tâche.You can then call the Item.Update, Item.Delete, or Item.Copy method — or any method call that requires an item ID — as needed to complete your task. Tant que le délégué dispose des autorisations appropriées sur le dossier qui contient l’élément (et, le cas échéant, le dossier vers lequel se déplace l’élément), le délégué peut effectuer des modifications en fonction de leurs niveaux d’autorisation.As long as the delegate has appropriate permissions to the folder that contains the item (and, if applicable, the folder the item is moving to), the delegate can make changes according to their permission levels.

Accès implicite et EWSImplicit access and EWS

Si un ID d’élément a été récupéré par l’opération FindItem , cet ID d’élément peut être utilisé dans les opérations GetItem suivantes pour effectuer une liaison à l’élément.If an item ID was retrieved by the FindItem operation, that item ID can be used in subsequent GetItem operations to bind to the item. Vous pouvez ensuite appeler l’opération UpdateItem, DeleteItemou CopyItem , ou toute opération nécessitant un ID d’élément, selon vos besoins pour effectuer votre tâche.You can then call the UpdateItem, DeleteItem, or CopyItem operation — or any operation that requires an item ID — as needed to complete your task. Tant que le délégué dispose des autorisations appropriées sur le dossier qui contient l’élément (et, le cas échéant, le dossier vers lequel se déplace l’élément), le délégué peut effectuer des modifications en fonction de leurs niveaux d’autorisation.As long as the delegate has appropriate permissions to the folder that contains the item (and, if applicable, the folder the item is moving to), the delegate can make changes according to their permission levels.

Dans cette sectionIn this section

Voir aussiSee also