Azure AD B2 C перенаправление l oop после успешного входа - PullRequest
0 голосов
/ 14 марта 2020

Я пытаюсь использовать Azure AD B2 C для аутентификации и авторизации в моем базовом веб-приложении do tnet и веб-API с помощью этого примера проекта :

  1. У меня есть веб-приложение do tnet mvc в качестве веб-интерфейса, которое извлекает данные (элементы задач) из веб-интерфейса API:

  2. зарегистрировало приложение в моем B2 C арендатор и использовать другое приложение, зарегистрированное в Azure AD, для аутентификации openID connect.

  3. Вход в систему и проверка подлинности работают (см. Следующий снимок экрана), но после входа в систему браузер находится в перенаправлении 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 (?).

  4. Соответствующий код из моего приложения:

    • MVC app Startup.cs :
   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 арендаторе?

Login through B2C redirect loop after login

...