oauth2.0 如何确定来自社交身份提供商的用户是否使用MFA进行了身份验证?

qeeaahzv  于 2023-10-15  发布在  其他
关注(0)|答案(1)|浏览(171)

我正在为Azure AD B2C解决方案做准备,该解决方案将支持使用Apple,Google和Microsoft等社交身份提供商登录。我的客户希望强制用户在Azure AD B2C中使用多因素身份验证(MFA)登录,但前提是他们尚未使用社交身份提供程序登录。
Azure AD B2C中是否有方法确定用户是否已使用MFA进行身份验证?如果令牌中有某种MFA声明来表明这一点,那就太好了,但我不确定这是否是标准的。要求用户执行两次MFA不是非常用户友好。
我发现一个较旧的问题表明Google不共享此信息:Google OAuth2 API. Check user has two factor authentication (Not GSuite)
但这个问题在六年前就被问到了。我希望到目前为止,OAuth2/OIDC标准化在共享这类信息方面取得了一些进展。

krcsximq

krcsximq1#

在标准方面,有可选的amr声明。OpenID Connect规范:
可选。身份验证方法参考。字符串的JSON数组,这些字符串是身份验证中使用的身份验证方法的标识符。例如,值可能指示使用了密码和OTP身份验证方法。在权利要求中使用的特定值的定义超出了本说明书的范围。使用此声明的各方需要就所使用的值的含义达成一致,这些值可能因具体情况而异。amr值是区分大小写的字符串数组。
在JSON Web Token(JWT)Profile for OAuth 2.0 Access Tokens规范中也有类似的建议。
但真实的答案是它取决于身份提供者。每一个都可以在自己的自定义声明中返回这些信息,使用自己的值作为amr声明,或者根本不返回这些信息。

相关问题