正如标题所示,我在尝试将用户分配给AAD应用程序时遇到错误。 这是请求和我得到的错误
显然它与API的版本有关,但即使更改了api-version参数,我也无法使其工作。
更新:
当我将请求网址修改为https://graph.microsoft.com/v1.0/时,我收到以下错误:Unsupported segment type. ODataQuery: users/{userid}/appRoleAssignments
更新2 : 即使使用测试版,这似乎也不起作用:
更新3 : 这仍然可以在MS Graph的测试版中使用吗?否则有任何替代方案(除了powershell和graph api)以编程方式实现我想要的东西 https://graph.microsoft.com/beta/users/ {用户id} / appRoleAssignments / {appRoleId}
仍然出现Unsupported segment type
错误
答案 0 :(得分:2)
您在此处使用的网址不是有效的Microsoft Graph调用。
作为REST API,URL的每个段实际上都是API命名空间或方法(取决于它是否是最终的URI段)。为了说明,我们分解用于检索user
:
GET https://graph.microsoft.com/v1.0/users/{userid}
将其分解为我们得到的组件:
GET
是" HTTP动词"这定义了我们正在采取的行动。这遵循标准的CRUD模型:
POST
=创建实体或记录GET
=读取实体或记录PATCH
=更新实体或记录DELETE
=删除实体或记录 https://graph.microsoft.com
是Microsoft Graph本身的地址。
/v1.0
是您要调用的API版本(目前为/v1.0
或/beta
)。
/users
告诉图,您希望访问user
集合
/{userid}
告诉图表您在/users
集合中寻找的特定用户
由于/{userid}
是由URL指定的最终段,因此它将从Azure Active Directory返回该单个User
记录的JSON表示。
您可以在Traverse Microsoft Graph的文章Microsoft Graph Documentation中找到有关Microsoft Graph如何组织的详细说明。
在你的问题中,你描述了两个不同的电话:
POST https://graph.microsoft.com/{GUID}
POST https://graph.microsoft.com/v1.0/{GUID}
您收到错误的原因是您发送的{GUID}
没有名称空间或方法。它实际上根本不知道你要求它做什么。由于Microsoft Graph处理大量不同的服务(SharePoint,Azure AD,Exchange,规划师,团队,小组等),因此它甚至无法猜测您要定位的服务。
根据您所做的其他评论,听起来您正在尝试使用appRoleAssignment。此端点仍处于预览状态,因此仅在/beta
版本中可用。它还仅支持GET
,UPDATE
和DELETE
方法(UPDATE
将用户添加到appRoleAssignment
,DELETE
从{删除用户} {1}})。
你的电话应该是这样的:
appRoleAssignment
您可以在Update approleassignment找到此来电的完整文档。
答案 1 :(得分:2)
马克的回答是正确的 - 有几点需要注意: 1.这仅适用于/ beta,不建议用于生产。 2.有一个错误阻止它工作。
要在生产中执行此操作,您唯一的选择是使用Azure AD Graph API。您将看到我们的文档建议在任何地方使用Microsoft Graph,但有一些地方与Azure AD Graph存在一些差距。
有关Microsoft Graph与Azure AD Graph支持的内容的更多信息,请查看此主题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"
}
查看此older blog或AAD Graph reference docs
希望这有帮助,