gpt4 book ai didi

Azure oauth v2.0 interaction_required 错误与受信任的 ip 和 MFA

转载 作者:行者123 更新时间:2023-12-05 05:05:05 24 4
gpt4 key购买 nike

我已在我的 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=code

2 - (MFA) 用户提交带有手机上收到的代码的表单

3 - 用户被重定向到 https://example.com/callback?code={azure_given_code}

4 - 我通过以下 POST 请求服务器端{azure_given_code} 交换为 token :

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 - 我收到一个访问 token ,并且可以从此网址检索登录用户,同样,服务器端:

https://graph.windows.net/me?api-version=1.6

我将我们的办公室 IP 地址添加到受信任的 IP 列表中,以便用户在从我们的网络连接时可以绕过 MFA。

如果我在办公网络之外执行此工作流程(来自触发 MFA 的不受信任的 IP),则一切正常。但是对于我的办公室 IP,第 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)都正常工作,我缺少什么?

我真的被这个问题困扰了,非常感谢您的帮助。

最佳答案

这是我解决问题的方法。

当用户被重定向到登录网址 https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/authorize?... 他的 IP 是用于根据可信ip规则判断是否可以绕过MFA。

然后,当检索 azure_given_code 时,会使用服务器 IP服务器端发出 token 请求,这就是导致错误(服务器 IP 不可信)。

在客户端执行 POST https://login.microsoftonline.com/{tenant_id}/oauth2/token 确实解决了该问题,因为用于请求的 IP 是可信的。

编辑

在这种情况下,您不应公开 client_secret 前端。您应该在 azure 中将您的应用程序配置为单页应用程序平台。

关于Azure oauth v2.0 interaction_required 错误与受信任的 ip 和 MFA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60671619/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com