PythonのMicrosoft Authentication Library (MSAL) では、ConfidentialClientApplicationのインスタンスを作成するときに、アプリ セッションの期間中保持されるメモリ内トークン キャッシュが既定で提供されます。
トークン キャッシュをシリアル化して、アプリのさまざまなセッションからアクセスできるように、"すぐに使える" ようにすることはできません。Pythonの MSAL は、ファイル システムにアクセスできないアプリの種類 (Web アプリなど) で使用できます。 PYTHONに MSAL を使用するアプリで永続的なトークン キャッシュを作成するには、カスタム トークン キャッシュのシリアル化を指定する必要があります。
トークン キャッシュをシリアル化する方法は、パブリック クライアント アプリケーション (デスクトップ) と機密クライアント アプリケーション (Web アプリ、Web API、デーモン アプリ) のどちらを作成しているかによって異なります。
パブリック クライアント アプリケーションのトークン キャッシュ
パブリック クライアント アプリケーションは、ユーザーのデバイスで実行され、1 人のユーザーのトークンを管理します。 この場合、キャッシュ全体をファイルにシリアル化できます。 アプリまたは別のアプリが同時にキャッシュにアクセスできる場合は、必ずファイル ロックを指定してください。 ロックせずにトークン キャッシュをファイルにシリアル化する方法の簡単な例については、 SerializableTokenCache クラスのリファレンス ドキュメントの例を参照してください。
Web アプリのトークン キャッシュ (機密クライアント アプリケーション)
Web アプリまたは Web API の場合は、セッション、Redis キャッシュ、またはデータベースを使用してトークン キャッシュを格納できます。 ユーザーごとに (アカウントごとに) 1 つのトークン キャッシュが存在する必要があるため、アカウントごとにトークン キャッシュをシリアル化してください。
次のステップ
Windowsまたは Linux Web アプリまたは Web API にトークン キャッシュを使用する方法の例については、ms-identity-python-webapp を参照してください。 この例は、Microsoft Graph APIを呼び出す Web アプリを対象にしています。