首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >试图将用户分配给应用程序时出错

试图将用户分配给应用程序时出错
EN

Stack Overflow用户
提问于 2017-12-05 14:52:23
回答 2查看 168关注 0票数 2

正如标题所示,当我试图将用户分配给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错误

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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" }

查看此旧博客AAD图形参考文档

希望这能帮上忙

票数 2
EN

Stack Overflow用户

发布于 2017-12-05 16:11:04

您在这里使用的URL不是有效的。

作为REST,URL的每个段实际上是一个API名称空间或方法(取决于它是否是最终的URI段)。为了说明,让我们分解一个用于检索user的URI

代码语言:javascript
运行
复制
GET https://graph.microsoft.com/v1.0/users/{userid}

把它分解成我们能得到的组件:

  • GET是定义我们要采取的操作的“HTTP谓词”。这遵循标准CRUD模型:
代码语言:javascript
运行
复制
- `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是如何组织的详细说明。

在你的问题中,你描述了两个不同的电话:

代码语言:javascript
运行
复制
POST https://graph.microsoft.com/{GUID}
POST https://graph.microsoft.com/v1.0/{GUID}

您收到错误的原因是您要发送的{GUID}没有名称空间或方法。它根本不知道你要它做什么。由于MicrosoftGraph会处理一系列不同的服务(SharePoint、Azure、Exchange、Planner、Team、Group等)它甚至无法猜出你的目标是哪一种服务。

根据您所做的其他评论,听起来您正在尝试使用appRoleAssignment。此端点仍处于预览状态,因此只能在/beta版本中使用。它还只支持GETUPDATEDELETE方法(UPDATEappRoleAssignment添加用户,DELETEappRoleAssignment中删除用户)。

因此,您的呼叫应该如下所示:

代码语言:javascript
运行
复制
https://graph.microsoft.com/beta/users/{userId}/appRoleAssignments/{appRoleId}

您可以在更新审批上找到此调用的完整文档。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47656467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档