无法检索 Azure 身份验证令牌。帐户必须添加到目录

Failed to retrieve Azure auth token. Account must be added to the directory

我在 Azure 中有一个 Active Directory 对象,它有一个本机客户端应用程序。 该应用程序具有服务管理 API 访问的所有必要权限。

在AD目录下,我添加了2个用户。一个是我创建目录对象时登录的帐户。创建目录时会自动添加此帐户。另一个是我在创建目录对象后手动添加的。

因此,在下面的示例中,帐户 2 是我在创建目录时登录的帐户。我手动添加的帐户 1。

当我尝试使用帐户 2 凭据从 oauth2 端点检索访问令牌时,出现错误:

AADSTS50034: To sign into this application the account must be added to the REDACTED directory.

然而,该帐户显然已添加到目录中。 此外,当我使用帐户 1 的凭据时,我能够成功进行身份验证。 我在我的脚本中唯一改变的是用户名和密码。客户端 ID 和租户 ID 保持不变。

当我使用的帐户显然是该目录的用户时,为什么会出现上述错误?

我在另一个线程中找到了答案。 如果我理解正确的话,自动登录似乎只能从 Azure Active Directory 的帐户完成,而不是 Microsoft 帐户。

Link to answer

您也可以使用account2登录。您需要在登录上下文中提供目录名称作为输入。因此,在 App_Start.

中配置您的 "Startup.Auth.cs"

Account1 的用户名中包含目录名称或自定义域名,Azure 登录帮助您登录。但是,对于 account2,您拥有未注册您的应用程序的 Microsoft 帐户目录。 因此,您会收到错误消息。

使用 this link 以获得更好的概念。此示例代码使用了 Azure AD 用户和 Microsoft 帐户用户的登录,就像您的情况一样。