Autorizar um serviço de aplicativo de outro (sem interação do usuário) no ASP.NET Core 2.0

Eu tenho um aplicativo de API da Web no Azure voltado para a Internet (PubWeb), portanto ele é usado de qualquer lugar. E eu criei uma API da Web (novamente, no Azure, vamos chamá-la de InWeb). E eu quero regras de segurança fortes:

O InWeb deve ser usado apenas pelo PubWeb. Isso pode envolver alguma segurança de rede - é uma parte fácil (no Azure).O PubWeb deve ser autorizado pelo Azure AD de alguma forma para usar os serviços InWeb. Diretores de serviços, certificados, etc, vêm à mente. Mas eu não tenho certeza.

Então, qual é a melhor solução possível para 2?

ATUALIZAR - aqui está a configuração de autenticação do InWeb Core 2.0:

public void ConfigureServices(IServiceCollection services)
{
    services.AddAuthentication(sharedOptions =>
    {
        sharedOptions.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
    })
    .AddAzureAdBearer(options => Configuration.Bind("AzureAd", options));

    services.AddMvc(options => { options.InputFormatters.Add(new TextPlainInputFormatter()); });
}

questionAnswers(1)

yourAnswerToTheQuestion