OpenIdConnect 行为 Visual Studio 与 Azure

Posted

技术标签:

【中文标题】OpenIdConnect 行为 Visual Studio 与 Azure【英文标题】:OpenIdConnect Behaviour Visual Studio vs Azure 【发布时间】:2021-12-21 06:08:22 【问题描述】:

我有一个已部署到 Azure 应用服务的 asp.net core 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 个人资料 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 简介&response_mode = form_post&随机数= 637719649643589555.Y2U0YmY1MjQtZjVmNS00ZWQ0LTlkMzAtNWRkMzBmOTMwNmQ5NWUzNWJmNTItMTAzZC00ZTUwLTk0ODMtYjVlZjgzM2NhYWIx&CLIENT_INFO = 1&的X客户brkrver = IDWeb.1.16.1.0&状态= XXX P>

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于OpenIdConnect 行为 Visual Studio 与 Azure的主要内容,如果未能解决你的问题,请参考以下文章

OpenID Connect:不同身份提供者之间的刷新令牌行为不一致

Visual Studio 2010 编辑器意外自动更正

Visual Studio 2015 / Visual Assist 自动完成行为

Visual Studio中的奇怪Python包导入行为

Visual Studio 2022 Razor 错误行为

奇怪的 Visual Studio 行为:执行时间很长