microsoft-graph-api - 用户端点的差异
问题描述
在我的 Azure AD 租户中,我使用的用户很少,https://graph.microsoft.com/beta/users
并且我获得了学校的教育用户使用https://graph.microsoft.com/beta/education/schools/<id>/users
或https://graph.microsoft.com/beta/education/users
这里有什么区别,我们如何在门户面板中区分它们?我们可以让普通用户成为特定学校下的教育用户吗?我实际上不是门户网站的管理员。
解决方案
在 AAD 级别(这是您在 Azure 门户中显示的内容),对象之间没有区别。
不同的是如何User
呈现资源。当您通过 查询用户时/education/users
,您会获得一些额外的元数据。例如,如果用户是学生,您将获得educationStudent
属性。如果他们是教师,您将看到educationTeacher
属性。
这些educationUser
资源还具有educationClass
和的附加导航属性educationScool
。例如,您可以调用v1.0/education/users/{id}/classes
但不能v1.0/users/{id}/classes
因为标准User
资源缺少classes
导航属性。
同样的模型也适用于其他领域:
educationUser
扩展user
资源educationClass
扩展group
资源educationSchool
扩展administrativeUnit
资源
您可以像这样将educationUser 添加到educationSchool:
POST https://graph.microsoft.com/v1.0/education/schools/{schoolId}/users/$ref
Content-type: application/json
{
"@odata.id":"https://graph.microsoft.com/v1.0/education/users/{userId}"
}
顺便说一句,我强烈警告不要使用该/beta
版本。Beta 版可以并且将不时中断。重大更改在没有警告的情况下发生,因此根本不够可靠,无法在生产应用程序中使用。
推荐阅读
- java - 如何从重定向响应中获取授权码
- ios - NSManagedObject 和协议一致性
- c++ - DirectX 11 调试器需要 Windows SDK 10,但它在 IDE 中被选中并存在于系统中
- c# - 在生成点实例化对象
- javascript - 如何在 jQuery 中使用长度属性
- javascript - 如何在不使用 Stripe 的 UI 层的情况下获取客户端令牌?
- batch-file - 如何在位于名称更改的文件夹中的命令提示符下打开文件?
- linux - 如何在 Linux POSIX shell 脚本中捕获 CTRL+Z;可能与否?
- python-3.x - 在python中打开一个只知道计算机上任何地方的扩展名的随机文件
- java - 文本转语音运行时如何启动语音识别器?