Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Azure Active Directory B2C-用于登录/注册和密码重置的用户流(策略)_Php_Azure_Jwt_Azure Active Directory_Azure Ad B2c - Fatal编程技术网

Php Azure Active Directory B2C-用于登录/注册和密码重置的用户流(策略)

Php Azure Active Directory B2C-用于登录/注册和密码重置的用户流(策略),php,azure,jwt,azure-active-directory,azure-ad-b2c,Php,Azure,Jwt,Azure Active Directory,Azure Ad B2c,我想通过Azure Active Directory(AD)B2C在我的网站内置PHP中集成多因素身份验证(MFA),仅用于身份验证 我查看了它的文档和一些代码示例,我从这里提到的教程中创建了以下内容 Azure广告B2C租户 注册web应用程序(回复URL为https://jwt.ms) 创建注册和登录用户流/密码重置用户流 我通过Azure Portal提供的URL测试了注册/登录用户流和密码重置用户流,URL标题为运行用户流结束点►,它的工作正如预期的那样完美,在成功响应后,我得到了一

我想通过Azure Active Directory(AD)B2C在我的网站
内置PHP
中集成多因素身份验证(MFA),仅用于身份验证

我查看了它的文档和一些代码示例,我从这里提到的教程中创建了以下内容

  • Azure广告B2C租户
  • 注册web应用程序(回复URL为
    https://jwt.ms
  • 创建注册和登录用户流/密码重置用户流
我通过Azure Portal提供的URL测试了注册/登录用户流和密码重置用户流,URL标题为
运行用户流结束点►,它的工作正如预期的那样完美,在成功响应后,我得到了一个JWT令牌,其中包含如下信息:

但我不确定我的计划是否符合标准

我的计划是这样的-我将在用户配置文件部分提供一个选项来启用/禁用MFA,因此如果用户启用MFA,那么在下一次登录时,在成功验证(通过存储在数据库中的电子邮件和密码)后,用户将重定向到MFA页面, 在MFA页面上有两个按钮,注册/登录和忘记密码

  • 注册/登录-此按钮具有由Azure AD B2C的“注册并登录”用户流创建的链接-用户流(策略)

  • 忘记密码-此按钮有Azure AD B2C上“密码重置”用户流创建的链接-用户流(策略),-我需要添加此链接,因为注册/登录中的忘记密码链接未按预期工作,它将在回复Url上重定向,有一些信息和这样的消息
    AADB2C90118:用户忘记了密码

在两个用户流中,我都启用了MFA, 所以成功的MFA后,我会将用户重定向到我网站的仪表板, 否则用户将保留在MFA页面上

  • 我解释了我的计划,请建议我,如果我在注册/登录过程中做错了什么,或者忘记了密码流?或者如果我能做得更好

  • 对于PHP中的解码JWT令牌,我将在
    上对其进行破坏,并使用
    base64\u decode()
    提取数据,手动解码是否好?另外,请让我知道如何验证它

  • 任何帮助或建议都会对我有帮助


    提前感谢,

    密码重置流程的工作方式有点不同。如果用户单击“重置密码”链接,AADB2C将重定向到依赖方服务(主服务),并显示一个特定的错误代码(AADB2C90118)。然后,依赖方服务应调用重置密码策略流

    对于解码JWT令牌,应该有现有的库,建议使用它们

    1。我解释了我的计划,如果我在做什么,请建议我 注册/登录错误或忘记密码流?或者如果我能 它更好

    看起来你的方法是对的,但是如果你想的话,你可以在你的密码上添加一些自定义的规则,使它更加安全可靠。这里有很多规则。你可以在这里找到一切

    2。对于PHP中的解码JWT令牌,我正在打开它。和使用 base64_decode()要提取数据,手动解码好吗? 另外,请告诉我如何验证它?

    使用base64破坏JWT令牌是可以的。您可以手动检查它,但最好在程序中处理它。关于令牌验证,可能已经解决了一些问题,所以我指的是那些您可以轻松实现的问题。在这里检查你怎么检查

    注意对于手动解码,您可以在此处验证,您可以将许多算法组合在一起

    你可以试试

    在看过你的案例后,我还建议你看看,到目前为止,我所知道的在开发者中也很流行。您可以尝试一下,结果它将减少您的许多开销,并让您无需承担更多的麻烦就可以处理该场景

    注意:请查看引用的文档,因为您将了解如何验证您的文档 代币


    嗨,亨利,如果你把你的代码包括进去,它会更适合你。如果您的问题来自于此,则缺少的代码可能是转移到主SO站点的原因。这里是它的缺失代码和一个具体的错误问题。实际上,这里没有提到的代码,因为所有的事情都是由B2C的用户流(策略)处理的,它只给出一个URL,ww需要重定向到他的网站,这将处理所有的事情,并给出JWT的响应,我提到了我现在如何解码它,@如果我的答案有帮助,你可以把它标记为帮助他人的答案。谢谢。嗨@Abhishek,谢谢您的回答,我将使用此代码
    AADB2C90118
    来识别密码重置流程,除此之外,还有什么需要更正的吗?那么请建议我,@HerryShawn看一看,如果你还有任何疑问,请告诉我。请随意分享您的问题。非常感谢。快乐的编码。@HerryShawn很高兴,快乐的编码!b2c解决方案是唯一可以自定义登录屏幕并避免microsoft登录流的解决方案类型吗?尝试基本上进行相同类型的集成(azure广告已经存在,用户已经存在,尝试针对他们进行验证并使用azure中的MFA),但是azure中的产品和文档有点混乱。是的,我同意文档有点混乱,但我们正在努力改进它。是的,您可以使用B2C进行自定义登录,也可以使用MFA。如果您需要任何帮助,请随时将您的问题发布到新线程,我们的社区工程师正在等待帮助您。谢谢。创建于此: