Reputation: 153
This AAD powershell easily lists out the extension Properties for a user:
> Get-AzureADUser -ObjectId [email protected] |select -ExpandProperty ExtensionProperty
Key Value
--- -----
odata.metadata https://graph.windows.net/d29b7a9b-6edb-4720-99a8-3c5c6c3eeeb0/$metadata#directoryObjects/@Element
odata.type Microsoft.DirectoryServices.User
createdDateTime
employeeId 50413382
onPremisesDistinguishedName
[email protected] directoryObjects/8cc715a1-0698-4d1a-8f49-441a84b6dbc4/Microsoft.DirectoryServices.User/thumbnailPhoto
[email protected] image/Jpeg
userIdentities []
extension_10a03227b5f146ad8a0087cf0bafd627_division |30103611|50435526|50230396|10192257|86009851
extension_10a03227b5f146ad8a0087cf0bafd627_company wingtiptoys Inc.
extension_10a03227b5f146ad8a0087cf0bafd627_extensionAttribute10 GF
extension_10a03227b5f146ad8a0087cf0bafd627_employeeID 50413382
extension_10a03227b5f146ad8a0087cf0bafd627_cn 50413382
extension_10a03227b5f146ad8a0087cf0bafd627_extensionAttribute8 wingtiptoys Inc. Inc.
extension_10a03227b5f146ad8a0087cf0bafd627_extensionAttribute7 Chuck
extension_10a03227b5f146ad8a0087cf0bafd627_extensionAttribute6 US11
extension_10a03227b5f146ad8a0087cf0bafd627_extensionAttribute5 US1-Rochester, NY- Site
extension_10a03227b5f146ad8a0087cf0bafd627_extensionAttribute4 USC
extension_10a03227b5f146ad8a0087cf0bafd627_extensionAttribute2 Regular
extension_10a03227b5f146ad8a0087cf0bafd627_employeeType ARR
I now have a request to build this sort of display into an authenticated web page, with a prior page that someone can type in that Object ID and see that output on the screen using the Microsoft Graph Client SDK.
The key issue is that I can't hardcode the list of Extension Properties. I need to just list what is on that particular user.
I've found how to get the value of an extension attribute once you know it's name, but how do you get the list of attributes above without knowing the attribute names ahead of time? (the -ExpandProperty ExtensionProperty
part of the PowerShell)
I've tried to get at this data via graph explorer, and am having difficulty. I've tried:
/v1.0/me/?$select=id&$expand=extensions
(returns an empty extensions element)/v1.0/me/?$select=onPremisesExtensionAttributes
(returns some of the properties (but not all))Upvotes: 2
Views: 3411
Reputation: 33094
You can use the /beta
endpoint to get the complete property set. The /v1.0
endpoint has a default filter that gets applied but the /beta
endpoint does not.
For example (using Graph Explorer):
https://graph.microsoft.com/v1.0/users/87d349ed-44d7-43e1-9a83-5f2406dee5bd
returns:
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users/$entity",
"businessPhones": [
"+1 425 555 0109"
],
"displayName": "Adele Vance",
"givenName": "Adele",
"jobTitle": "Product Marketing Manager",
"mail": "[email protected]",
"mobilePhone": null,
"officeLocation": "18/2111",
"preferredLanguage": "en-US",
"surname": "Vance",
"userPrincipalName": "[email protected]",
"id": "87d349ed-44d7-43e1-9a83-5f2406dee5bd"
}
Using the beta version:
https://graph.microsoft.com/beta/users/87d349ed-44d7-43e1-9a83-5f2406dee5bd
returns:
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#users/$entity",
"id": "87d349ed-44d7-43e1-9a83-5f2406dee5bd",
"deletedDateTime": null,
"accountEnabled": true,
"ageGroup": null,
"businessPhones": [
"+1 425 555 0109"
],
"city": "Bellevue",
"createdDateTime": "2017-07-29T03:03:26Z",
"companyName": null,
"consentProvidedForMinor": null,
"country": "United States",
"department": "Sales & Marketing",
"displayName": "Adele Vance",
"employeeId": null,
"faxNumber": null,
"givenName": "Adele",
"imAddresses": [
"[email protected]"
],
"isResourceAccount": null,
"jobTitle": "Product Marketing Manager",
"legalAgeGroupClassification": null,
"mail": "[email protected]",
"mailNickname": "AdeleV",
"mobilePhone": null,
"onPremisesDistinguishedName": null,
"officeLocation": "18/2111",
"onPremisesDomainName": null,
"onPremisesImmutableId": null,
"onPremisesLastSyncDateTime": null,
"onPremisesSecurityIdentifier": null,
"onPremisesSamAccountName": null,
"onPremisesSyncEnabled": null,
"onPremisesUserPrincipalName": null,
"otherMails": [],
"passwordPolicies": "DisablePasswordExpiration",
"passwordProfile": null,
"postalCode": "98004",
"preferredDataLocation": null,
"preferredLanguage": "en-US",
"proxyAddresses": [
"SMTP:[email protected]"
],
"refreshTokensValidFromDateTime": "2017-09-12T21:08:09Z",
"showInAddressList": null,
"signInSessionsValidFromDateTime": "2017-09-12T21:08:09Z",
"state": "WA",
"streetAddress": "205 108th Ave. NE, Suite 400",
"surname": "Vance",
"usageLocation": "US",
"userPrincipalName": "[email protected]",
"externalUserState": null,
"externalUserStateChangeDateTime": null,
"userType": "Member",
"extension_fe2174665583431c953114ff7268b7b3_Education_ObjectType": "teacher",
"extension_fe2174665583431c953114ff7268b7b3_Education_TeacherNumber": "106",
"assignedLicenses": [
{
"disabledPlans": [],
"skuId": "c7df2760-2c81-4ef7-b578-5b5392b571df"
}
],
"assignedPlans": [
{
"assignedDateTime": "2017-07-29T03:03:25Z",
"capabilityStatus": "Enabled",
"service": "Adallom",
"servicePlanId": "8c098270-9dd4-4350-9b30-ba4703f3b36b"
},
{
"assignedDateTime": "2017-07-29T03:03:25Z",
"capabilityStatus": "Enabled",
"service": "SharePoint",
"servicePlanId": "e95bec33-7c88-4a70-8e19-b10bd9d0c014"
},
{
"assignedDateTime": "2017-07-29T03:03:25Z",
"capabilityStatus": "Enabled",
"service": "SharePoint",
"servicePlanId": "5dbe027f-2339-4123-9542-606e4d348a72"
},
{
"assignedDateTime": "2017-07-29T03:03:25Z",
"capabilityStatus": "Enabled",
"service": "exchange",
"servicePlanId": "efb87545-963c-4e0d-99df-69c6916d9eb0"
},
{
"assignedDateTime": "2017-07-29T03:03:25Z",
"capabilityStatus": "Enabled",
"service": "MicrosoftCommunicationsOnline",
"servicePlanId": "0feaeb32-d00e-4d66-bd5a-43b5b83db82c"
},
{
"assignedDateTime": "2017-07-29T03:03:25Z",
"capabilityStatus": "Enabled",
"service": "MicrosoftOffice",
"servicePlanId": "43de0ff5-c92c-492b-9116-175376d08c38"
},
{
"assignedDateTime": "2017-07-29T03:03:25Z",
"capabilityStatus": "Enabled",
"service": "YammerEnterprise",
"servicePlanId": "7547a3fe-08ee-4ccb-b430-5077c5041653"
},
{
"assignedDateTime": "2017-07-29T03:03:25Z",
"capabilityStatus": "Enabled",
"service": "RMSOnline",
"servicePlanId": "bea4c11e-220a-4e6d-8eb8-8ea15d019f90"
},
{
"assignedDateTime": "2017-07-29T03:03:25Z",
"capabilityStatus": "Enabled",
"service": "ProjectWorkManagement",
"servicePlanId": "b737dad2-2f6c-4c65-90e3-ca563267e8b9"
},
{
"assignedDateTime": "2017-07-29T03:03:25Z",
"capabilityStatus": "Enabled",
"service": "PowerBI",
"servicePlanId": "70d33638-9c74-4d01-bfd3-562de28bd4ba"
},
{
"assignedDateTime": "2017-07-29T03:03:25Z",
"capabilityStatus": "Enabled",
"service": "MicrosoftCommunicationsOnline",
"servicePlanId": "3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40"
},
{
"assignedDateTime": "2017-07-29T03:03:25Z",
"capabilityStatus": "Enabled",
"service": "MicrosoftCommunicationsOnline",
"servicePlanId": "4828c8ec-dc2e-4779-b502-87ac9ce28ab7"
},
{
"assignedDateTime": "2017-07-29T03:03:25Z",
"capabilityStatus": "Enabled",
"service": "Sway",
"servicePlanId": "a23b959c-7ce8-4e57-9140-b90eb88a9e97"
},
{
"assignedDateTime": "2017-07-29T03:03:25Z",
"capabilityStatus": "Enabled",
"service": "exchange",
"servicePlanId": "34c0d7a0-a70f-4668-9238-47f9fc208882"
},
{
"assignedDateTime": "2017-07-29T03:03:25Z",
"capabilityStatus": "Enabled",
"service": "exchange",
"servicePlanId": "9f431833-0334-42de-a7dc-70aa40db46db"
},
{
"assignedDateTime": "2017-07-29T03:03:25Z",
"capabilityStatus": "Enabled",
"service": "exchange",
"servicePlanId": "4de31727-a228-4ec3-a5bf-8e45b5ca48cc"
},
{
"assignedDateTime": "2017-07-29T03:03:25Z",
"capabilityStatus": "Enabled",
"service": "TeamspaceAPI",
"servicePlanId": "57ff2da0-773e-42df-b2af-ffb7a2317929"
},
{
"assignedDateTime": "2017-07-29T03:03:25Z",
"capabilityStatus": "Enabled",
"service": "PowerAppsService",
"servicePlanId": "9c0dab89-a30c-4117-86e7-97bda240acd2"
},
{
"assignedDateTime": "2017-07-29T03:03:25Z",
"capabilityStatus": "Enabled",
"service": "ProcessSimple",
"servicePlanId": "07699545-9485-468e-95b6-2fca3738be01"
},
{
"assignedDateTime": "2017-07-29T03:03:25Z",
"capabilityStatus": "Enabled",
"service": "Deskless",
"servicePlanId": "8c7d2df8-86f0-4902-b2ed-a0458298f3b3"
},
{
"assignedDateTime": "2017-07-29T03:03:25Z",
"capabilityStatus": "Enabled",
"service": "exchange",
"servicePlanId": "8e0c0a52-6a6c-4d40-8370-dd62790dcd70"
},
{
"assignedDateTime": "2017-07-29T03:03:25Z",
"capabilityStatus": "Enabled",
"service": "MicrosoftStream",
"servicePlanId": "6c6042f5-6f01-4d67-b8c1-eb99d36eed3e"
},
{
"assignedDateTime": "2017-07-29T03:03:25Z",
"capabilityStatus": "Enabled",
"service": "OfficeForms",
"servicePlanId": "e212cbc7-0961-4c40-9825-01117710dcb1"
}
],
"deviceKeys": [],
"onPremisesExtensionAttributes": {
"extensionAttribute1": null,
"extensionAttribute2": null,
"extensionAttribute3": null,
"extensionAttribute4": null,
"extensionAttribute5": null,
"extensionAttribute6": null,
"extensionAttribute7": null,
"extensionAttribute8": null,
"extensionAttribute9": null,
"extensionAttribute10": null,
"extensionAttribute11": null,
"extensionAttribute12": null,
"extensionAttribute13": null,
"extensionAttribute14": null,
"extensionAttribute15": null
},
"onPremisesProvisioningErrors": [],
"provisionedPlans": [
{
"capabilityStatus": "Enabled",
"provisioningStatus": "Success",
"service": "MicrosoftCommunicationsOnline"
},
{
"capabilityStatus": "Enabled",
"provisioningStatus": "Success",
"service": "MicrosoftCommunicationsOnline"
},
{
"capabilityStatus": "Enabled",
"provisioningStatus": "Success",
"service": "SharePoint"
},
{
"capabilityStatus": "Enabled",
"provisioningStatus": "Success",
"service": "SharePoint"
},
{
"capabilityStatus": "Enabled",
"provisioningStatus": "Success",
"service": "MicrosoftCommunicationsOnline"
},
{
"capabilityStatus": "Enabled",
"provisioningStatus": "Success",
"service": "exchange"
},
{
"capabilityStatus": "Enabled",
"provisioningStatus": "Success",
"service": "exchange"
},
{
"capabilityStatus": "Enabled",
"provisioningStatus": "Success",
"service": "exchange"
},
{
"capabilityStatus": "Enabled",
"provisioningStatus": "Success",
"service": "exchange"
},
{
"capabilityStatus": "Enabled",
"provisioningStatus": "Success",
"service": "exchange"
}
]
}
Note the extension_fe2174665583431c953114ff7268b7b3_Education_ObjectType
and extension_fe2174665583431c953114ff7268b7b3_Education_TeacherNumber
in the results.
Upvotes: 7