Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Découvrez comment configurer l’attribut SameSite pour les cookies de session (CrmOwinAuth) dans Microsoft Dataverse et Dynamics 365. Ce paramètre renforce la sécurité en contrôlant la façon dont votre cookie de session est partagé dans les scénarios intersites.
Le paramètre de cookie SameSite contrôle la façon dont les navigateurs partagent votre cookie de session (CrmOwinAuth) utilisé dans Dataverse et Dynamics 365. Ce cookie stocke des informations relatives à la gestion de la session.
Pourquoi utiliser SameSite ?
| Paramètre | Description | Recommandation |
|---|---|---|
| Souple | Les cookies sont envoyés pour la navigation de niveau supérieur, c’est-à-dire les clics sur des liens, mais pas lors de l’envoi de formulaires intersites tels que POST, PUT, DELETE, PATCH. | Recommandé dans la plupart des scénarios. |
| None | Des cookies sont toujours envoyés. Ce paramètre peut être nécessaire pour les intégrations telles que le Dynamics 365 intégré dans les iframes ou les intégrations personnalisées. Il s’agit du paramètre par défaut. | Ce paramètre peut être utilisé pour les intégrations en fonction des demandes intersites. |
| Strict | Les cookies ne sont jamais envoyés avec les requêtes intersites, même pour la navigation de haut niveau dans les scénarios intersites. | Ce paramètre peut être utilisé pour les environnements très sensibles. Cela peut également avoir un impact sur l’expérience utilisateur. |
Remarques importantes
Plusieurs instances de Dynamics 365 dans une session de navigateur (critique)
Lorsque vous vous connectez à des environnements Dynamics 365, les navigateurs créent un cookie de session (CrmOwinAuth) qui mémorise votre connexion. Ce cookie est partagé entre tous les environnements Dynamics 365 sous le même domaine parent (crm.dynamics.com).
Si vous vous connectez à plusieurs environnements Dynamics 365 ou Power Platform, comme un environnement de production et un environnement de test dans une seule session de navigateur, le paramètre de sécurité SameSite appliqué au premier environnement s’applique automatiquement aux autres environnements dans la même session de navigateur. Cela peut entraîner un comportement inattendu dans les environnements où vous n’avez pas explicitement défini la configuration SameSite.
Actions recommandées
- Utilisez des sessions de navigateur ou des profils de navigateur distincts pour chaque environnement.
- Effacez les cookies de votre navigateur lorsque vous passez d’un environnement Dynamics 365 à l’autre.
- Consultez votre administrateur du centre d’administration Power Platform s’il est nécessaire d’effectuer des ajustements ou de désactiver le paramètre dans les environnements, ce qui n’est pas recommandé.
Autres considérations
| Considération | Explication | Conseils |
|---|---|---|
| Sécurité contre les attaques intersites | La définition de SameSite de Aucun à Lax ou Strict réduit considérablement les attaques par falsification de requête intersites (CSRF) en empêchant les requêtes intersites basées sur les cookies telles que POST, PUT, DELETE ou PATCH. | Lax est recommandé pour une protection sans impact majeur sur la convivialité. |
| Utilisation du paramètre Strict | Le paramètre Strict offre une sécurité maximale mais bloque toutes les interactions entre les sites, y compris les clics directs des utilisateurs à partir de sites externes où le cookie est impliqué. | Recommandé pour les scénarios hautement confidentiels en raison de ses restrictions strictes. |
| Incorporation de Dynamics 365 (iFrames) ou intégrations personnalisées | L’incorporation de Dynamics 365 dans des sites web externes à l’aide d’iframes peut nécessiter que le paramètre SameSite soit défini sur Aucun. Les paramètres Lax ou Strict provoquent des problèmes d’intégration. | Utilisez Aucun pour les scénarios incorporés et les intégrations. |
| Cohérence avec les navigateurs modernes | Les navigateurs modernes utilisent Lax par défaut, ce qui offre une protection contre les fuites de données intersites involontaires sans affecter de manière significative la convivialité. | Le paramètre Lax est recommandé comme approche équilibrée. |
Prérequis
Avant de configurer SameSite, assurez-vous que vous remplissez les conditions suivantes :
- Vous disposez d’un environnement hors production disponible pour les tests initiaux.
- Vous disposez du rôle Administrateur système dans le centre d’administration Power Platform pour apporter des modifications à l’entité d’organisation dans Dataverse.
Configurer l’attribut SameSite
Actuellement, nous devons effectuer la configuration via un appel d’API.
Connectez-vous à votre organisation Dynamics 365 où vous souhaitez appliquer le paramètre.
Ouvrez une console de navigateur et exécutez le script suivant. (Vous devrez peut-être exécuter Autoriser le collage si vous n’êtes pas déjà autorisé à coller le script dans la console).
Nonte
Si vous n’avez pas configuré le samesitemodeforsessioncookie, 0 est défini comme valeur par défaut. (Actuellement, 0 est mappé à Aucun.)
Vous pouvez définir samesitemodeforsessioncookie sur 1 pour Aucun, 2 pour Lax et 3 pour Strict, ce qui n’est pas recommandé.
const orgId = "<dynamics-org-id>"; const url = `/api/data/v9.0/organizations(${orgId})`; fetch(url, { method: "PATCH", headers: { "OData-MaxVersion": "4.0", "OData-Version": "4.0", "Accept": "application/json", "Content-Type": "application/json; charset=utf-8", "Prefer": "return=representation" }, body: JSON.stringify({ samesitemodeforsessioncookie: 1 // 1:None, 2:Lax }) }) .then(response => { if (response.ok) { return response.json(); } else { throw new Error("Error updating: " + response.statusText); } }) .then(data => console.log(" Update successful:", data)) .catch(error => console.error("Update failed:", error));
Vérifier la mise à jour
Pour vérifier la mise à jour, accédez à cette URL : <org-URL>/api/data/v9.0/organizations(<org-ID>)?$select=samesitemodeforsessioncookie
Vérifiez que la valeur est mise à jour.
Déconnectez-vous et reconnectez-vous. La valeur SameSite du cookie CRMOwinAuth doit être mise à jour en conséquence.
Tests fonctionnels
Déconnectez-vous et reconnectez-vous à Dynamics 365.
Vérifiez les intégrations et les scénarios critiques, en particulier les interactions iFrame et intersites.
Résolution des problèmes
| Problème | Cause | Solution |
|---|---|---|
| Les pages Dynamics 365 ne se chargent pas dans l’iframe. | SameSite défini sur Lax ou Strict. | Changez la valeur sur Aucun. |
| Le paramètre de cookie persiste entre plusieurs environnements. | Le cookie est partagé entre le domaine .crm.dynamics.com. | Effacez les cookies ou utilisez des sessions de navigateur ou des profils distincts. |
| Échec des intégrations (erreurs CSRF). | Lorsque SameSite est défini sur Lax ou Strict, les cookies nécessaires sont bloqués. | Utilisez l’authentification basée sur un jeton, ce qui est recommandé. Ou bien, configurez le paramètre sur Aucun. |