M365有没有API可以获取微软新增的代词?

问题描述 投票:0回答:1

我们正在实施 Microsoft 365 的新代词功能,我们需要能够将此用户提供的数据同步回我们的 Active Directory 环境。根据 admin 文档,这些代词“与其他数据一起存储在用户的 Exchange 邮箱中。”

但是,当我使用

Get-Mailbox
(使用
ExchangeOnlineManagement
模块,版本
3.2.0 Preview2
)时,我在任何地方都看不到代词数据(使用
Get-Mailbox [email protected] | Select *
)。

我找不到与此功能相关的任何 PowerShell 文档。任何人都可以:

  • 提供详细说明如何提取此信息的文档链接
  • 显示如何使用 PowerShell、Microsoft 的图形 API 或 Exchange Web 服务 (EWS) 访问此信息

提前感谢您给我的任何建议!

powershell microsoft-graph-api office365 exchange-server exchangewebservices
1个回答
0
投票

我发现代词是通过 POST 请求从

https://nam.loki.delve.office.com/api/v2/extendeduserinfo/pronouns
中检索到的。不确定 URL 的
nam
loki
部分是静态的还是特定于我们的租户。

不幸的是,Delve 应用程序的这一部分似乎没有通过 Graph API 公开(至少现在还没有)。所以,我最终为我们公司创建了一个内部应用程序,它遍历每个用户并执行以下操作:

  • 使用代码控制的浏览器(例如 Selenium、Puppet)以专用的、许可的 M365 用户(作为服务帐户)登录 Teams
  • Teams 网络应用程序加载后,在本地存储中找到以
    loki.delve.office.com
    结尾的密钥,并使用密钥
  • 检索令牌值
  • 缓存令牌以便将来更快地使用(例如,不为每个用户迭代登录)
  • 然后,提交一个post请求,内容如下:
    • 参数:
      • ConvertGetPost=true
      • aadObjectId=<oid>
        (将
        <oid>
        替换为目标 Azure AD 用户的对象 ID
    • 身体:
      {
        "accept": "application/json",
        "Content-Type": "application/json",
        "authorization": "<token that was retrieved above>"
        # these next two are required, will throw a 500 error without them
        "X-ClientType": "MicrosoftTeamsAngular",
        "X-HostAppRing": "general",
      }
      
  • 响应类似于这样的东西:
    {
      "id": "<oid of the target Azure AD user>",
      # note that the preceding space is not a typo
      "displayName": " He/Him",
      "allowedAudiences": "Organization"
    }
    

然后将这些属性分配给其他应用程序可以使用的自定义字段中的用户。

不确定我们是否能够开源该工具,但如果不能,希望以上内容能够为其他人指明正确的方向。

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