在 Microsoft Graph 中获取有关 B2B 用户邀请的信息

Get information about invitation of B2B user in Microsoft Graph

我正在尝试创建一个应用程序,我需要在其中了解受邀加入 Azure Active Directory 的用户是否接受了邀请。我正在使用适用于 C# 的 Microsoft Graph SDK 从 AAD 获取有关用户的信息,但我无法在生成的用户对象中找到有关邀请状态的信息。特别是,我想从 Azure 获取这条信息:

有没有办法使用 Microsoft Graph SDK 或直接图查询从 C# 获取此信息?

似乎 microsoft graph api(v1.0) for get user 没有显示来宾是否接受邀请的字段。我检查了用户属性的 document,没有找到任何匹配 "accept invitation" 的 属性。但是我发现microsoft graph api(beta version)中有一个属性 externalUserState可以满足你的要求。 如果不介意稳定性的话,可以使用microsoft graph的测试版api。如果你将在生产环境中使用这个 api,我建议你使用 Azure AD graph api。请参考以下步骤:

作为解决方法,我们可以使用 Azure AD graph api 而不是 Microsoft graph api。我发现 Azure AD graph api 的响应中有一个 属性 UserState。如果我们想要请求这个 Azure AD 图 api,我们需要先添加所需的权限。

不要忘记授予管理员同意,然后请求访问令牌,请注意,当请求 Azure AD 图的访问令牌时,我们需要将 scopehttps://graph.microsoft.com/.default 更改为 https://graph.windows.net/.default.

然后使用访问令牌请求 Azure AD 图 api。

https://graph.windows.net/<tenant id>/users/<object id>?api-version=1.6

得到api的响应,可以发现里面有一个属性 userState。如果客人接受了,这个属性会是“Accepted”,如果客人没有接受,这个属性会是“”待接受".

希望对你有帮助~