Нужна ли мне поддержка CORS в моем ASP.NET Core 2.0 API для обмена данными между серверами? - PullRequest
0 голосов
/ 28 июня 2018

У меня есть ASP.NET Core 2.1 API, который был в разработке некоторое время. В моем файле Startup.cs я определил политику разработки CORS, как показано ниже;

        services.AddCors(options =>
        {
            options.AddPolicy("CorsDevPolicy",
                builder => builder.AllowAnyOrigin()
                .AllowAnyMethod()
                .AllowAnyHeader()
                .AllowCredentials());
        });

В основном широко открытая политика.

Сейчас мы готовимся к производственному выпуску, и я хочу убедиться, что он правильно защищен.

Однако у меня нет большого опыта работы с CORS, и когда я изучаю эту тему, мне интересно, нужно ли мне беспокоиться об ограничении политики CORS, поскольку мой API на самом деле вызывается не напрямую из веб-браузера, а скорее из клиентского приложения, которое использует HttpClient.

Кроме того, моему API необходим токен доступа OAuth2.0, чтобы только клиентские приложения, которые я зарегистрировал в Azure Active Directory, могли получить доступ к API. Итак, мне нужно беспокоиться об ограничении моей политики CORS в этом сценарии?

И если мне действительно нужно ограничить мою политику CORS, лучший способ ограничить ее - добавить что-то вроде следующего, включающее в себя определенный список клиентских доменов для каждого сайта, который будет обращаться к API?

services.AddCors(options =>
    {
        options.AddPolicy("CorsProdPolicy",
            builder => 
                builder.WithOrigins(
                          "https://client1.com", 
                          "https://client2.com",
                           ...
                           ...
                           ...   
                          "https://client100.com"
               )
               .AllowAnyMethod()
               .AllowAnyHeader()
               .AllowCredentials());
    });

Или есть лучший способ сделать это?

...