我已经在我的web服务器上设置了这个Azure AD身份验证工作流:
1 -从这个网址登录的用户:
https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/authorize?
client_id={client_id}
&redirect_uri=https://example.com/callback
&scope=openid%20https%3A%2F%2Fgraph.windows.net%2Fuser.read
&response_mode=query
&response_type=code2 - (MFA)用户提交一份带有在其电话上收到的代码的表单。
3 -用户被重定向到https://example.com/callback?code={azure_given_code}
4 - i通过以下POST请求服务器端将{azure_given_code}交换为令牌:
POST https://login.microsoftonline.com/{tenant_id}/oauth2/token
{
"client_id": "{client_id}",
"client_secret": "{client_secret}",
"code": "{azure_given_code}",
"grant_type": "authorization_code",
"redirect_uri": "https://example.com/callback"
}5 - I接收一个访问令牌,并可以从这个url检索登录用户,同样,服务器端:
https://graph.windows.net/me?api-version=1.6我将我们的办公室ip地址添加到受信任的ip列表中,以便用户在从我们的网络连接时可以绕过MFA。
如果我在办公室网络之外执行此工作流(来自触发MFA的不受信任的ip ),一切都可以很好地工作。但是,对于我的office,第2步被绕过(正如预期的那样),在第3步中,我得到以下错误:
{
"error": "interaction_required",
"error_description": "AADSTS50076: Due to a configuration change made by your administrator, or because you moved to a new location, you must use multi-factor authentication to access …", "error_codes": [50076],
"timestamp": "2020-03-13 12:54:58Z",
"trace_id": '...'
},在这两种情况下(来自受信任的和不受信任的ip),我缺少什么来让这个工作流工作呢?
我真的困在这个问题上了,非常感谢你的帮助。
发布于 2020-08-23 09:33:21
我就是这样解决问题的。
当用户被重定向到登录url时,https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/authorize?... h IP使用ip来确定他是否可以根据可信的ip规则绕过MFA。
然后,当检索到azure_given_code时,对令牌的请求是服务器端,使用导致错误的服务器IP (服务器IP不是可信的)。
执行POST https://login.microsoftonline.com/{tenant_id}/oauth2/token客户端确实解决了这个问题,因为用于请求的IP是可信的。
https://stackoverflow.com/questions/60671619
复制相似问题