首页 > 解决方案 > Microsoft Identity Web 为 redirect_url 生成 http 而不是 https

问题描述

我有一个 ASP.NET Core MVC 应用程序,我想使用 Azure B2C 身份验证。

正在生成的 redirect_urlhttp不是https这样的:

&redirect_uri=**http**%3A%2F%2Fmyapp.com%2Fsignin-oidc

这应该是https,它导致了这个错误:

AADSTS50011:请求中指定的回复 URL 与为应用程序配置的回复 URL 不匹配:“9dbe40e0-7555-4ddf-9c17-b5218ed6ca89”。

我的appsettings.json样子是这样的:

"AzureAdB2C": {
    "Instance": "https://login.microsoftonline.com/",
    "Domain": "xxx",
    "ClientId": "xxxx",
    "TenantId": "xxxx",
    "ClientSecret": "xxxx",
    "CallbackPath": "/signin-oidc",
    "SignedOutCallbackPath ": "/"
}

我的代码Startup.cs是这样的:

services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
            .AddMicrosoftIdentityWebApp(Configuration, "AzureAdB2C");

出于某种原因,这在我的带有 localhost (redirect_url=https) 的开发机器上运行良好,但在服务器上它总是http.

有任何想法吗?这让我整天发疯

编辑:已解决! 原来问题是我在 IIS 中没有 HTTPS 绑定,只有 HTTP 绑定......奇怪,因为我通过 https:// 访问该站点...... - 我猜 IIS 以某种方式提供了一个证书和允许 HTTPS,即使我没有绑定它

标签: asp.net-coreazure-ad-b2cazure-authenticationmicrosoft-identity-web

解决方案


谢谢你们的帮助!

原来这是因为我在 IIS 中没有 HTTPS 绑定造成的。

我通过 HTTPS 访问该站点,所以不确定 IIS 是如何允许的,但添加 HTTPS 绑定修复了 redirect_uri 问题


推荐阅读