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:不同身份提供者之间的刷新令牌行为不一致