我们有一个应用程序,它使用本地AD来获取用户信息 . 有些客户希望迁移到 Cloud 并使用Azure AD . 我们扩展了应用程序以通过owin签署用户,现在我们通过Microsoft Graph获取用户 .
但是,从Microsoft Graph我们没有获得完整的用户配置文件 . 我们想要获取用户的所有属性,而不仅仅是基本属性 .
var client = new RestClient(string.Format("https://graph.microsoft.com/v1.0/users/{0}", userEmail));
request = new RestRequest();
request.Method = Method.GET;
request.AddHeader("Authorization", _token.Token);
var reponse = client.Execute(request);
这只给了我一些信息,例如我从这里得不到'Department' . 是否可以在azure中配置应该返回的内容,如果是,那么在哪里?或者我需要 /users/
以外的其他东西?
不同的客户可能具有需要获取的不同特殊属性 . 因此,最好的解决方案是让 endpoints 调用并获取所有内容,包括azure广告中不标准的特殊属性 . 之后,我可以解析它在我身边 . 这可能吗?
应用程序拥有读取基本和完整配置文件的权限 . 我还需要更多东西吗?
2 回答
这是Graph API的正常行为,请参阅文档here和此摘录:
您必须在select中指定所有字段,因为
$select=*
将仅输出Graph API实现中的关键字段 .所以你将无法得到你所要求的(可变自定义字段) .
有关用户字段的更多信息,请参阅here
正如NicolasR已经说明的那样,您必须使用“$ select”参数列出要检索的所有字段;如果你想要检索自定义字段,你可以将它们添加到上一个参数(如果你知道它们的名字),或者你可以使用“$ expand = extensions”