azure 错误IDX40001颁发者与为此应用程序提供的任何有效颁发者都不匹配

jc3wubiy  于 2023-11-21  发布在  其他
关注(0)|答案(1)|浏览(180)

编辑

问题似乎出在.NET 8 Blazor应用程序上。
我用这个CLI命令创建了一个全新的Blazor服务器项目:dotnet new blazorserver -au IndividualB2C -o blazor.server.net7,它在net7.0中创建了我的项目。然后我把我的B2C连接到它上,它工作得很好。
完整源代码:https://github.com/affableashish/blazor-server-aadb2c/tree/main/blazor.server.net7
x1c 0d1x的数据
但是当我将其更改为.NET 8时,我遇到了这个错误:

然后,我想使用类似的命令创建一个新的net8.0项目来为我获取auth设置(-au IndividualB2C),但看起来它还不存在于.NET 8:

另外,Visual Studio Version 17.8.0 Preview 2.0不提供任何窗口来选择身份验证类型。



所以我使用Rider创建了一个新的net8.0项目(我在Mac上)。我添加了必要的nuget包,并从net7.0项目中复制了Auth设置。问题仍然存在。
完整源代码:https://github.com/affableashish/blazor-server-aadb2c/tree/main/blazor.server.net8

原创帖子

我一直在尝试设置我的.NET 8 Blazor Web应用程序(服务器端)连接到Azure AD B2C以登录用户并调用安全的API。我已经将主要来自hereherehere的指令拼凑在一起。
Web应用程序启动,将我带到登录页面,让我输入我的凭据:x1c4d 1x
在我点击“登录”后,它就一直在这个网址上旋转:

  1. https://munsonpickles3.b2clogin.com/munsonpickles3.onmicrosoft.com/b2c_1_signupsignin/oauth2/v2.0/authorize?client_id=171b3d8f-8ff1-48b7-a5be-31b0413929ee&redirect_uri=https%3A%2F%2Flocalhost%3A7032%2Fsignin-oidc&response_type=code&scope=openid%20profile%20offline_access%20https%3A%2F%2Fmunsonpickles3.onmicrosoft.com%2Fmunson-api%2Fread&code_challenge=abcDe8FGl6jNrCyWPls56yaKjYuohGtD6vUpSgJe6nA&code_challenge_method=S256&response_mode=form_post&nonce=638123410660191340.YjRmNjYkOTOtN2IkNi00YzgxLTg0ZGEtMTRjNTIxZjcxOWJhMzYwZDk1ZDItOGIxNy00NTRiLThiMzgtOWM2MmVkZTlhYjc1&client_info=1&x-client-brkrver=IDWeb.2.14.0.0&state=CfDJ8L8UGyfUjDBErg6qYS34nXD3E0mLxkSA-InrXSkiEcmt8_eHquvuIC-GnidwO47o_SdGzL58675xXvBYP49rsnKjKti0bUUM1FvXyK5N7-AnYGdzo9SqoahAP5Ps7ykpi93LFX-Uis3xf068-S61dmuEn-8FmIKR3TOxzYJrKxAbG6dbymelCxbJ8xpESofmPRBQ9yKCi4flT8yTOFBtOszKtg2GTmxy9MMeX3edKDxpuTniV4YNXzzw-NpSL7DRHRLYSpbrOasGhk_dUrY0WWL3CY_43FmiKUSLiO60JheXpqYL_D53MA6nf0InABDhmkBNroqZgo7Qnv2hpgXSefZOLNgWkdcyTY8Pe-ZvCPX0ncBfkgqFFmQCNjXip-j0PnjRDLgHlldx70qi9ecSKdXgqvuW8a17QjrrEDAHUSCU&x-client-SKU=ID_NET8_0&x-client-ver=7.0.0.0

最终在重定向URL上以这样的方式结束(注意它试图设置的cookie数量太长,并出现431错误):

IDE的控制台显示此错误:Microsoft.IdentityModel.Tokens.SecurityTokenInvalidIssuerException: IDX40001: Issuer: 'https://munsonpickles3.b2clogin.com/f6c04159-d728-43cd-8ae1-c1f3793844d5/v2.0/', does not match any of the valid issuers provided for this application.
然后,我检查了appsettings.json中的所有配置,这些配置似乎与我的AADB 2C目录中的应用程序注册中的配置相匹配。

  1. "AzureAdB2C": {
  2. "Instance": "https://munsonpickles3.b2clogin.com/",
  3. "Domain": "munsonpickles3.onmicrosoft.com",
  4. "ClientId": "12345d8f-8ff1-48b7-a5be-31b041312345",
  5. "CallbackPath": "/signin-oidc",
  6. "ClientSecret": "12345~6MzNJ3yk.YTq9iP51R1niJFWuxaGx12345",
  7. "SignedOutCallbackPath": "/signout/B2C_1_SignUpSignIn",
  8. "SignUpSignInPolicyId": "B2C_1_SignUpSignIn",
  9. "ResetPasswordPolicyId": "",
  10. "EditProfilePolicyId": ""
  11. }

重定向URL也设置正确:

我通过将重定向URL指向jwt.ms来运行流,并查看了应用程序抱怨的同一个Issuer:

  1. Issuer: 'https://munsonpickles3.b2clogin.com/f6c04159-d728-43cd-8ae1-c1f3793844d5/v2.0/', does not match any of the valid issuers provided for this application.


