我有一个 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,即使我没有绑定它