【问题标题】:MS Graph API - Get Access Token w/ Multi-Factor Authentication RequiredMS Graph API - 获取需要多因素身份验证的访问令牌
【发布时间】:2020-07-30 23:52:33
【问题描述】:

我正在尝试使用 Postman 通过 Microsoft Graph API “获取用户访问令牌”;但是,我的组织最近启用了多因素身份验证,现在这个调用失败了,说明:

"error": "invalid_grant",

"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...

Microsoft documentation for MS Graph API using Postman 写得很好,但它缺少如何将第二个因素传递给请求的明确说明。

错误指向https://login.microsoftonline.com/error?code=50076,但这只是提供相同的信息。

我有 MS 身份验证器应用程序,它为我提供了这个关键/第二个因素;但是,我不知道如何将其添加到正文/标题中。 我正在尝试查找用于传递附加安全令牌的特定密钥名称(我尝试过类似“token”、“pcToken”、“key”等)

.

【问题讨论】:

  • 嗨,你有机会看看我的回答吗?还有什么不清楚的吗?

标签: postman microsoft-graph-api azure-ad-graph-api multi-factor-authentication


【解决方案1】:

上面的答案没有描述与通过代码绕过 MFA 相关的任何内容。 MFA 身份验证您需要使用代理身份验证,其中 MS Authenticator 应用程序充当代理。 如果您集成了适当的库(ADAL、MSAL),您的代码将能够与代理正确交互。

在 Android 和 iOS 上,代理启用:

  • 单点登录 (SSO)。您的用户无需登录到每个 应用

  • 设备标识(通过访问设备 设备在工作场所时在设备上创建的证书 加入)。为此,我们使用 Intune 管理的设备。

  • 应用识别验证(真的是outlook哪一个 打电话给我?)。它的工作方式是当应用程序调用代理时, 它传递了它的重定向 url,然后代理对其进行验证: 例如,在 iOS 上,重定向 URL 是 ms-word://com.msft.com,即代理 解析并获取 appId(在 // 之后)并验证它是否相同 作为调用应用程序的 appId,它知道(由操作系统)。 在 Android 上,重定向 URL 具有以下格式 msauth://com.msft.word/。

要启用其中一项功能,应用程序开发人员需要在平台参数中将 UseBroker Boolean 设置为 true。他们还需要实现一个委托,以对回调应用程序的代理做出反应,如 Android 和 iOS 上代理的平台参数属性中所述。

有关代理身份验证示例,请参阅 MS 文档:

【讨论】:

    【解决方案2】:

    我也处于同样的困境中,所以我采取了以下措施来解决它:

    首先,我得到的信息来自:

    https://github.com/microsoftgraph/microsoftgraph-postman-collections/issues/4

    您需要在 Postman 中使用 OAuth 2.0 授权。使用相同的 GET 请求,转到 Authorization -> 将类型更改为“OAuth 2.0”,然后单击“Get New Access Token”。

    从那里,您可以输入自己的详细信息: (将 [TenantID] 替换为您自己的)

    Screenshot

    【讨论】:

    • 感谢@Zhir - 我希望不必使用来自 GIT/Postman 存储库的“使用 Postman OAuth2 获取访问令牌”调用,但似乎在启用 MFA 时您必须这样做。跨度>
    • Postman 还允许您使用他们的回调 url:app.getpostman.com/oauth2/callback 我注意到将其添加到我的 AAD 的应用程序身份验证需要几分钟才能复制。当我第一次尝试它时,我收到一个关于不匹配的回调 url 的错误。第二天我试了一下没有问题(没有变化)
    • 很高兴我能提供帮助,我在使用他们的回调 url 时也收到了错误,这就是为什么我将其更改为我为我的应用程序设置的重定向 URL。
    【解决方案3】:

    MFA 不支持用户名密码身份验证,因为 MFA 需要交互。但是如果需要使用用户名密码认证登录,则没有交互。

    Username Password Authentication

    需要进行 MFA 的用户将无法登录(因为没有 互动)

    【讨论】:

      猜你喜欢
      • 2016-10-19
      • 1970-01-01
      • 1970-01-01
      • 2019-03-21
      • 2023-03-21
      • 1970-01-01
      • 2019-07-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多