我们已经成功地在Web应用程序中实现了用于身份验证的Azure AD B2C,现在我要尝试使用内置策略进行密码重置。该Web应用程序成功捕获了用户单击“忘记密码”链接时引发的错误代码(AADB2C90118),重定向到正确执行“挑战”的Account / ResetPassword方法,从而使用户获得了密码重置体验。
用户通过验证并可以更改其密码,但是当响应被发布回Web应用程序时,我们最终遇到AuthenticationFailed事件,但存在以下异常:
{“ IDX10500:签名验证失败。无法解析SecurityKeyIdentifier:'SecurityKeyIdentifier \ r \ n(\ r \ n IsReadOnly = False,\ r \ n Count = 1,\ r \ n Clause [0] = System.IdentityModel.Tokens.NamedKeySecurityKeyIdentifierClause \ r \ n)\ r \ n',\ ntoken:'{\“ typ \”:\“ JWT \”,\“ alg \”:\“ RS256 \”,\“ kid \“:\” X5eXk4xyojNFum1kl2Ytv8dlNP4-c57dO6QGTVBwaNk \“}。{\” exp \“:1537473897,\” nbf \“:1537470297,\” ver \“:\” 1.0 \“,\” iss \“:\” https://login.microsoftonline.com/1f0535de-b375-48bf-8bc8-d9e0b6ff185a/v2.0/ \“,\” sub \“:\” 454bd9a9-7a7c-4e7f-9535-213e07408d14 \“,\” aud \“:\” f3afd0e2-9f6e-435a-918c-e8c542f9f5ad \“,\”随机数\ “:\” 636730670637853311.OTk5YTlhMWYtOTQyYi00ZDBjLTg0ZjItZDExMjI5MTQ5NzU1ZTY5MzZjODgtMmE2Yi00NmQ0LTg0MTYtOTc5YTJjNWEzOGQ4 \ “\ ”IAT \“:1537470297,\ ”auth_time \“:1537470297,\ ”电子邮件\“:[\ ”ls1grrrl@gmail.com \“],\” OID \ “:\” 454bd9a9-7a7c-4e7f-9535-213e07408d14 \“,\”名称\“:\” hbecker \“,\” tfp \“:\” B2C_1_SSPR \“}'。”} >
在B2C的“密码重置”过程中,我似乎找不到任何遇到此问题的人,因此将向您提供任何帮助!
答案 0 :(得分:0)
在Startup.cs中(ConfigureServices方法)
app.UseAuthentication();
在Configure方法中(在app.UseMvc();之前):
use: ['style-loader','css-loader', 'sass-loader']
确保您还传递了正确的元数据终结点。
有关完整的解决方法,请参见此线程:https://github.com/Azure-Samples/active-directory-b2c-dotnetcore-webapi/issues/9
另请参见this very detailed thread,讨论如何设计密码重置策略来避免此问题。