相同的Azure应用程序在不同的租户中不起作用

相同的Azure应用程序在不同的租户中不起作用,azure,azure-active-directory,microsoft-graph-api,Azure,Azure Active Directory,Microsoft Graph Api,我使用Azure应用程序让用户登录到web应用程序和桌面应用程序。我还通过Microsoft Graphs/user/endpoint查询用户信息。 因此,我们必须在Azure中注册应用程序;一种是web应用程序/api,它具有用户登录和从graph读取所有用户配置文件的权限。另一个是本机应用程序,具有第一个应用程序的权限和用户登录的权限 在一个租户中,这样做很好。但是,在另一个租户中,web api具有登录用户的权限,但由于权限不足,Graph拒绝访问/users/endpoint。错误是:授

我使用Azure应用程序让用户登录到web应用程序和桌面应用程序。我还通过Microsoft Graphs/user/endpoint查询用户信息。 因此,我们必须在Azure中注册应用程序;一种是web应用程序/api,它具有用户登录和从graph读取所有用户配置文件的权限。另一个是本机应用程序,具有第一个应用程序的权限和用户登录的权限

在一个租户中,这样做很好。但是,在另一个租户中,web api具有登录用户的权限,但由于权限不足,Graph拒绝访问/users/endpoint。错误是:授权请求被拒绝,权限不足,无法完成操作

但是,在另一个租户中,完全相同的特权可以正常工作。在有故障的租户中,我们从图中获得一个令牌,但当我们在用户端点上使用该令牌时,它会抛出“权限不足”错误

通过桌面应用程序(我们使用owin)登录用户在一个租户中工作,但在有故障的租户中,它表示app tenant.onmicrosoft.com/guid在tenant.onmicrosoft.com中不存在 应用uri在设置中是正确的,并且应用在两个租户中具有相同的权限

我们尝试重新创建应用程序,因为这解决了以前开发类似应用程序时遇到的类似问题。然而,这一次似乎不起作用。现在我在这里束手无策。这里还会有其他问题吗? 故障租户是多租户的一部分。但是,到目前为止,我们只对一个租户中的用户进行投票

这些应用程序也已通过azure门户获得管理员的同意。我错过了什么?我应该如何继续尝试修复此错误

编辑:我在我的租户中添加了一个新目录,但它在这个新目录中不起作用。与我们的客户租户相同的错误。 目录A的工作令牌:

eyJ0eXAiOiJKV1QiLCJub25jZSI6IkFRQUJBQUFBQUFDNXVuYTBFVUZnVElGOEVsYXh0V2pUQkVOV21GUUgtZjRGS0VjYlIwU3Y1NndrdzhvSjhjbDIwX3JtZEJBc2h6eDhKT2VNZjFEbVFjNm1GUUdxZ2VSRFJZMTEzNXE3ZXJkTjlHTFZ6T3NycnlBQSIsImFsZyI6IlJTMjU2IiwieDV0IjoiaTZsR2szRlp6eFJjVWIyQzNuRVE3c3lISmxZIiwia2lkIjoiaTZsR2szRlp6eFJjVWIyQzNuRVE3c3lISmxZIn0.eyJhdWQiOiJodHRwczovL2dyYXBoLm1pY3Jvc29mdC5jb20iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83NTYzNTY2OC03OGNlLTQzNDMtODMzYy0xOWM5ODkzNTRkZWYvIiwiaWF0IjoxNTM5NjExMjk2LCJuYmYiOjE1Mzk2MTEyOTYsImV4cCI6MTUzOTYxNTE5NiwiYWlvIjoiNDJSZ1lNaWExaldMdTJqUmkvWjlQenU4bHZkUEJRQT0iLCJhcHBfZGlzcGxheW5hbWUiOiJLRVlPMzY1IiwiYXBwaWQiOiI1MmQwMTdmZi1lY2ZjLTQ2NjgtYjZkZi0zZDNlZGYwZDFjNjIiLCJhcHBpZGFjciI6IjEiLCJpZHAiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83NTYzNTY2OC03OGNlLTQzNDMtODMzYy0xOWM5ODkzNTRkZWYvIiwib2lkIjoiMjM0ZDhmZTctNmYwZC00NmEwLWI1YmYtNzg1MWY0ZmFmNmMyIiwic3ViIjoiMjM0ZDhmZTctNmYwZC00NmEwLWI1YmYtNzg1MWY0ZmFmNmMyIiwidGlkIjoiNzU2MzU2NjgtNzhjZS00MzQzLTgzM2MtMTljOTg5MzU0ZGVmIiwidXRpIjoiUDNvc0hHdHQyMFdRTXhkLVFxcWNBQSIsInZlciI6IjEuMCIsInhtc190Y2R0IjoxNDQ3MDYyNTMyfQ.prmIaq8PzXfeovQPeIYS20xvZqpjPH-DvZNwQ3v08KOhTnfFaiCkxtw2wh1B37QQDbOveYqCWRi2CE6Uwpb6zg3-tFh1ma852HDqnJHYCKPajxeW9oIewAnCagB5FzOLQRT_EbX-lEREQVcPUHSZpRNmAWEM2MOZjDnkWun_aqohf_1op7Cy40Ol_PkRzoEgmA7pbXeI28IMPW3S4a5M_hBo_MZzRbVdxuG8YQKkVMWX0wAhpLHAYbdF1Rv5sITEpBP-KHdgJkTswLs3xvIRLyXxrXobG1aVQihr7LHFoCIU0NAcCUQLS2xkePuYGRB09k7hFQsbSNxoJSywBZWk7w
目录B的非工作令牌:

