MSAL / ASP.NET Core - как проверить содержимое кеша токенов?

В моем конфиденциальном веб-приложении ASP.Net Core Mvc я использую Microsoft Identity Web / Platform с AAD, который я хотел бы назвать нисходящим WebAPI. Веб-приложение Startup.cs выглядит следующим образом:

                  services.AddMicrosoftIdentityWebAppAuthentication(Configuration)
                .EnableTokenAcquisitionToCallDownstreamApi(new string[] { Configuration["ConfigSection:ConfigSectionScopes"] })
                .AddInMemoryTokenCaches();

Когда пользователь входит в систему, если я правильно понял, их токен доступа (полученный при входе, поток кода аутентификации также запрашивает токен доступа) сохраняется в InMemoryTokenCache.

  1. Как получить доступ к кешу токенов для вошедшего в систему пользователя с помощью контроллера? Я могу успешно получить токен с помощью и (с указанием области действия), но я хотел бы проверить кеш, чтобы определить, есть ли токен и присутствуют ли другие токены для пользователя. Я пытался но это всегда ноль.

  2. Я правильно / неверно понимаю, что когда пользователь входит в систему, собирается токен доступа (на основе Startup.cs и хранится в кеше токенов? Или просто код аутентификации сохраняется и используется, когда я впервые использую и для получения токена (и если срок действия кода истек, пользователь должен повторно выполнить аутентификацию, чтобы получить новый)?

  3. Я пытаюсь понять из 2. что хранится / где при входе пользователя в систему и на что я впервые обращаюсь а также использует для получения токена (какое-то утверждение?), потому что я замечаю, что если я вхожу в систему, оставляю страницу неактивной в течение определенного периода времени, а затем пытаюсь получить доступ к странице / контроллеру, который должен получить новый токен доступа для нижестоящий WebAPI, он не работает, поскольку я предполагаю, что что-то истекло.

Любые советы были бы отличными, спасибо

0 ответов

Другие вопросы по тегам