使用 Microsoft Graph 查询 AzureAD Graph 扩展属性
Querying AzureAD Graph extension attributes with Microsoft Graph
我正在从 Azure AD Graph API 迁移到 Microsoft Graph,因为它现在已被弃用。以前可以使用 Microsoft.Azure.ActiveDirectory.GraphClient
.GetExtendedProperties();
调用访问针对用户的扩展属性,例如:
var client = new ActiveDirectoryClient(serviceRoot, async () => await GetToken());
var user = await client.Users["user id..."].ExecuteAsync();
var properties = user.GetExtendedProperties();
我需要在 Microsoft Graph
.
中使用等效调用来复制它
我查看了 schemaExtensions 端点,例如:
获取所有扩展:
/v1.0/schemaExtensions
但这似乎 return 与 AD Graph 客户端所做的相同的扩展数据。
获取分机用户:
v1.0/users/[user id]?$expand=extensions&$select=id,extension_[application id]_myExtension,onPremisesExtensionAttributes,displayName,jobTitle,identities
其中 extension_[application id]_myExtension
是格式的示例扩展:
extension_appid_extensionname
这不是 return 用户的自定义扩展数据(但其他属性工作正常)。
我们如何将扩展属性从 AD Graph Client 迁移到 Microsoft Graph?
SchemaExtensions 不同于 extensionProperty。你说的应该是Microsoft Graph中的extensionProperty。
您可以使用 List extensionProperties 获取所有扩展。
你的要求v1.0/users/[user id]?$expand=extensions&$select=id,extension_[application id]_myExtension,onPremisesExtensionAttributes,displayName,jobTitle,identities
应该是正确的。
请确保 application id
应该删除所有 -
。扩展 属性 格式为 extension_[application id without "-"]_myExtension
.
例如:
GET https://graph.microsoft.com/v1.0/me?$select=id,extension_6d****fbf1fe4bc38a5a145520****89_policy,displayName
回复:
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users(id,extension_6d****fbf1fe4bc38a5a145520****89_policy,displayName)/$entity",
"id": "98****c9-f062-48e2-8ced-22cb68****ce",
"displayName": "Allen Wu",
"extension_6d****fbf1fe4bc38a5a145520****89_policy": "readwrite"
}
C# 代码示例:
var user = await graphClient.Users["98****c9-f062-48e2-8ced-22cb6****ce"]
.Request()
.Select("id,extension_6d****fbf1fe4bc38a5a145520****89_policy,displayName")
.GetAsync();
我正在从 Azure AD Graph API 迁移到 Microsoft Graph,因为它现在已被弃用。以前可以使用 Microsoft.Azure.ActiveDirectory.GraphClient
.GetExtendedProperties();
调用访问针对用户的扩展属性,例如:
var client = new ActiveDirectoryClient(serviceRoot, async () => await GetToken());
var user = await client.Users["user id..."].ExecuteAsync();
var properties = user.GetExtendedProperties();
我需要在 Microsoft Graph
.
我查看了 schemaExtensions 端点,例如:
获取所有扩展:
/v1.0/schemaExtensions
但这似乎 return 与 AD Graph 客户端所做的相同的扩展数据。
获取分机用户:
v1.0/users/[user id]?$expand=extensions&$select=id,extension_[application id]_myExtension,onPremisesExtensionAttributes,displayName,jobTitle,identities
其中 extension_[application id]_myExtension
是格式的示例扩展:
extension_appid_extensionname
这不是 return 用户的自定义扩展数据(但其他属性工作正常)。
我们如何将扩展属性从 AD Graph Client 迁移到 Microsoft Graph?
SchemaExtensions 不同于 extensionProperty。你说的应该是Microsoft Graph中的extensionProperty。
您可以使用 List extensionProperties 获取所有扩展。
你的要求v1.0/users/[user id]?$expand=extensions&$select=id,extension_[application id]_myExtension,onPremisesExtensionAttributes,displayName,jobTitle,identities
应该是正确的。
请确保 application id
应该删除所有 -
。扩展 属性 格式为 extension_[application id without "-"]_myExtension
.
例如:
GET https://graph.microsoft.com/v1.0/me?$select=id,extension_6d****fbf1fe4bc38a5a145520****89_policy,displayName
回复:
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users(id,extension_6d****fbf1fe4bc38a5a145520****89_policy,displayName)/$entity",
"id": "98****c9-f062-48e2-8ced-22cb68****ce",
"displayName": "Allen Wu",
"extension_6d****fbf1fe4bc38a5a145520****89_policy": "readwrite"
}
C# 代码示例:
var user = await graphClient.Users["98****c9-f062-48e2-8ced-22cb6****ce"]
.Request()
.Select("id,extension_6d****fbf1fe4bc38a5a145520****89_policy,displayName")
.GetAsync();