

Avis de fin de support : le 31 mars 2027, le support d'Amazon AWS WorkMail prendra fin. Après le 31 mars 2027, vous ne pourrez plus accéder à la WorkMail console Amazon ni aux WorkMail ressources Amazon. Pour plus d'informations, consultez la page [de WorkMail fin de support d'Amazon](https://docs.aws.amazon.com/workmail/latest/adminguide/workmail-end-of-support.html). 

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Utilisation de rôles d'usurpation d'identité
<a name="using-impersonation-roles"></a>

Pour accéder aux données des boîtes aux lettres, utilisez l'action Amazon WorkMail API`AssumeImpersonationRole`. Pour plus de détails sur Amazon WorkMail APIs, consultez la [référence des API](https://docs.aws.amazon.com/workmail/latest/APIReference/Welcome.html).

`AssumeImpersonationRole`renvoie un`Token`. Cela `Token` doit être transmis dans les 15 minutes au protocole EWS via l'en-tête HTTP`Authorization`.

Les exemples suivants montrent comment utiliser les rôles d'usurpation d'identité avec le protocole EWS. Les constantes utilisées dans les exemples spécifient les détails suivants propres à votre organisation et à votre compte : 
+ `WORKMAIL_ORGANIZATION_ID`— ID d' WorkMail organisation Amazon
+ `IMPERSONATION_ROLE_ID`— ID du rôle d'usurpation d'identité 
+ `WORKMAIL_EWS_URL`— Point de terminaison EWS disponible sur les [ WorkMail points de terminaison et quotas Amazon](https://docs.aws.amazon.com/general/latest/gr/workmail.html)
+ `EMAIL_ADDRESS`— Adresse e-mail de la boîte aux lettres de l'utilisateur 

**Example Java — [API Java EWS](https://github.com/OfficeDev/ews-java-api)**  

```
import software.amazon.awssdk.services.workmail.WorkMailClient;
import software.amazon.awssdk.services.workmail.model.AssumeImpersonationRoleRequest;
import software.amazon.awssdk.services.workmail.model.AssumeImpersonationRoleResponse;

import microsoft.exchange.webservices.data.core.ExchangeService;
import microsoft.exchange.webservices.data.core.enumeration.misc.ExchangeVersion;
import microsoft.exchange.webservices.data.misc.ImpersonatedUserId;
import microsoft.exchange.webservices.data.core.enumeration.misc.ConnectingIdType;

// ...

AssumeImpersonationRoleResponse response = workMailClient.assumeImpersonationRole(
    AssumeImpersonationRoleRequest.builder()
        .organizationId(WORKMAIL_ORGANIZATION_ID)
        .impersonationRoleId(IMPERSONATION_ROLE_ID)
        .build());

ExchangeService exchangeService = new ExchangeService(ExchangeVersion.Exchange2010_SP2);
exchangeService.setUrl(URI.create(WORKMAIL_EWS_URL));
exchangeService.getHttpHeaders().put("Authorization", "Bearer " + response.token());
exchangeService.setImpersonatedUserId(new ImpersonatedUserId(ConnectingIdType.SmtpAddress, EMAIL_ADDRESS));
```

**Example .Net — [API gérée EWS](https://github.com/OfficeDev/ews-managed-api)**  

```
using Amazon.WorkMail;
using Amazon.WorkMail.Model;

using Microsoft.Exchange.WebServices.Data;

// ...

AssumeImpersonationRoleRequest request = new AssumeImpersonationRoleRequest();
request.OrganizationId = WORKMAIL_ORGANIZATION_ID;
request.ImpersonationRoleId = IMPERSONATION_ROLE_ID;
AssumeImpersonationRoleResponse response = workMailClient.AssumeImpersonationRole(request);

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP2);
service.Url = new Uri(WORKMAIL_EWS_URL);
service.HttpHeaders.Add("Authorization", "Bearer " + response.Token);
service.ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.SmtpAddress, EMAIL_ADDRESS);
```

**Example Python — [Exchangelib](https://pypi.org/project/exchangelib/)**  

```
import boto3

from requests.auth import AuthBase
from exchangelib.transport import AUTH_TYPE_MAP
from exchangelib import Configuration, Account, Version, IMPERSONATION
from exchangelib.version import EXCHANGE_2010_SP2


work_mail_client = boto3.client("workmail")

class ImpersonationRoleAuth(AuthBase):
    def __init__(self):
         self.token = work_mail_client.assume_impersonation_role(
             OrganizationId=WORKMAIL_ORGANIZATION_ID,
             ImpersonationRoleId=IMPERSONATION_ROLE_ID
        )["Token"]

     def __call__(self, r):
         r.headers["Authorization"] = "Bearer " + self.token
         return r

AUTH_TYPE_MAP["ImpersonationRoleAuth"] = ImpersonationRoleAuth

ews_config = Configuration(
     service_endpoint=WORKMAIL_EWS_URL,
     version=Version(build=EXCHANGE_2010_SP2),
     auth_type="ImpersonationRoleAuth"
)
ews_account = Account(
     config=ews_config,
     primary_smtp_address=EMAIL_ADDRESS,
     access_type=IMPERSONATION
)
```