Sérialisation du cache de jetons personnalisé dans MSAL pour Python

Dans Microsoft Authentication Library (MSAL) pour Python, un cache de jetons en mémoire qui persiste pendant la durée de la session d’application, est fourni par défaut lorsque vous créez une instance de ConfidentialClientApplication.

La sérialisation du cache de jetons, afin que différentes sessions de votre application puissent y accéder, n'est pas fournie « prête à l'emploi ». MSAL pour Python peut être utilisé dans les types d'applications qui n'ont pas accès au système de fichiers, comme les applications web. Pour disposer d’un cache de jetons persistant dans une application qui utilise MSAL pour Python, vous devez fournir une sérialisation de cache de jeton personnalisée.

Les stratégies de sérialisation du cache de jeton diffèrent selon que vous écrivez une application cliente publique (Bureau) ou une application cliente confidentielle (application web, API web ou application démon).

Cache de jetons pour une application cliente publique

Les applications clientes publiques s’exécutent sur l’appareil d’un utilisateur et gèrent les jetons pour un seul utilisateur. Dans ce cas, vous pouvez sérialiser l’intégralité du cache dans un fichier. N’oubliez pas de fournir un verrouillage de fichier si votre application ou une autre application peut accéder simultanément au cache. Pour obtenir un exemple simple de sérialisation d’un cache de jetons dans un fichier sans verrouillage, consultez l’exemple dans la documentation de référence de classe SerializableTokenCache .

Cache de jetons pour une application web (application cliente confidentielle)

Pour les applications web ou les API web, vous pouvez utiliser la session, un cache Redis ou une base de données pour stocker le cache de jetons. Il doit y avoir un cache de jeton par utilisateur (par compte) afin de vous assurer que vous sérialisez le cache de jeton par compte.

Étapes suivantes

Consultez ms-identity-python-webapp pour obtenir un exemple d’utilisation du cache de jetons pour une application web Windows ou Linux ou une API web. L’exemple est destiné à une application web qui appelle Microsoft API Graph.