C# Azure AD Graph用户创建调用失败,出现一些模糊错误
我被告知在这里提出一个关于Azure AD Graph Api的问题,而不是将其作为相应GitHub示例存储库的问题提出,我希望Azure Graph Api团队能够监督并帮助我们解决这个问题 问题的一些额外背景: 我们正在使用Microsoft.Azure.ActiveDirectory.GraphClient nuget在Azure AD测试租户中创建和管理用户。下列的 我们可以通过Graph API在Azure广告中创建和更新用户。直到大约2-3天前的某个时刻(不确定确切的时间,我们在周二早上非盟时间发现了问题。上一次成功运行是在上周的周五)。它是100%工作的代码,为了确认它不是我们的代码——我再次运行了示例应用程序——它现在也坏了。我已经用最新的GraphClient v2.1.0和示例应用程序-v2.0.6的原始版本对其进行了测试 为了简化对问题的测试,我编辑了一些秘密(如果您想运行控制台应用程序示例指南,您需要按照控制台应用程序示例指南输入值,而不是原始示例应用程序) 此外,这是小提琴捕捉(编辑)的C# Azure AD Graph用户创建调用失败,出现一些模糊错误,c#,azure,oauth-2.0,azure-active-directory,azure-ad-graph-api,C#,Azure,Oauth 2.0,Azure Active Directory,Azure Ad Graph Api,我被告知在这里提出一个关于Azure AD Graph Api的问题,而不是将其作为相应GitHub示例存储库的问题提出,我希望Azure Graph Api团队能够监督并帮助我们解决这个问题 问题的一些额外背景: 我们正在使用Microsoft.Azure.ActiveDirectory.GraphClient nuget在Azure AD测试租户中创建和管理用户。下列的 我们可以通过Graph API在Azure广告中创建和更新用户。直到大约2-3天前的某个时刻(不确定确切的时间,我们在周二
{"expires_in":"3599","token_type":"Bearer","scope":"UserProfile.Read",
"expires_on":"1441183928","not_before":"1441180028","resource":"https://graph.windows.net",
"access_token":"TOKEN WAS HERE"}
我可以在这里看到作用域字符串的问题,但是在根据示例应用程序调用令牌时,我们没有在GraphClient中设置任何显式作用域(正如我前面提到的,这段代码以前很好)
用户创建响应在发生什么以及为什么发生方面是明确的
{"odata.error":
{"code":"Authorization_RequestDenied","message":
{"lang":"en","value":"Insufficient privileges to complete the operation."}
}
}
但目前还不清楚如何通过其中任何一个请求额外的权限范围
同样奇怪的是,同样的代码以前功能齐全,但经过一些神秘的改变,现在却被破坏了
因此,我有几个问题:
{"odata.error":
{"code":"Authorization_RequestDenied","message":
{"lang":"en","value":"Insufficient privileges to complete the operation."}
}
}
有一件事值得注意-在范围列表中没有目录.ReadWrite.All
:
目录.ReadWrite.All:读取和写入目录数据
===================更新================
PS:Azure广告工程师的一些技术请求信息:
- 身份验证请求响应的客户端请求id为:88b2bbbd-94cd-498d-a147-caad05e16eb7
- 失败的图形调用的客户端请求id为:882f3918-0ddd-40fe-a558-866997e32b46,仅在响应中
我希望这有帮助 一些额外信息-根据oauth2规范(4.4.2.访问令牌请求),尝试发布类似scope=xxx的范围。使用此列表中的范围值&scope=Directory.ReadWrite.All getting back token with the same“UserProfile.Read”scope.managed获得具有多个权限的令牌(通过将Office 365统一API预览应用程序添加到我的web客户端,并将所有可能的权限委派添加到我的应用程序)。仍然不走运-将与原始fiddler请求相同的数据发布到HTTP/1.1仍然会给我403“没有足够的权限来完成操作”。ocp aad诊断服务器名称:2+DALFFSDN9J1PBJWETFSEVFN5Y/lnZw/QCyG+ljYA=请求id:70f46089-1a05-41d3-85c6-e90e1c0f75dd客户端请求id:5dec4e74-ac5d-4944-8ca6-01644C32BF93不多。查看更新的详细信息-我已经完成了更多步骤并获得了具有最大可用权限的令牌-仍然相同。嗨,Alexey。我只是想跟进一下,很抱歉没能早点回来。对于示例,您是仅作为应用程序还是作为具有用户上下文的应用程序发出访问请求?在前一种情况下,您应该在“应用程序权限”列中设置“读写目录”权限。如果是后者,则应在“委派权限”列中设置相同的权限,并且用户必须具有足够的权限来创建用户(因此租户管理员或用户帐户管理员)。如果这不起作用,请转发您解码的JWT令牌的scp声明,这样我们就可以看到这些声明。嗨,丹,我们已经从那个问题上转移了,但我将尝试回到它,并恢复环境以重现这个问题。我认为最简单的情况是运行这个示例——它对我的租户也不起作用——无论是原始的还是新创建的。