Asp.net mvc 无法创建正确的OpenID连接配置终结点(v2)

Asp.net mvc 无法创建正确的OpenID连接配置终结点(v2),asp.net-mvc,azure,authentication,azure-active-directory,azure-ad-b2c,Asp.net Mvc,Azure,Authentication,Azure Active Directory,Azure Ad B2c,我想在azure中有一个应用程序(简单的asp.net mvc应用程序),可以让用户留在azure中,我想让azure b2c完成这项工作 我在azure中注册了应用程序,并将所有配置放入appsettings.json。我注意到,应用程序生成的url与azure生成的url不匹配: 以下是申请表中的内容: "https://isthereanynewscodeblast.b2clogin.com/isthereanynewscodeblast.onmicrosoft.com/B2C_1_ecl

我想在azure中有一个应用程序(简单的asp.net mvc应用程序),可以让用户留在azure中,我想让azure b2c完成这项工作

我在azure中注册了应用程序,并将所有配置放入appsettings.json。我注意到,应用程序生成的url与azure生成的url不匹配:

以下是申请表中的内容:

"https://isthereanynewscodeblast.b2clogin.com/isthereanynewscodeblast.onmicrosoft.com/B2C_1_eclaims_login/v2.0/.well-known/openid-configuration"

以下是B2C的信息:

"https://isthereanynewscodeblast.b2clogin.com/isthereanynewscodeblast.onmicrosoft.com//v2.0/.well-known/openid-configuration"

相似但不相同。我发现,url是由以下方法生成的
azureadb2copenidconnectoptionconfiguration

internal static string BuildAuthority(AzureADB2COptions AzureADB2COptions)
{
    var baseUri = new Uri(AzureADB2COptions.Instance);
    var pathBase = baseUri.PathAndQuery.TrimEnd('/');
    var domain = AzureADB2COptions.Domain;
    var policy = AzureADB2COptions.DefaultPolicy;

    return new Uri(baseUri, new PathString($"{pathBase}/{domain}/{policy}/v2.0")).ToString();
}
这是我的.json

