我有Active Directory内部部署,它使用连接器与我的Azure AD实例同步。
'其他移动'等字段和其他电话'设置为从On-Prem AD同步到Azure AD。 (所有用户都填充了这些值)
但是,当使用Microsoft Graph查询时,我无法看到这些字段,这是我正在使用的URL(我可以看到标准字段很好):
https://graph.microsoft.com/v1.0/users/[USER ID HERE]
我尝试了各种查询,但没有运气。是否甚至可以使用Graph API查看Azure AD上用户的所有字段,包括从On-Prem AD同步的字段?我还有其他选择吗?
我尝试过查询,包括' $ select = otherMobile,otherTelephone'还有扩展
我也尝试过Azure AD图浏览器,但是用户对象也不包含这些字段:
https://graph.windows.net/ $ metadata#directoryObjects / Microsoft.DirectoryServices.User
答案 0 :(得分:1)
默认情况下,仅返回一组有限的属性(businessPhones,displayName,givenName,id,jobTitle,mail,mobilePhone,officeLocation,preferredLanguage,surname,userPrincipalName)。要返回备用属性集,必须指定所需的属性使用OData $ select查询参数设置用户属性。
例如,要返回displayName,givenName和postalCode,您需要将以下内容添加到查询$ select = displayName,givenName,postalCode。
您必须在select中指定所有字段,因为$ select = *将仅输出Graph API实现中的关键字段。
您无法使用图谱API访问“其他手机”和“其他电话”等字段,因为只有几个用户字段可供访问。有关用户字段的详细信息,请参阅:User Entity。
答案 1 :(得分:0)
在字面上搜索有关此问题的响应数天后,返回此处,以防其他人遇到此问题:默认情况下,msgraph 不会返回这些特殊属性,它们属于不同架构的一部分。 找出哪些模式可用的方法,我使用了以下 api:
https://graph.microsoft.com/v1.0/schemaExtensions
它需要一个访问令牌,基于此,它会返回可用的模式,在我的例子中,有一个 ID 为:someId_UserExt
的东西,我认为它可以存储它们的位置有些道理.
之后,我在上面发布的@Ajay 之类的查询中使用了上面的 id 以及我需要的其他扩展:
...$select={someId_UserExt} displayName, givenName, postalCode, {extensionId_otherMobile}
这里需要注意的一点是,这些扩展名不直接称为 otherMobile
或 otherTelephone
,它们前面有某种形式的 id,例如:92432132132141321321_otherMobile
等. 那就是正确选择值所需的扩展名
用于检查这些 ID 的端点是:
https://graph.microsoft.com/v1.0/applications/{appId}/extensionProperties
或至少可能从 Azure AD 中获取他们的名称或 objectId。