2017-10-06 37 views
2

我按照这里的入门工作流程: https://docs.microsoft.com/azure/active-directory-b2c/active-directory-b2c-get-started-customAzure的B2C示例自定义策略,在登录时显示“您的密码不正确”

我跟着它从无到有,两次,并试图签署时有两次与登录&注册自定义策略我被提示'您的密码不正确'。我如何正确认证?

的事情是工作:

  • 当我立即登记用户的旅程结束,用户被添加到目录
  • 使用内置的政策我可以登录并注册
  • 使用内置策略我可以使用自定义政策注册的用户登录

使用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.BadArgumentRetry NeededException'被抛出。“

有些事情,我仔细检查过:

  • 在我的身份体验架构>策略项,我有以下的指南中的步骤后,下面的4个按键:
    • B2C_1A_AdminClientEncryptionKeyContainer
    • B2C_1A_FacebookSecret
    • B2C_1A_TokenEncryptionKeyContainer
    • B2C_1A_TokenSigningKeyContainer
  • 在常规AAD>应用程序注册,我拥有的应用程序:
    • IdentityExperienceFramework
    • ProxyIdentityExperienceFramework
  • 而ProxyIdentityExperienceFramework从IdentityExperienceFramework授予访问权限IdentityExperienceFramework。
    • 而且我已经达到了两个应用的授予权限。
  • 这两个应用程序ID已在TrustFrameworkExtensions中正确替换。xml,两个地方各

任何帮助,非常感谢。谢谢。

+0

它应该工作。您是否可以敏锐地检查所有步骤**创建IdentityExperienceFramework应用程序**和**创建ProxyIdentityExperienceFramework应用程序**您应该在** Azure Active Directory ** B2C租户的刀片服务器创建两个应用程序 – Ramakrishna

+1

是“55555555-5555- 5555-5555-555555555555“”ProxyIdentityExperienceFramework“应用程序的客户端标识符?你能否粘贴你的TrustFrameworkExtensions.xml文件? –

回答

5

您的ProxyIdentityExperienceFramework应用程序被错误地创建为Web应用程序/ API。您需要将其重新创建为本机应用程序。请确保您不要忘记将基本策略中的client_ids更新为相应的新ProxyIdentityExperienceFramework。

错误AADSTS70002:请求体中必须包含下列参数:“client_secret或client_assertion当您尝试使用的client_id对于被注册为Web应用程序/ API的应用程序,以获得令牌,但没有提供发生所需的client_secret。在Native应用程序的情况下,不需要client_secret。

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

+0

哦,那就是了。我认为这是我忽略的一些细节。 非常感谢! – fei0x

相关问题