正如标题所示,当我试图将用户分配给AAD应用程序时,我得到了一个错误。这是我得到的请求和错误



显然,它与API的版本有关,但即使更改api版本参数,也无法使它工作。
更新:当我将请求url修改为https://graph.microsoft.com/v1.0/.时,我得到以下错误:Unsupported segment type. ODataQuery: users/{userid}/appRoleAssignments
更新2:即使使用beta版本,这似乎也不起作用:
更新3:这在MS图的测试版中仍然可用吗?否则,除了powershell和图形api之外,有没有其他替代方案来实现我想通过编程实现的https://graph.microsoft.com/beta/users/{userId}/appRoleAssignments/{appRoleId}?
仍然得到Unsupported segment type错误
发布于 2017-12-09 17:48:15
Marc的回答是正确的--但有几个注意事项: 1.这只在/beta中可用,不推荐用于生产。2.有一个错误阻止了这件事的发生。
要在生产中做到这一点,您当前唯一的选择是使用。您将看到我们的文档推荐使用,但是有几个地方在Azure AD图上存在一些空白。
关于Microsoft图支持的更多信息,请参阅本主题https://dev.office.com/blogs/microsoft-graph-or-azure-ad-graph
API调用与Marc相同,但具有不同的根URL和版本控制方案。所以看起来是这样的:
POST https://graph.windows.net/{tenantId}/users/{userId}/appRoleAssignments?api-version=1.6 { "id": "31952ade-a03c-414c-8340-2f11e9099106", "principalId": "84b80893-8749-40a3-97b7-68513b600544", "principalType": "User", "resourceId": "29c7ed43-a9a1-4b31-8a64-fc90c3ca4e73" }
希望这能帮上忙
发布于 2017-12-05 16:11:04
您在这里使用的URL不是有效的。
作为REST,URL的每个段实际上是一个API名称空间或方法(取决于它是否是最终的URI段)。为了说明,让我们分解一个用于检索user的URI
GET https://graph.microsoft.com/v1.0/users/{userid}把它分解成我们能得到的组件:
GET是定义我们要采取的操作的“HTTP谓词”。这遵循标准CRUD模型:- `POST` = Create an entity or record
- `GET` = Read an entity or record
- `PATCH` = Update an entity or record
- `DELETE` = Delete an entity or record
https://graph.microsoft.com是MicrosoftGraph本身的地址。/v1.0是您想要调用的API的版本(当前为/v1.0或/beta)。/users告诉图形您要访问user集合/{userid}告诉图形您是在/users集合中寻找的特定用户因为/{userid}是URL指定的最后一个片段,它将从Active返回单个User记录的JSON表示。
您可以在遍历Microsoft图在Microsoft图形文档中的文章中找到有关MicrosoftGraph是如何组织的详细说明。
在你的问题中,你描述了两个不同的电话:
POST https://graph.microsoft.com/{GUID}
POST https://graph.microsoft.com/v1.0/{GUID}您收到错误的原因是您要发送的{GUID}没有名称空间或方法。它根本不知道你要它做什么。由于MicrosoftGraph会处理一系列不同的服务(SharePoint、Azure、Exchange、Planner、Team、Group等)它甚至无法猜出你的目标是哪一种服务。
根据您所做的其他评论,听起来您正在尝试使用appRoleAssignment。此端点仍处于预览状态,因此只能在/beta版本中使用。它还只支持GET、UPDATE和DELETE方法(UPDATE向appRoleAssignment添加用户,DELETE从appRoleAssignment中删除用户)。
因此,您的呼叫应该如下所示:
https://graph.microsoft.com/beta/users/{userId}/appRoleAssignments/{appRoleId}您可以在更新审批上找到此调用的完整文档。
https://stackoverflow.com/questions/47656467
复制相似问题