【问题标题】:Get Extended Properties on User using Microsoft Graph使用 Microsoft Graph 获取用户的扩展属性
【发布时间】:2017-08-28 18:09:28
【问题描述】:

我正在使用 Microsoft Graph 来管理 Azure AD 用户,但在访问用户对象上的扩展属性时遇到了一些问题。该属性是在使用 Azure AD Graph API 创建用户时添加的,如果您使用 Azure AD API 查询用户,则会自动返回扩展属性,名称为“extension_{appId}_{propertyName}”。我想使用 Microsoft Graph 访问此属性的值,但没有找到正确的调用方法。

我尝试使用 $select 直接选择属性(按上面列出的全名)和较短的名称。
https://graph.microsoft.com/beta/Users/{id}?$select=extension_{appId}_{propertyName}

我也尝试使用 $expand 查询 singleValueExtendedProperty(和 multiValue),但被告知该属性在用户对象上不存在。
https://graph.microsoft.com/beta/Users/{id}?$expand=singleValueExtendedProperty

我也玩过用户对象上的“扩展”字段,但它总是为空。

只是好奇 Graph 是否支持此操作,如果支持,如何查询该字段。如果我可以在查询用户组时获得此扩展程序的值而无需运行单独的查询,那将是一个奖励。

【问题讨论】:

    标签: microsoft-graph-api azure-ad-graph-api


    【解决方案1】:

    扩展显示在 Microsoft Graph 中的 Extensions 集合中,而不是顶级属性:

    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users(id,displayName,mail,extensions)/$entity",
    "id": "16f5a7b6-5a15-4568-aa5a-31bb117e9967",
    "displayName": "Anne Weiler",
    "mail": "annew@CIE493742.onmicrosoft.com",
    "extensions@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('16f5a7b6-5a15-4568-aa5a-31bb117e9967')/extensions",
    "extensions": [
        {
            "@odata.type": "#microsoft.graph.openTypeExtension",
            "theme": "dark",
            "color": "purple",
            "lang": "Japanese",
            "extensionName": "com.contoso.roamingSettings",
            "id": "com.contoso.roamingSettings"
        }
    ]
    

    例如,您可以使用以下查询返回users(包括任何扩展名)的集合:v1.0/users?$select=id,displayName,mail&$expand=extensions(参见Graph Explorer

    【讨论】:

    • 感谢您的回答...我已尝试查询扩展属性(并对其进行扩展),但返回的只是一个空列表。我的用户对象上的扩展不是使用 Graph 作为 openExtensions 创建的。它们是使用 Azure AD Graph API 作为扩展属性创建的。我不确定这两件事是否等价。
    • 有“open”和“schema”扩展。听起来这是一个架构扩展?您可以使用https://graph.microsoft.com/v1.0/schemaExtensions 查找扩展列表。然后,您可以使用$select=id,name,{schemaExtension-id} 中的id 属性将其包含在结果中。
    • 我也没有在架构扩展中看到我的扩展。是否有可能因为它们是使用 AAD API 创建的,所以它们不会出现?我在这里发现了一个非常相似的未回答问题:stackoverflow.com/questions/40218848/…。使用这个我可以得到我的扩展。
    • 感谢您报告此事。您应该能够通过 Microsoft Graph 查询 v1 AAD 目录架构扩展。对于通过 AD Connect 创建的扩展,我可以在 Microsoft 租户中执行此操作,但会看到多个其他人无法执行此操作的报告。 @JLauzon 您的 $select 语句应该 有效。您能否使用客户请求 ID 和时间戳更新您的问题,以便我们进一步调查?
    • 感谢您的回复。我通过 Graph Explorer 再次发出 $select 请求以获取新的 request-id,这次它刚刚工作。我确信昨天它没有工作,所以也许一夜之间发生了一些事情来解决这个问题。如果我再次遇到这个问题,我一定会让你知道。再次感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-15
    • 1970-01-01
    相关资源
    最近更新 更多