Azure active directory 无法对通过图形资源管理器创建的用户资源应用目录架构扩展
免责声明:我对这一切都很陌生,所以请耐心点。:) 我的目标是创建一个目录架构扩展,目标是O365公司目录的用户资源。扩展非常简单,只有3个字符串字段。其思想是,目录中的每个用户都应该将此扩展应用于其用户对象,并为其包含的3个字段指定特定值 为此,我使用了Graph Explorer,其中我使用我的管理员租户帐户创建了一个简单的(域验证的)目录模式扩展(domain_schemaname),它有3个字段,目标是用户资源 我可以使用Azure active directory 无法对通过图形资源管理器创建的用户资源应用目录架构扩展,azure-active-directory,microsoft-graph-api,Azure Active Directory,Microsoft Graph Api,免责声明:我对这一切都很陌生,所以请耐心点。:) 我的目标是创建一个目录架构扩展,目标是O365公司目录的用户资源。扩展非常简单,只有3个字符串字段。其思想是,目录中的每个用户都应该将此扩展应用于其用户对象,并为其包含的3个字段指定特定值 为此,我使用了Graph Explorer,其中我使用我的管理员租户帐户创建了一个简单的(域验证的)目录模式扩展(domain_schemaname),它有3个字段,目标是用户资源 我可以使用/v1.0/schemaExtensions确认目录架构扩展是在状态
/v1.0/schemaExtensions
确认目录架构扩展是在状态可用的情况下创建的
更新目录后,我执行了一个Graph Explorer查询,以获取我自己(即/v1.0/me/Extensions
)以及目录中其他用户的扩展,但是,扩展节点的值始终返回空/空值([]
)
我感到困惑,因为我的印象是,一旦我为特定资源目标(即用户
资源)创建了目录架构扩展,架构扩展就会立即出现在用户
资源的任何现有或新实例的属性中。然后,我将能够使用目录模式扩展的值修补特定用户
问题是,当我试图通过图形浏览器向用户实例添加扩展时,它总是创建一个openTypeExtension
类型的扩展,而我只想给用户分配一个目录模式扩展的内容,该扩展已经在组织的schemaExtensions
中创建
因此,我似乎无法使用Graph Explorer将目录模式扩展应用于特定的用户对象
我用错工具了吗
您能告诉我如何使用特定的目录架构扩展填充O365目录中的所有用户,并为每个用户分配唯一的值吗
我是否需要使用Microsoft Graph Client library和MSAL/ADAL创建控制台应用程序来创建我的目录架构扩展并将其应用于我目录中的每个用户,然后为每个不同的用户更新其值
谢谢你的帮助
我可以使用/v1.0/schemaExtensions确认创建的目录架构扩展的状态为可用
更新目录后,我执行了一个Graph Explorer查询,以获取我自己(即/v1.0/me/Extensions)以及目录中其他用户的扩展,但是,Extensions节点的值始终返回空/空值([])
在创建模式扩展之后,我们需要更新extension属性的值,然后才能获取其值
例如,我注册了一个模式扩展,如下面的请求:
POST: https://graph.microsoft.com/v1.0/schemaExtensions
Content-type: application/json
authorization: bearer {access_token}
{
"id": "coursesforuser",
"description": "Graph Learn training courses extensions",
"targetTypes": [
"User"
],
"properties": [
{
"name": "courseId",
"type": "Integer"
},
{
"name": "courseName",
"type": "String"
},
{
"name": "courseType",
"type": "String"
}
]
}
然后我在特定用户上更新此属性:
PATHCH:https://graph.microsoft.com/v1.0/me
Content-type: application/json
authorization: bearer {access_token}
{
"exte5t2z4fr_coursesforuser":{
"courseId":"123",
"courseName":"New Managers",
"courseType":"Online"
}
}
之后,我们可以使用$select
参数获取此属性:
GET: https://graph.microsoft.com/v1.0/me?$select=exte5t2z4fr_coursesforuser
authorization: bearer {access_token}
有关架构扩展的更多详细信息,请参见下面的链接:
我可以使用/v1.0/schemaExtensions确认创建的目录架构扩展的状态为可用
更新目录后,我执行了一个Graph Explorer查询,以获取我自己(即/v1.0/me/Extensions)以及目录中其他用户的扩展,但是,Extensions节点的值始终返回空/空值([])
在创建模式扩展之后,我们需要更新extension属性的值,然后才能获取其值
例如,我注册了一个模式扩展,如下面的请求:
POST: https://graph.microsoft.com/v1.0/schemaExtensions
Content-type: application/json
authorization: bearer {access_token}
{
"id": "coursesforuser",
"description": "Graph Learn training courses extensions",
"targetTypes": [
"User"
],
"properties": [
{
"name": "courseId",
"type": "Integer"
},
{
"name": "courseName",
"type": "String"
},
{
"name": "courseType",
"type": "String"
}
]
}
然后我在特定用户上更新此属性:
PATHCH:https://graph.microsoft.com/v1.0/me
Content-type: application/json
authorization: bearer {access_token}
{
"exte5t2z4fr_coursesforuser":{
"courseId":"123",
"courseName":"New Managers",
"courseType":"Online"
}
}
之后,我们可以使用$select
参数获取此属性:
GET: https://graph.microsoft.com/v1.0/me?$select=exte5t2z4fr_coursesforuser
authorization: bearer {access_token}
有关架构扩展的更多详细信息,请参见下面的链接:
我建议您使用正在图形浏览器中进行的一些REST查询以及随后输出的结果更新您的问题。这对每个人都有很大的帮助。我建议您使用正在图形浏览器中进行的一些剩余查询以及随后输出的结果来更新您的问题。这对大家都有很大的帮助。嗨,薛菲,谢谢你的投入。我试过了,但总是收到不好的请求。这是我在目录中定义的模式扩展:“代码”{“id”:“域\测试元数据1”,“描述”:“测试元数据1”,“目标类型”:[“用户”],“状态”:“可用”,“所有者”:“74bf95dc-d299-4e44-9f52-b081677b2d3c”,“属性”:[{“名称”:“AX”,“类型”:“字符串”}]}您介意在详细的错误消息中分享更新扩展值的确切请求吗?嗨,薛菲,谢谢您的输入。我尝试了它,但总是收到BADDREQUEST。这是我在目录中定义的模式扩展:'code'{“id”:“domain_TestMetadata1”,“description”:“Test Metadata 1”,“目标类型”:[“用户”],“状态”:“可用”,“所有者”:“74bf95dc-d299-4e44-9f52-b081677b2d3c”,“属性”:[{“名称”:“AX”,“类型”:“字符串”}]}您是否介意在详细的错误消息中分享更新扩展名值的确切请求?