【发布时间】:2018-01-29 15:54:47
【问题描述】:
我正在开发 Office 365 组生命周期工具。该应用程序使用新的 App V2 模型注册,并在相关租户中获得管理员同意。 这是来自 azure 门户 -> Azure AD -> 企业应用列表的权限信息:
- API 名称:Microsoft Graph
- 类型:应用程序
- 权限:读写目录数据
- 授予:管理员同意
- API 名称:Microsoft Graph
- 类型:应用程序
- 权限:读写所有组
- 授予:管理员同意
- API 名称:Microsoft Graph
- 类型:应用程序
- 权限:阅读所有用户的完整个人资料
- 授予:管理员同意
以下调用 URI 是 working as documented 与 Graph Explorer 但不是我的控制台应用程序使用应用程序 ID 和应用程序密码:
https://graph.microsoft.com/beta/groups/{id}/allowExternalSenders
我还希望该属性会在访问组时返回,但该属性不是 JSON 对象返回的一部分。
https://graph.microsoft.com/beta/groups/{id}
访问属性 URL 会返回以下错误消息:
错误:
response = {
StatusCode: 403,
ReasonPhrase: 'Forbidden',
Version: 1.1,
Content: System.Net.Http.StreamContent,
Headers:
{
Transfer-Encoding: chunked
request-id: a01205ec-dcc3-41cf-afc5-4943abac65aa
client-request-id: a01205ec-dcc3-41cf-afc5-4943abac65aa
x-...
此外,尝试更新属性在应用程序中失败,但在 Graph Explorer 中工作(使用 PATCH 请求)。
我发现了一些与该属性相关的 GitHub 问题。由于报告,文档已更新,不再说明 PATCH 请求可以更新此属性:GitHub Issue & Pull Request
我需要读写这个属性。文档目前说这是只读的,但我可以在 Graph Explorer 中读写。但是,我无法通过我的应用程序读写。
读取属性需要什么?它已记录在案并且应该可以正常工作吗?也可以作为应用程序!
什么时候可以写这个属性?
【问题讨论】:
-
您的问题从两个相反的陈述开始。您提到您正在使用 v2 Endpoint,但随后显示来自 Azure 门户 的范围。使用 v2 Endpoint(又名 Converged Auth)的应用程序通过
apps.dev.microsoft.com注册,使用 v1 Endpoint 的应用程序通过 Azure 门户注册。你能澄清一下你的配置吗? -
该应用程序已在 V2 端点中注册,但它需要管理员同意,因为我需要高特权权限。如果您依赖用户集中度,即使未经管理员同意,该应用也会显示在 azure 广告应用列表中。这不是设计问题。这令人困惑,但按记录工作:)
-
感谢编辑。
标签: office365 azure-active-directory microsoft-graph-api