我已经按照所有的步骤,通过所有的文件,我可以找到,但花了2天后,这一点,我认为我需要帮助。
请看看我的完整源代码,看看你能找到什么。

完整源代码

https://github.com/affableashish/blazor-server-aadb2c
有两个项目:一个是在net7.0上创建的,另一个是在net8.0上创建的。net7.0项目工作正常。至于net8.0项目,你可以在它的appsettings.json中连接你自己的AD B2C信息,然后给予一个尝试,这个尝试会失败,我在这里报告了错误。

如果有,

  1. fail: Microsoft.IdentityModel.LoggingExtensions.IdentityLoggerAdapter[0]
  2. IDX40001: Issuer: 'https://munsonpickles3.b2clogin.com/f6c04159-d728-43cd-8ae1-c1f3793844d5/v2.0/', does not match any of the valid issuers provided for this application.
  3. fail: Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectHandler[17]
  4. Exception occurred while processing message.
  5. Microsoft.IdentityModel.Tokens.SecurityTokenInvalidIssuerException: IDX40001: Issuer: 'https://munsonpickles3.b2clogin.com/f6c04159-d728-43cd-8ae1-c1f3793844d5/v2.0/', does not match any of the valid issuers provided for this application.
  6. at Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectHandler.ValidateTokenUsingHandlerAsync(String idToken, AuthenticationProperties properties, TokenValidationParameters validationParameters)
  7. at Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectHandler.HandleRemoteAuthenticateAsync()

.NET版本

8.0.100-预览7.23376.3
还有别的吗?
aspnetcore github repo中也问过这个问题。

更新

按照ΩmegaMan的建议打开PII日志记录。日志如下所示:

  1. info: Microsoft.IdentityModel.LoggingExtensions.IdentityLoggerAdapter[0]
  2. IDX10242: Security token: 'eyJhbGciOiJSUzI1NiIsImtpZCI6Ilg1ZVhrNHh5b2pORnVtMWtsMll0djhkbE5QNC1jNTdkTzZRR1RWQndhTmsiLCJ0eXAiOiJKV1QifQ.eyJ2ZXIiOiIxLjAiLCJpc3MiOiJodHRwczovL211bnNvbnBpY2ts12345mIyY2xvZ2luLmNvbS9mNmMwNDE1OS1kNzI4LTQzY2QtOGFlMS1jMWYzNzkzODQ0ZDUvdjIuMC8iLCJzdWIiOiJjMDg1NTY2My02NjBiLTQ0YTEtOTkwNC00MzM5ZjVlNWU5YTIiLCJhdWQiOiIxNzFiM2Q4Zi04ZmYxLTQ4YjctYTViZS0zMWIwNDEzOTU1ZWUiLCJleHAiOjE2OTYwMj12345sIm5vbmNlIjoiNjM4MzE2MTYxODUxNzIwNjIwLk9UUmtNR0V5WTJRdFlUazROQzAwTjJRMUxUZzVZalV0TnpobU5EZ3dZekZsTlRRM1pHRmpNbVkxT1RRdE9XWTJOaTAwTWpaaUxUaGxaREF0WVRnd1pUYzBNekk0TVdGbCIsImlhdCI6MTY5NjAxOTM4NSwiYXV0aF90aW1lIjoxNjk2MDE5Mzg1LCJjb3VudHJ5IjoiVW5pdGVkIFN0YXRlcyIsIm5hbWUiOiJBc2hpc2ggS2hhbmFsIiwidGZwIjoiQjJDXzFfU2lnblVwU2lnbkluIiwibmJmIjoxNjk2MDE5Mzg1fQ' has a valid signature.
  3. info: Microsoft.IdentityModel.LoggingExtensions.IdentityLoggerAdapter[0]
  4. IDX10239: Lifetime of the token is valid.
  5. info: Microsoft.IdentityModel.LoggingExtensions.IdentityLoggerAdapter[0]
  6. IDX10234: Audience Validated.Audience: '12345d8f-8ff1-48b7-a5be-31b041312345'
  7. fail: Microsoft.IdentityModel.LoggingExtensions.IdentityLoggerAdapter[0]
  8. IDX40001: Issuer: 'https://munsonpickles3.b2clogin.com/f6c04159-d728-43cd-8ae1-c1f3793844d5/v2.0/', does not match any of the valid issuers provided for this application.
  9. fail: Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectHandler[17]
  10. Exception occurred while processing message.
  11. Microsoft.IdentityModel.Tokens.SecurityTokenInvalidIssuerException: IDX40001: Issuer: 'https://munsonpickles3.b2clogin.com/f6c04159-d728-43cd-8ae1-c1f3793844d5/v2.0/', does not match any of the valid issuers provided for this application.
  12. at Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectHandler.ValidateTokenUsingHandlerAsync(String idToken, AuthenticationProperties properties, TokenValidationParameters validationParameters)
  13. at Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectHandler.HandleRemoteAuthenticateAsync()

nzkunb0c

nzkunb0c1#

不确定你是否解决了这个问题,但似乎NuGet软件包中有一个错误,更新应该可以解决它。请参阅:https://github.com/AzureAD/microsoft-identity-web/discussions/2481

相关问题