oauth2.0 如何使用API对Azure目录进行身份验证(即使MFA已打开)

f45qwnt8  于 2022-11-21  发布在  其他
关注(0)|答案(1)|浏览(229)

我希望从我的应用程序验证有效的Azure Directory用户。因此,我希望的输出是该用户是否有效?
我使用此API https://login.microsoftonline.com/{tenantID}/oauth2/v2.0/token和以下URL编码主体(如client_idscopeclient_secretusernamepasswordgrant_type)进行身份验证,但此API仅在用户禁用其MFA时工作,但即使用户已启用MFA,我也希望进行身份验证。

hxzsmxv2

hxzsmxv21#

你遇到了ROPC流的其中一个限制。无法使用该流对启用了MFA的用户进行身份验证。解决方案是将你的应用程序更改为使用交互式流(如授权代码流)。这将要求你的应用程序将用户转发到Azure AD以登录,然后你的应用程序以交换方式获取访问令牌。
优点:

  • 您不需要处理密码
  • 可以使用Azure AD的所有安全功能,包括MFA

缺点:

  • 复杂性将增加(库在此处提供帮助)

文件:https://learn.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-auth-code-flow
如果您有Javascript前端应用程序,您可以使用MSAL.js来处理身份验证。也可以使用其他OpenID Connect兼容库。

相关问题