我可以问一下OpenID主体是否通过了双因素身份验证吗?

我可以问一下OpenID主体是否通过了双因素身份验证吗?,openid,facebook-oauth,google-openid,two-factor-authentication,microsoft-account,Openid,Facebook Oauth,Google Openid,Two Factor Authentication,Microsoft Account,我正在为一个新项目设计一个身份验证方案。人们可以使用OpenID通过Google/Facebook/Microsoft等帐户进行身份验证。所有这些提供者都支持双因素身份验证 我的目标很简单:当用户使用OpenID主体注册或登录时,我想查询身份验证服务并告诉用户是否启用了双因素身份验证。如果他做到了,并且通过了这两个步骤,“欢迎用户”,否则“对不起,伙计,但是这个站点非常安全,您必须启用双因素身份验证” 使用当前的服务是否可能做到这一点?我读过,但没有发现任何相关信息。由于OpenID Conne

我正在为一个新项目设计一个身份验证方案。人们可以使用
OpenID
通过Google/Facebook/Microsoft等帐户进行身份验证。所有这些提供者都支持双因素身份验证

我的目标很简单:当用户使用OpenID主体注册或登录时,我想查询身份验证服务并告诉用户是否启用了双因素身份验证。如果他做到了,并且通过了这两个步骤,“欢迎用户”,否则“对不起,伙计,但是这个站点非常安全,您必须启用双因素身份验证”


使用当前的服务是否可能做到这一点?我读过,但没有发现任何相关信息。由于OpenID Connect不支持令牌的任何“两步身份验证”属性,也不支持可能被利用的“强度”属性,因此我必须依赖于可能显示此类信息的特定概要API。但至少在谷歌API中,我还没有发现任何协议。

记录在案:OpenID2.0和OpenIDConnect是不同的协议。大多数提供商正在从早期的OpenID2.0标准转向OpenIDConnect

Facebook不支持OpenID2.0或OpenIDConnect,但使用构建在OAuth2.0之上的自己的登录协议。谷歌已经弃用OpenID2.0支持,转而支持OpenIDConnect。微软支持LiveID的OpenID2.0,但也在向OpenIDConnect迈进;他们的Azure AD帐户已经支持OpenID连接

OpenID Connect支持不同的身份验证方法,客户端可以通过将请求的声明集中的
acr
声明作为身份验证请求的一部分来请求指定的值,请参阅:。提供者必须在
id\u令牌
中返回与请求的值之一匹配的
acr
索赔值。提供者还可以返回一个
amr
声明,该声明是字符串的JSON数组,这些字符串是身份验证中使用的身份验证方法的标识符


不幸的是,您提到的提供商还不支持
acr
概念,因此答案是“否”,尽管Microsoft Azure AD在
id\u令牌

中返回了
amr
声明可能重复,但它不是重复的,因为stackoverflow.com/q/27484582/50447是关于OAuth的,这个问题是关于OpenID的,如果有“您提到的提供商不支持acr概念”这句话的来源,那就太好了.