无法在Azure上对API管理执行资源所有者密码OAuth2身份验证

无法在Azure上对API管理执行资源所有者密码OAuth2身份验证,oauth,azure-active-directory,azure-api-management,Oauth,Azure Active Directory,Azure Api Management,我有一个Flatter移动应用程序,需要验证和访问Azure API管理背后定义的Azure功能。我已经用授权码grant对它进行了配置和测试,它工作正常(用这篇文章来指导我)。现在,我想看看资源所有者密码授权是否有效,但我无法让它正常工作(基本上与前面提到的文章中描述的相同,但对于资源所有者密码授权)。 我重新配置了API管理OAuth2设置,如下所示: 我还将移动客户端(在默认目录下-应用注册->我的移动应用客户端->支持的帐户类型)配置为公共客户端,以允许资源所有者密码凭据(ROPC)

我有一个Flatter移动应用程序,需要验证和访问Azure API管理背后定义的Azure功能。我已经用授权码grant对它进行了配置和测试,它工作正常(用这篇文章来指导我)。现在,我想看看资源所有者密码授权是否有效,但我无法让它正常工作(基本上与前面提到的文章中描述的相同,但对于资源所有者密码授权)。 我重新配置了API管理OAuth2设置,如下所示:

我还将移动客户端(在默认目录下-应用注册->我的移动应用客户端->支持的帐户类型)配置为公共客户端,以允许资源所有者密码凭据(ROPC)流(不确定是否需要)

当我执行身份验证时(即,点击令牌端点传递密码grant_type、client_id、用户密码、用户id和作用域),我返回以下错误(请注意,我使用的是默认的无目录试用版,如果有区别的话):

OAuth授权错误(无效的_请求):未找到AADSTS90002:租户“”。如果租户没有活动订阅,则可能发生这种情况。请与您的订阅管理员联系

但是我正在使用的令牌端点URI包含正确的租户ID,如果我在authorize和令牌端点URI中使用相同的租户ID执行身份验证代码流,那么所有这些都可以正常工作


不确定要提供哪些其他信息才能更好地诊断,因此请询问。

除了范围值之外,配置都是正确的。由于您使用的是v2.0端点,因此它应该是
api://{backendapp_clientId}/.default

我用开发人员门户对它进行了测试,它按预期工作

您还可以通过直接调用令牌端点来测试它


我能够使用指令实现该功能,但不同的是,我最初失败可能是因为我使用的是默认目录。一旦我创建了另一个目录,我就可以获得身份验证代码和资源所有者密码流。

确实为默认范围提供了它,但仍然无法通过。同样的错误。我仍然有问题。有人能帮忙吗?你是如何测试ROPC流量的?