Azure B2C 示例自定义策略,登录时显示'Your password is incorrect'



我在这里遵循了入门工作流程:https://learn.microsoft.com/azure/active-directory-b2c/active-directory-b2c-get-started-custom

我从头开始遵循它,两次,在尝试使用登录&注册自定义策略系统会提示我"您的密码不正确"。如何正确进行身份验证?

正在工作的东西:

  • 当我注册时,用户旅程完成,用户被添加到目录中
  • 使用内置策略,我可以登录并注册
  • 使用内置策略,我可以登录到我使用自定义策略注册的用户

使用Application Insights,我可以看到以下错误。(应用了一些卫生设施)

"ValidationRequest":{  
"ContentType":"Unspecified",
"Created":"2017-10-06T17:19:34.3995426Z",
"Key":"ValidationRequest",
"Persistent":true,
"Value":"client_id=55555555-5555-5555-5555-555555555555&resource=cccccccc-cccc-cccc-cccc-cccccccccccc&username=MYUSERNAME&password=PASSWORDIENTEREDONSCREEN&grant_type=password&scope=openid&nca=1;1;login-NonInteractive;False"
},
"ValidationResponse":{  
"ContentType":"Json",
"Created":"2017-10-06T17:19:34.3995426Z",
"Key":"ValidationResponse",
"Persistent":true,
"Value":"{"error":"invalid_client","error_description":"AADSTS70002: The request body must contain the following parameter: 'client_secret or client_assertion'.\r\nTrace ID: 55555555-cccc-cccc-cccc-555555555555\r\nCorrelation ID: 77777777-7777-7777-7777-777777777777\r\nTimestamp: 2017-10-06 17:19:33Z","error_codes":[70002],"timestamp":"2017-10-06 17:19:33Z","trace_id":"55555555-cccc-cccc-cccc-555555555555","correlation_id":"77777777-7777-7777-7777-777777777777"};1;login-NonInteractive;False"
},

重要的一点似乎是:

"AADSTS70002:请求主体必须包含以下参数:"client_secret或client_assertion">

后来还说:

"引发了类型为'Web.TPEngine.Providers.BadArgumentRetryNeeddException'的异常。">

我仔细检查了一些东西:

  • 在我的身份体验框架>策略密钥中,按照指南中的步骤操作后,我有以下4个密钥:
    • B2C_1A_AdminClientEncryptionKeyContainer
    • B2C_1A_FacebookSecret
    • B2C_1A_TokenEncryptionKeyContainer
    • B2C_1A_密钥签名密钥容器
  • 在常规的AAD>应用程序注册中,我有以下应用程序:
    • 身份体验框架
    • ProxyIdentity体验框架
  • ProxyIdentity ExperienceFramework已从IdentityExperienceFrame委派访问IdentityExperienceFramework权限。
    • 我已经为这两个应用程序授予了权限
  • 在TrustFrameworkExtensions.xml中,两个应用程序ID都被正确替换,各两个位置

非常感谢您的帮助。非常感谢。

您的ProxyIdentity ExperienceFramework应用程序被错误地创建为Web应用程序/API。您需要将其重新创建为Native应用程序确保您不会忘记相应地将基本策略中的client_id更新为新的ProxyIdentity ExperienceFramework。

错误AADSTS70002:请求主体必须包含以下参数:当您尝试使用已注册为Web App/API但未提供所需的client_secret的应用程序的client_id获取令牌时,将发生"client_secret或client_assertion。在本机应用程序的情况下,不需要client_secret。

登录时,Azure AD B2C的信任框架(执行自定义策略的东西)在内部尝试使用ProxyIdentity ExperienceFramework应用程序(本机应用程序)获取Identity Experience framework应用程序的令牌(Web API)。如果您错误地将后者创建为Web应用程序/API,B2C的策略引擎将无法获取令牌,该令牌将显示为您的密码不正确错误消息给用户。

相关内容

最新更新