ASP.NET Core se autentica con Azure Active Directory y reclamaciones persistentes personalizadas en todas las solicitudes

Tengo un sitio web predeterminado de ASP.NET Core creado en Visual Studio 2017. Elegí autenticarme con Azure Active Directory. Ejecuto el sitio y puedo iniciar sesión con éxito usando una cuenta en Active Directory.

Puedo recuperar la información de reclamo proporcionada por Active Directory, p. llamando a la siguiente línea obtengo el 'nombre'.

User.Claims.FirstOrDefault(c => c.Type == "name")?.Value;

Quiero agregar un reclamo personalizado: CompanyId = 123456 para el usuario que inició sesión. Puedo agregar un reclamo personalizado, sin embargo, solo está disponible en la página donde se establece el reclamo.

Claim claim = new Claim("CompanyId", "123456", ClaimValueTypes.String);
((ClaimsIdentity)User.Identity).AddClaim(claim);

Entiendo que de alguna manera necesito actualizar el token emitido por Active Directory o establecer el reclamo antes de que se emita el token. No estoy seguro de cómo hacer esto.

Sospecho que esto debe hacerse en el AccountController en SignIn ()

// GET: /Account/SignIn
[HttpGet]
public IActionResult SignIn()
{
    return Challenge(
            new AuthenticationProperties { RedirectUri = "/" }, OpenIdConnectDefaults.AuthenticationScheme);
}

He leído numerosos artículos y muestras sobre este escenario (incluyendohttps://github.com/ahelland/AADGuide-CodeSamples/tree/master/ClaimsWebApp), sin embargo, no han logrado resolver cómo persistir el Reclamo en las solicitudes.

Logré persistir con éxito los reclamos personalizados utilizando la identidad ASP.NET como proveedor de autenticación, pero esto parece ser porque el reclamo personalizado se guarda en la base de datos.

Respuestas a la pregunta(2)

Su respuesta a la pregunta