Microsoft Graph API:获取用户组织

问题描述 投票:2回答:2

我正在使用Microsoft Graph API来获取用户的一些详细信息。我还使用AD进行身份验证和授权。

在此应用程序中,用户在登录后将搜索某些用户,并需要与搜索匹配的所有用户的一些详细信息。

我使用过滤器点击了用户api以下,但我没有收到有关匹配用户的公司名称的任何详细信息。

https://graph.microsoft.com/v1.0/users?$filter=startswith(displayName,'jo')

以下是相同的回复

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users",
  "@odata.nextLink": "https://graph.microsoft.com/v1.0/users?$skiptoken=X%2744537074020001000000203A636F6D7061735F766A61407465737473636F7270696F67726F75702E6E657429557365725F33386664353661362D366361612D343939332D393264642D383439633938613039393033B900000000000000000000%27",
  "value": [
        {
            "businessPhones": [],
            "displayName": "John Doe",
            "givenName": "John",
            "jobTitle": null,
            "mail": null,
            "mobilePhone": null,
            "officeLocation": null,
            "preferredLanguage": null,
            "surname": "Doe",
            "userPrincipalName": "[email protected]",
            "id": "c8f63ba1-5150-44c1-b456-468040f12345"
        }
  ]
}

为了获得组织用户的公司名称,我需要做些什么?

azure azure-active-directory microsoft-graph
2个回答
1
投票

user资源默认仅返回属性的子集。根据documentation

注意:获取用户仅返回一组默认属性(businessPhones,displayName,givenName,id,jobTitle,mail,mobilePhone,officeLocation,preferredLanguage,surname,userPrincipalName)。使用$select获取用户对象的其他属性和关系。

换句话说,您需要在查询中添加一个$select参数,该参数列出了您要返回的属性。例如,如果要检索iduserPrincipalNamecompanyName,您可以使用:

https://graph.microsoft.com/v1.0/users?$select=displayName,id,jobTitle,companyName

可以在User Resource Type文档中找到完整的可用属性集。


1
投票

我想从一次登录中为所有用户提供此详细信息

这是不可能的。 get organization details的唯一途径是使用https://graph.microsoft.com/v1.0/organization api。

您需要提供访问令牌来调用此API。在您的应用程序中,您使用一个用户登录以获取访问令牌。

如果您在令牌请求网址中使用common,您将获得该登录用户的默认组织。

如果您在请求网址中使用特定租户,您将获得该租户的组织详细信息。

如果您只想获取用户的companyName,可以调用https://graph.microsoft.com/beta/users/{userid}来获取它。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.