Azure ad b2c Azure B2C--配置;“忘记密码”;没有重定向的工作流? 背景

Azure ad b2c Azure B2C--配置;“忘记密码”;没有重定向的工作流? 背景,azure-ad-b2c,azure-ad-b2c-custom-policy,Azure Ad B2c,Azure Ad B2c Custom Policy,根据,Azure B2C中忘记密码工作流的预期步骤为: 查看登录页面 单击“忘记密码链接” B2C向应用程序发送错误“用户忘记了密码” 然后,应用程序将重定向回相应的密码重置工作流 挑战 然而,在我的例子中,我将Azure AD B2C与CMS集成,CMS没有定制应用程序的灵活性。此产品中的标识工作流(我无权配置)不了解如何处理Azure AD B2C提供商的此类错误 这意味着,当前任何在登录页面上单击忘记密码链接的用户都会在CMS中出现500错误 问题: 是否有任何方法可以修改此工作流,

根据,Azure B2C中忘记密码工作流的预期步骤为:

  • 查看登录页面
  • 单击“忘记密码链接”
  • B2C向应用程序发送错误“用户忘记了密码”
  • 然后,应用程序将重定向回相应的密码重置工作流
挑战 然而,在我的例子中,我将Azure AD B2C与CMS集成,CMS没有定制应用程序的灵活性。此产品中的标识工作流(我无权配置)不了解如何处理Azure AD B2C提供商的此类错误

这意味着,当前任何在登录页面上单击忘记密码链接的用户都会在CMS中出现500错误

问题:
  • 是否有任何方法可以修改此工作流,使其重定向到命名用户旅程/工作流,而不是返回错误?在这种情况下,如果工作流是硬编码的,就可以了
  • 除此之外,是否有任何方法指示Azure B2C不要呈现“忘记密码”链接?或者我需要通过自定义CSS/JS删除它吗?(如果有必要,可以,但希望避免。)

有几种方法可以解决这个问题,但我建议您先看看这个示例,以嵌入密码重置过程

您还可以修改
设置。forgotPasswordLinkLocation
元数据,以隐藏您的自断言配置文件,如问题所述


虽然Brad C提供的答案非常好,值得考虑,但我最终还是以一种稍微不同的方式解决了这个问题,这种方式适合我们的用例,而且省力

在登录页面加载时,我用我创建的
passwordreset
工作流的引用替换前面提到的password链接的内容。我获取页面的当前URL,并将
登录
的实例替换为
密码重置

我的自定义HTML页面中的jQuery如下所示:

$(文档).ready(函数(){
var currentUrl=$(位置).attr('href');
var modifiedPasswordResetUrl=currentUrl.replace('signup_sign','passwordreset');
var passwordResetLinkSelector=$(“放弃密码”);
如果(passwordResetLinkSelector.length>0){
//只有在实际找到href时才尝试设置它;在某些使用此模板的屏幕上它不会出现。
passwordResetLinkSelector.attr('href',modifiedPasswordResetUrl);
}
});

哦,太棒了!感谢您提供的样本链接;我已经完成了回购协议,但却错过了作为一个条目。如果这个流程有效的话,我一定会把这个标记为答案。很高兴有选择。这是目前唯一的选择。很快我们就要被预烘焙了。这是为了注意,在使用布局版本2.1.2时不会返回错误AADB2C90118。相反,b2c端会出现一个服务器错误。如果有人有一些洞察力来回答这个问题