Я знаю, что этот вопрос уже задавался, но ничего из того, что я прочитал, похоже, не решило проблему. Мое приложение ASP.NET Core получает следующее сообщение об ошибке при попытке его запустить.
AADSTS50011: URL-адрес ответа, указанный в запросе, не соответствует URL-адресам ответа, настроенным для приложения
Я настроил свою аутентификацию, используя руководство, данное мне порталом Azure. Я покажу вам, что у меня есть.
Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.Configure<CookiePolicyOptions>(options => {
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
services.AddAuthentication(AzureADDefaults.AuthenticationScheme)
.AddAzureAD(options => Configuration.Bind("AzureAd", options));
services.Configure<OpenIdConnectOptions>(AzureADDefaults.OpenIdScheme, options =>
{
options.Authority = options.Authority + "/v2.0/";
options.TokenValidationParameters.ValidateIssuer = false;
});
services.AddAuthorization(options =>
{
options.AddPolicy("NorwayTeam", policyBuilder => policyBuilder.RequireClaim("groups", "111-222-333-444-555"));
});
//MVC
services.AddMvc(options => {
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
options.Filters.Add(new AuthorizeFilter(policy));
}).SetCompatibilityVersion(CompatibilityVersion.Version_2_1)
.AddJsonOptions(options => options.SerializerSettings.ContractResolver = new DefaultContractResolver());
...[shortened for brevity]
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseCookiePolicy();
app.UseAuthentication();
app.UseSignalR(routes =>
{
routes.MapHub<ChatHub>("/chatHub");
routes.MapHub<VesselHub>("/vesselHub");
routes.MapHub<RequirementHub>("/requirementHub");
});
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
Я также поместил соответствующий код в свой appsettings.json
{
"AzureAd": {
"Instance": "https://login.microsoftonline.com/",
"Domain": "MyCompany.onmicrosoft.com",
"TenantId": "xxx",
"ClientId": "xxx",
"CallbackPath": "/signin-oidc"
},
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"AllowedHosts": "*"
}
Итак, с точки зрения приложения, приведенный выше код - это все, что необходимо для подключения к регистрации моего приложения. Очевидно, я поместил [Authorize]
в соответствующих контроллерах.
Следующим шагом будет настройка регистрации приложения на моем портале Azure. Я изменил настройки регистрации моего приложения следующим образом: размытые области используют URL-адрес моего веб-приложения, равный https://MyCompany.azurewebsites.net/
. Так как это моя производственная версия моего приложения, я не хочу использовать localhost
.
Часть меня думает, что проблема может бытьсвязано с мошенническим объявлением localhost, но я не могу быть уверен, так как не вижу, какой запрос делается приложением для регистрации приложения. Кто-нибудь знает, что я сделал не так?