eyJ0eXAiOiJKV1QiLCJub25jZSI6IkFRQUJBQUFBQUFDNXVuYTBFVUZnVElGOEVsYXh0V2pUUS1NMnBUdmVjYTgzUXFuVmlBWWpJX0dLNHZrMTBMYVF2dGF5SGQ0WmZDVlRySm0wSmtOVDU2UlJSU0NuUlFPU0k0aVNHdXZZZ1cxelpaTE9KTkJTVHlBQSIsImFsZyI6IlJTMjU2IiwieDV0IjoiaTZsR2szRlp6eFJjVWIyQzNuRVE3c3lISmxZIiwia2lkIjoiaTZsR2szRlp6eFJjVWIyQzNuRVE3c3lISmxZIn0.eyJhdWQiOiJodHRwczovL2dyYXBoLm1pY3Jvc29mdC5jb20iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC84MTFjNjA2OS1kZDE4LTRmN2UtOTlhMy1lNjA2YzMyYjhhMjAvIiwiaWF0IjoxNTM5NjExMjI1LCJuYmYiOjE1Mzk2MTEyMjUsImV4cCI6MTUzOTYxNTEyNSwiYWlvIjoiNDJSZ1lPZzlraUZYR3BxNCtVMko1NHAvL2N2M0FRQT0iLCJhcHBfZGlzcGxheW5hbWUiOiJGZXRjaGluZ1VzZXJzQXBwIiwiYXBwaWQiOiJiNDAyZjI5Ni05OTAxLTRjNmMtYjA2MC1hNGI1M2VjNmMzMDQiLCJhcHBpZGFjciI6IjEiLCJpZHAiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC84MTFjNjA2OS1kZDE4LTRmN2UtOTlhMy1lNjA2YzMyYjhhMjAvIiwib2lkIjoiYzIyZWJmNmEtZDNkYS00ZGRjLWIzZTYtOWFhY2VmZWY3MmE4Iiwic3ViIjoiYzIyZWJmNmEtZDNkYS00ZGRjLWIzZTYtOWFhY2VmZWY3MmE4IiwidGlkIjoiODExYzYwNjktZGQxOC00ZjdlLTk5YTMtZTYwNmMzMmI4YTIwIiwidXRpIjoiNk4xRnBkRVZEMGFvRnM0UndVRGZBQSIsInZlciI6IjEuMCIsInhtc190Y2R0IjoxNTM5MTU0MTkxfQ.l_7qgXkco5FWR7pbX5rQzAtvnrb1e6xOr5byrvkYDcyNa85KmCu5b6ArfjxTmeDR82XTmYw51n2YAbWl2q8R58dqELOguddwnKkBBCiMwKsD_UvG2oX_M9ZMy-Lc8lERduolyST7D0BZSoYCNe9f0j85AXIOgXr_yMA5MrVz7qSVFKZ1if2BR9YvvMCphW2uQCrebEJAnchyxHiCb5refnhm2sfsDBRJqd5NWwK0-a956a6dC2zg59JbW55-3wezQOfXKYzC5ybzO7l1hV41EnJ4atBW6EvR2er7WyCAFb1Y1hSB_wgZSo7pC4LnQRRm9KXq-x2aSRKiUSg265K0RQ

您需要获得租户管理员的管理员同意。我假设,因为这是在点击
/users
时发生的,所以您请求了
User.Read.All
User.ReadWrite.All
。这两种方法都需要管理员同意,普通用户才能进行身份验证并提供用户同意


不久前我写了一篇文章,你可能会发现这里有帮助:。这些示例以v2端点为目标,而听起来您正在使用v1。也就是说,相同的同意模型和工作流适用于v1和v2

似乎这就是问题所在。一个声称拥有管理员权限的人在门户中单击了管理员同意。然而,当我向他发送带有&prompt=admin_同意的URL时,他被拒绝了。需要什么级别的管理员来授予这些权限?这是一个很好的问题,但我不确定是否允许全局管理员以外的任何人同意承租人这样做。我们尝试让全局管理员给予同意,但在图中仍然会出现相同的错误。您请求的范围是什么?我们从中获得令牌,然后执行两个不同的请求在应用程序中的不同位置。最简单的一个方法就是将令牌从第一个请求发送到另一个请求,我现在在postman中用两个请求并排尝试了这一方法。在一个租户中工作,而不是在另一个租户中工作。不同租户中的两个应用具有相同的权限。