我想通过 Azure Active Directory (AD) B2C 在我的网站内置 PHP
中集成多重身份验证 (MFA),仅用于身份验证目的,
我检查了它的文档和一些代码示例,我从这里提到的教程中创建了以下内容 https://learn.microsoft.com/en-us/azure/active-directory-b2c/tutorial-create-tenant
- Azure AD B2C 租户
- 注册网络应用程序(回复 URL 为
https://jwt.ms
) - 创建注册和登录用户流程/密码重置用户流程
我通过 Azure 门户提供的 URL 测试了注册/登录用户流程和密码重置用户流程,标题为 运行用户流程端点 ►
,其工作按预期完美,并且在成功响应我得到了一个 JWT token ,其中包含如下信息:
但我不确定我的计划是否按照标准正确,
我的计划是这样的 - 我将在用户个人资料部分提供一个选项来启用/禁用 MFA,因此,如果用户启用 MFA,则在下次登录时,成功验证后(通过电子邮件和密码存储在数据库中),用户将被重定向到 MFA 页面, 在 MFA 页面上有 2 个按钮,注册/登录和忘记密码,
注册/登录 - 此按钮包含由 Azure AD B2C 中的“注册并登录”用户流程创建的链接 - 用户流程(策略),
忘记密码 - 此按钮具有由 Azure AD B2C 中的“密码重置”用户流创建的链接 - 用户流(策略), - 我需要添加此链接,因为注册/登录中的忘记密码链接未按预期工作,它将重定向到回复网址,并带有一些信息和消息,例如
AADB2C90118:用户忘记了密码
在两个用户流程中我都启用了 MFA, 因此,在成功进行 MFA 后,我会将用户重定向到我网站中的仪表板, 否则用户将保留在 MFA 页面上,
我解释了我的计划,请建议我,如果我在注册/登录或忘记密码流程中做错了什么?或者如果我能做得更好,
为了在 PHP 中解码 JWT token ,我在
.
上破坏它并使用base64_decode()
提取数据,手动解码是否合适?另请告诉我如何验证它?
任何帮助或建议都会对我有帮助,
提前致谢,
最佳答案
1。我解释了我的计划,请建议我,如果我在做某事 注册/登录或忘记密码流程错误?或者如果我可以做 更好
看来您的做法是正确的,但如果您愿意,可以在密码上添加一些自定义规则,以使其更加安全可靠。 B2C provides那里有很多规则。您可以找到所有Password enforcement rule 在这里。
2。为了在 PHP 中解码 JWT token ,我在 .并使用 base64_decode() 提取数据,手动解码好不好? 另请告诉我如何验证它?
使用 base64 破解 JWT token 是可以的。您可以手动检查它,但最好在程序中处理它。关于 token 验证,可能已经解决了一些线程,因此我指的是您可以轻松实现的线程。检查这里你会怎么样 validate Jwt token另请检查this
Note For manual decode you could validate https://jwt.io/ here you can get many algorithm together.
你可以尝试
查看您的案例后,我还建议您查看 B2C self-service password reset option据我所知,这在开发人员中也很受欢迎。您可以尝试一下,结果它将减少您的许多开销,让您无需花费更多麻烦即可处理该场景。
Note : Please have look on referred document for token validation you would get some good idea how you can validate your token
关于php - Azure Active Directory B2C - 用于登录/注册和密码重置的用户流(策略),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55626201/