IDX20803:无法从以下位置获取配置

Jer*_* F. 7 jwt azure-active-directory asp.net-core-2.1

我知道已经回答了这个问题,但是我不知道人们到底在做什么(关于证书,ssl),他们都使用本地主机,但不是我。

我将此示例用作示例OpenIdConnect

我正在使用:

  • 网路应用程式
  • Web API

两者都使用.Net Core 2.1。该Web应用程序正在使用Azure AD连接来获取JwtBearer令牌,该令牌已发送到API。

看到/api/informationAPI中的路由,请求从Web App发送到API,并且API返回上面的错误。

确切的错误是:

System.InvalidOperationException: IDX20803: Unable to obtain configuration from: 'https://<mycompany>.onmicrosoft.com/<big Guid of 72 chars>/.well-known/openid-configuration'.
Run Code Online (Sandbox Code Playgroud)

因此,我尝试通过添加证书,添加必要的库(System.Net.Httpv4.3.3),检查Azure AD中的每个权限来解决此错误,但是这些都不起作用。

如果您需要更多信息,可以通过在本文中添加它们来提供它们。

Ami*_*Ali 16

如果有人遇到此问题并且正在使用 Azure B2C,则该实例是您的 azure b2c 租户的根 URL。例如https://myroot.b2clogin.com/。域应该是:myroot.onmicrosoft.com/

确保域中没有 https。

这对我有用。

{
    "AzureADB2C": {
        "CallbackPath": "/signin-oidc",
        "ClientId": "<app-registration-app-client-id>",
        "ClientSecret": "<secret-value>",
        "Domain": "<domain-name>.onmicrosoft.com/",
        "EditProfilePolicyId": "B2C_1_profile",
        "Instance": "https://<domain-name>.b2clogin.com/",
        "ResetPasswordPolicyId": "B2C_1_reset",
        "SignUpSignInPolicyId": "B2C_1_signupsignin"
    }
}
Run Code Online (Sandbox Code Playgroud)


小智 11

通过在“启动”-->“配置”中添加以下代码解决了该问题

ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls 
                                       | SecurityProtocolType.Tls11
                                       | SecurityProtocolType.Tls12
                                       | SecurityProtocolType.Ssl3;
Run Code Online (Sandbox Code Playgroud)


Jer*_* F. 7

通过替换解决它,在appsettings.json

"AzureAd": {
     "Instance": "<APP_Uri_from_Azure_Portal>",
...
}
Run Code Online (Sandbox Code Playgroud)

"AzureAd": {
     "Instance": "https://login.microsoftonline.com/",
...
}
Run Code Online (Sandbox Code Playgroud)

  • 作为这里的解释,错误的原因是它试图从`{instance}{tenantid}/.well-known/openid-configuration`下载OpenId配置文档,例如`https://login.microsoftonline。 com/common/.well-known/openid-configuration`。该文档包含可以从中获取令牌签名公钥的 URL,等等。身份验证处理程序在启动时加载它以加载其配置以验证身份提供者提供的令牌。因此,对于 Azure AD,您必须使用 Azure AD 实例的 URL + 您的租户 ID(或“通用”用于多租户)。 (13认同)