Я использую библиотеки Microsoft для реализации OAuth для Azure AD в веб-приложении .NET.
Я использую метод AcquireTokenSilentAsync, основанный на постоянных кэшированных токенах, для получения объекта AuthenticationResult.Этот объект содержит свойство UserInfo, которое можно использовать для получения значений утверждений для создания объекта ClaimsIdentity.
Я пытаюсь понять, какие области следует передать параметру Scope OpenIdConnectAuthenticationOptions.
Я использовал значение OpenIDConnectScope.OpenIDProfile, которое переводится как «профиль openid» - это успешно получало заявки.Но он не возвращает токен обновления для обработки обновления токена доступа после истечения срока его действия (что я и хочу).
Поэтому я понял, что мне нужно использовать OpenIDConnectScope.OfflineAccess, что переводится как «offline_access».Это само по себе возвращает объект AuthenticationResult.UserInfo со всеми его свойствами, установленными в «null».
Я подумал, что попытался бы использовать несколько областей;что-то вроде 'openid profile offline_access', но пока в значениях параметров Scope есть 'offline_access', объект UserInfo всегда возвращает нулевые значения!
Почему это происходит?Как правильно включить обновление токена доступа, а также получить объект UserInfo для создания объекта ClaimsIdentity?