我想从我的应用程序验证一个有效的Azure Directory用户。所以我想要的输出是用户是否有效?
我使用此APIhttps://login.microsoftonline.com/{tenantID}/oauth2/v2.0/token
与以下urlencoded body,如client_id
,scope
,client_secret
,username
,password
,grant_type
的身份验证,但此API仅在用户禁用其MFA时工作,但我想验证即使用户已启用MFA。
您已经触及了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兼容库。