Я пытаюсь использовать Azure AD B2 C для аутентификации и авторизации в моем базовом веб-приложении do tnet и веб-API с помощью этого примера проекта :
У меня есть веб-приложение do tnet mvc в качестве веб-интерфейса, которое извлекает данные (элементы задач) из веб-интерфейса API:
зарегистрировало приложение в моем B2 C арендатор и использовать другое приложение, зарегистрированное в Azure AD, для аутентификации openID connect.
Вход в систему и проверка подлинности работают (см. Следующий снимок экрана), но после входа в систему браузер находится в перенаправлении l oop между моим экземпляром b2 c и моим локальным хостом (https://localhost: 44316 / signin-oid c, см. скриншот ниже). URL-адрес https://localhost: 44316 / signin-oid c настроен как URL-адрес перенаправления в моем приложении, зарегистрированном в клиенте B2 C, но путь signin-oidc
на самом деле не существует в моем mvc веб-приложение. Я думаю, именно поэтому происходит перенаправление l oop (?).
Соответствующий код из моего приложения:
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
services.AddOptions();
services.AddAuthentication(AzureADB2CDefaults.AuthenticationScheme)
.AddAzureADB2C(options => Configuration.Bind("AzureAdB2C", options));
// Token acquisition service based on MSAL.NET
// and chosen token cache implementation
services.AddWebAppCallsProtectedWebApi(Configuration, new string[] { Configuration["TodoList:TodoListScope"] }, configSectionName: "AzureAdB2C")
.AddInMemoryTokenCaches();
// inject dependencies
services.AddScoped<ITokenAcquisition, TokenAcquisition>();
services.AddHttpContextAccessor();
services.AddScoped<HttpClient, HttpClient>();
services.AddScoped<ITodoListService, TodoListService>();
services.AddRazorPages();
}
- Контроллеры веб-API используют атрибут
[Authorize]
для защиты API. Я также показал API в приложении, зарегистрированном в клиенте Azure AD, и установил для него область действия. Разрешения API также были одобрены / предоставлены администратором
В чем может быть причина перенаправления l oop? мы должны использовать другой URI перенаправления в зарегистрированном приложении в B2 C арендаторе?