Asp.net mvc 无法创建正确的OpenID连接配置终结点(v2)
我想在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是由以下方法生成的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
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令牌。您可以使用此文档了解更多信息: