OpenIdConnect 行为 Visual Studio 与 Azure

OpenIdConnect Behaviour Visual Studio vs Azure

我有一个已部署到 Azure 应用服务的 asp.net 核心 5 网站。

Startup.ConfigureServices 中有以下内容:

services.AddRazorPages().AddMvcOptions(options =>
            {
                var policy = new AuthorizationPolicyBuilder()
                              .RequireAuthenticatedUser()
                              .Build();
                options.Filters.Add(new AuthorizeFilter(policy));
            }).AddMicrosoftIdentityUI();

Startup.Configure包括以下内容:

app.UseAuthentication(); 
app.UseAuthorization();

在 Azure 上的应用程序注册中,我在“身份验证”选项卡上选中了“ID 令牌”:

当我浏览到 Azure 中的已部署站点时,我被重定向到:

https://login.microsoftonline.com/xxx/oauth2/v2.0/authorize?response_type=id_token&redirect_uri=https://azapp-contactcentre-surveyadmin-dev-001.azurewebsites.net/.auth/login/aad/**callback**&client_id=xxx&scope=openid profile email&response_mode=form_post&nonce=xxx

但是,如果我 运行 来自 Visual Studio 的同一站点,则重定向是:

https://login.microsoftonline.com/xxx/oauth2/v2.0/authorize?client_id=xxx&redirect_uri=https://localhost:44381/**signin-oidc**&response_type=id_token&scope=openid profile&response_mode=form_post&nonce=637719649643589555.Y2U0YmY1MjQtZjVmNS00ZWQ0LTlkMzAtNWRkMzBmOTMwNmQ5NWUzNWJmNTItMTAzZC00ZTUwLTk0ODMtYjVlZjgzM2NhYWIx&client_info=1&x-client-brkrver=IDWeb.1.16.1.0&state=xxx

在这两种情况下我都可以登录并使用该站点,但我想了解为什么行为会有所不同?

您似乎正在使用 Azure 应用服务(又名 EasyAuth)上的身份验证功能。 重定向 URI (.auth/login/aad/callback) 看起来像它使用的那个。 如果您在代码中配置身份验证,最好在应用服务级别禁用它。