"AzureAdB2C": {
  "Instance": "https://isthereanynewscodeblast.b2clogin.com",
  "Domain": "isthereanynewscodeblast.onmicrosoft.com",
  "ClientId": "guid-of-client",
  "CallbackPath": "/signin-oidc",
  "SignUpSignInPolicyId": "B2C_1_eclaims_login ",
  "ResetPasswordPolicyId": "B2C_1_eclaims_reset",
  "EditProfilePolicyId": "B2C_1_eclaims_edit"
},
与AAD中的不匹配:( 代码来自nuget:Microsoft.AspNetCore.Authorization

它既不受保护也不虚拟,因此我看不到任何覆盖它的选项

因此,我的问题是:

  • 有没有办法以某种方式处理这个问题,以便应用程序可以与azure通信
  • 是否有其他方法注册应用程序,简单如下:
//编辑:

以下是申请注册的清单:

{
    "id": "438a430b-4e80-4c6c-8f45-dfca460b2e03",
    "acceptMappedClaims": null,
    "accessTokenAcceptedVersion": 2,
    "addIns": [],
    "allowPublicClient": null,
    "appId": "44234136-6eee-431f-98ea-668343d7a3fd",
    "appRoles": [],
    "oauth2AllowUrlPathMatching": false,
    "createdDateTime": "2020-08-18T22:32:28Z",
    "groupMembershipClaims": null,
    "identifierUris": [],
    "informationalUrls": {
        "termsOfService": null,
        "support": null,
        "privacy": null,
        "marketing": null
    },
    "keyCredentials": [],
    "knownClientApplications": [],
    "logoUrl": null,
    "logoutUrl": null,
    "name": "user-log-test",
    "oauth2AllowIdTokenImplicitFlow": false,
    "oauth2AllowImplicitFlow": false,
    "oauth2Permissions": [],
    "oauth2RequirePostResponse": false,
    "optionalClaims": null,
    "orgRestrictions": [],
    "parentalControlSettings": {
        "countriesBlockedForMinors": [],
        "legalAgeGroupRule": "Allow"
    },
    "passwordCredentials": [],
    "preAuthorizedApplications": [],
    "publisherDomain": "isthereanynewscodeblast.onmicrosoft.com",
    "replyUrlsWithType": [
        {
            "url": "https://localhost:44395/signin-oidc",
            "type": "Web"
        }
    ],
    "requiredResourceAccess": [
        {
            "resourceAppId": "00000003-0000-0000-c000-000000000000",
            "resourceAccess": [
                {
                    "id": "37f7f235-527c-4136-accd-4a02d197296e",
                    "type": "Scope"
                },
                {
                    "id": "7427e0e9-2fba-42fe-b0c0-848c9e6a8182",
                    "type": "Scope"
                }
            ]
        }
    ],
    "samlMetadataUrl": null,
    "signInUrl": null,
    "signInAudience": "AzureADandPersonalMicrosoftAccount",
    "tags": [],
    "tokenEncryptionKeyId": null
}

请您尝试使用此工具,它将为您提供如何使用b2c点的想法。它附带预配置的端点(如下),您可以在稍后的测试中使用租户和策略替换这些端点

{
    "AzureAdB2C": {
        "Instance": "https://fabrikamb2c.b2clogin.com",
        "ClientId": "90c0fe63-bcf2-44d5-8fb7-b8bbc0b29dc6",
        "Domain": "fabrikamb2c.onmicrosoft.com",
        "SignedOutCallbackPath": "/signout/B2C_1_susi",
        "SignUpSignInPolicyId": "b2c_1_susi",
        "ResetPasswordPolicyId": "b2c_1_reset",
        "EditProfilePolicyId": "b2c_1_edit_profile" 
    },
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*"
}


请您尝试使用此工具,它将为您提供如何使用b2c点的想法。它附带预配置的端点(如下),您可以在稍后的测试中使用租户和策略替换这些端点

{
    "AzureAdB2C": {
        "Instance": "https://fabrikamb2c.b2clogin.com",
        "ClientId": "90c0fe63-bcf2-44d5-8fb7-b8bbc0b29dc6",
        "Domain": "fabrikamb2c.onmicrosoft.com",
        "SignedOutCallbackPath": "/signout/B2C_1_susi",
        "SignUpSignInPolicyId": "b2c_1_susi",
        "ResetPasswordPolicyId": "b2c_1_reset",
        "EditProfilePolicyId": "b2c_1_edit_profile" 
    },
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*"
}


我看到了你的应用程序清单文件,发现你没有启用隐式流。请选择该应用程序并转到身份验证,然后选择ID令牌访问令牌


我尝试了@Razi共享的示例,该示例端到端运行良好。

我看到了你的应用程序清单文件,发现你没有启用隐式流。请选择应用程序并转到身份验证,然后选择ID令牌访问令牌


我尝试了@Razi共享的示例,该示例端到端运行良好。

Hey@Razi尝试了相同的结果:IOException:IDX20807:无法从以下位置检索文档:'/v2.0/.well-known/openid configuration'。HttpResponseMessage:'状态代码:404,推理短语:'未找到',版本:1.1,内容:可能我配置了azure应用程序w很简单,我不知道我会做错什么,但这是可能的。你介意在azure中注册应用程序并检查不能创建正确的OpenID连接配置端点(v2)的值吗您可以共享您的应用程序注册清单吗?这是一个JSON文件,您可以从Azure门户下载。它将显示是否存在配置问题。请确保您已启用隐式流,并选择Rohit提到的访问令牌和ID令牌。您可以使用此文档了解更多信息:Hey@Razih相同的结果:IOException:IDX20807:无法从以下位置检索文档:'/v2.0/.well-known/openid配置'.HttpResponseMessage:'StatusCode:404,ReasonPhase:'Not Found',Version:1.1,Content:可能我配置了azure应用程序错误-非常简单,我不知道我会做错什么,但这是可能的。您介意注册吗在azure中注册应用程序并检查无法创建正确的OpenID连接配置端点(v2)的值您可以共享您的应用程序注册清单吗?它是一个JSON文件,您可以从Azure门户下载。它将显示是否存在配置问题。请确保您已启用隐式流,并选择Rohit提到的访问令牌和ID令牌。您可以使用此文档了解更多信息: