Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В Microsoft Authentication Library (MSAL) для Python при создании экземпляра ConfidentialClientApplication по умолчанию предоставляется кэш токенов в памяти, который сохраняется в течение всего сеанса приложения.
Сериализация кэша токенов, чтобы к нему могли обращаться разные сеансы приложения, не поддерживается "из коробки". MSAL для Python можно использовать в типах приложений, у которых нет доступа к файловой системе, например в веб-приложениях. Чтобы иметь постоянный кэш маркеров в приложении, использующего MSAL для Python, необходимо предоставить сериализацию пользовательского кэша маркеров.
Стратегии сериализации кэша маркеров различаются в зависимости от того, пишете ли вы общедоступное клиентское приложение (desktop) или конфиденциальное клиентское приложение (веб-приложение, веб-API или приложение управляющей программы).
Кэш токенов для общедоступного клиентского приложения
Общедоступные клиентские приложения выполняются на устройстве пользователя и управляют маркерами для одного пользователя. В этом случае можно сериализовать весь кэш в файл. Не забудьте предоставить блокировку файлов, если приложение или другое приложение может одновременно получить доступ к кэшу. Чтобы увидеть простой пример того, как сериализовать кэш токенов в файл без блокировки, см. пример в справочной документации по классу SerializableTokenCache.
Кэш токенов для веб-приложения (конфиденциальное клиентское приложение)
Для веб-приложений или веб-API можно использовать session, кэш Redis или базу данных для хранения кэша токенов. На каждого пользователя (на каждую учетную запись) должен приходиться один кэш токенов, поэтому убедитесь, что вы сериализуете кэш токенов отдельно для каждой учетной записи.
Дальнейшие действия
Пример того, как использовать кэш токенов для веб-приложения или веб-API в Windows или Linux, см. в ms-identity-python-webapp. Примером является веб-приложение, которое вызывает Microsoft API Graph.